diff --git a/BUILD.gn b/BUILD.gn index aae7eac3..73aefc2 100644 --- a/BUILD.gn +++ b/BUILD.gn
@@ -846,8 +846,8 @@ "//third_party/dawn/src/dawn/tests:dawn_end2end_tests", "//third_party/dawn/src/dawn/tests:dawn_unittests", "//third_party/dawn/src/fuzzers/dawn:dawn_fuzzers", - "//third_party/dawn/third_party/tint/src/tint/fuzzers", - "//third_party/dawn/third_party/tint/test/tint:tint_unittests", + "//third_party/dawn/src/tint/fuzzers", + "//third_party/dawn/test/tint:tint_unittests", ] } @@ -1606,7 +1606,7 @@ } if (build_dawn_tests) { - deps += [ "//third_party/dawn/third_party/tint/src/tint/fuzzers:fuzzers" ] + deps += [ "//third_party/dawn/src/tint/fuzzers:fuzzers" ] } } }
diff --git a/DEPS b/DEPS index 2ce2fb5b..86d0ea9 100644 --- a/DEPS +++ b/DEPS
@@ -253,15 +253,15 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'b198752832ed2d4495ce4ed737ddb65484d8b6ee', + 'skia_revision': '5215ec1ab9cd4f5f7a5959c9a249bb9c2a3dd090', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': 'dfb37aba0c88fe3da6cc39f806e4d56431e88c59', + 'v8_revision': '445e90fe9b9efa996262e5b424c71e5345e41dae', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': '8f9043636bfcc762670d1613cd7c34e550a58d31', + 'angle_revision': '535cd538f3585b44855647339f04bae1c1acf63a', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -269,7 +269,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. - 'pdfium_revision': '23a5a5592b1db01627fd6ba24d1316903b37aed5', + 'pdfium_revision': '82c5172b87a874baf965d69bbfc45296cc9861a3', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling BoringSSL # and whatever else without interference from each other. @@ -320,7 +320,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': '4ebf976f7f97d18a11ae545dfe81ac963bff7332', + 'catapult_revision': 'a9d86a4042d785f34683f1306109c3bf11713c98', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -328,7 +328,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling devtools-frontend # and whatever else without interference from each other. - 'devtools_frontend_revision': 'f6f73b8d9eedbc5b6006e61c3be0d843188eac55', + 'devtools_frontend_revision': '1079e9f8a1d3eb5c0e57641da2f151ad9cee62b4', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libprotobuf-mutator # and whatever else without interference from each other. @@ -364,7 +364,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. - 'dawn_revision': '359b82da432bdfcd9e3b5d04e84f51a3e6fe0cdc', + 'dawn_revision': '2a87c84c56a209bfa67f7076c9fd9a65f4344ee0', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -431,7 +431,7 @@ 'libcxx_revision': '79a2e924d96e2fc1e4b937c42efd08898fa472d7', # GN CIPD package version. - 'gn_version': 'git_revision:bb8f66fdb5990ae5c0eb05152d51aca9a263b10d', + 'gn_version': 'git_revision:859dde4a7f34a4383179522f8e1061dcffac8691', } # Only these hosts are allowed for dependencies in this DEPS file. @@ -735,7 +735,7 @@ }, 'src/ios/third_party/earl_grey2/src': { - 'url': Var('chromium_git') + '/external/github.com/google/EarlGrey.git' + '@' + '356012e235e88b4a172a8770ce3bf532c62d0df9', + 'url': Var('chromium_git') + '/external/github.com/google/EarlGrey.git' + '@' + 'c5f2de81d09f3a0507335cefe65688ef8fff9a67', 'condition': 'checkout_ios', }, @@ -836,7 +836,7 @@ 'packages': [ { 'package': 'chromium/rts/model/linux-amd64', - 'version': 'VgNtqsjcflrAuiNKeIxSjcq3CE9yPDGwJaW5RbpztrMC', + 'version': 'woPA7odqdGVdNIclP8gNFVKRs3DK_4dw1tB8W98Hz9gC', }, ], 'dep_type': 'cipd', @@ -847,7 +847,7 @@ 'packages': [ { 'package': 'chromium/rts/model/mac-amd64', - 'version': 'JvBPOFe9P3msMz1MGka_9UTu-qRUEuxbK14m7djDb78C', + 'version': 'OTMEVvvyh7nnUTBb_w1nI8meP2sQGINsUnS0Xm6DrHcC', }, ], 'dep_type': 'cipd', @@ -858,7 +858,7 @@ 'packages': [ { 'package': 'chromium/rts/model/windows-amd64', - 'version': 'FioUkqctr8a_cSSXVCWZxcbhTFhs3XidDCwMy_-s9YgC', + 'version': 'sRKPK6bmdPBUqLCxulOnuoD7i5-UHd8QDyciDc4eLCAC', }, ], 'dep_type': 'cipd', @@ -1127,7 +1127,7 @@ # For Linux and Chromium OS. 'src/third_party/cros_system_api': { - 'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '983b5a118a0169734f8bc438e8a3064cc7353f5f', + 'url': Var('chromium_git') + '/chromiumos/platform2/system_api.git' + '@' + '4d104db182fff273c83014a7d6fa16e1e0ca48c1', 'condition': 'checkout_linux', }, @@ -1163,7 +1163,7 @@ Var('chromium_git') + '/external/github.com/google/farmhash.git' + '@' + '816a4ae622e964763ca0862d9dbd19324a1eaf45', 'src/third_party/ffmpeg': - Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + '574c39cce3231c69bc9a02ac475c27d944bdb113', + Var('chromium_git') + '/chromium/third_party/ffmpeg.git' + '@' + '32b2d1d52612e47531df9289e3f5fdd5447507dd', 'src/third_party/flac': Var('chromium_git') + '/chromium/deps/flac.git' + '@' + 'af862024c8c8fa0ae07ced05e89013d881b00596', @@ -1593,7 +1593,7 @@ 'packages': [ { 'package': 'fuchsia/third_party/android/aemu/release/linux-amd64', - 'version': 'sZ4uxq0EA46Lc0lxfmGRb2znwe8PY0pITymUy9mdJv8C' + 'version': 'kh_pRBcjUEXYrzw_OXh3BDKYOHY5Hc0YiWnxQqg-EGIC' }, ], 'condition': 'host_os == "linux" and checkout_fuchsia', @@ -1697,7 +1697,7 @@ 'src/third_party/usrsctp/usrsctplib': Var('chromium_git') + '/external/github.com/sctplab/usrsctp' + '@' + '62d7d0c928c9a040dce96aa2f16c00e7e67d59cb', - 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@4cef968d5909db0abf6e1ba36965a80e4b184d26', + 'src/third_party/vulkan-deps': '{chromium_git}/vulkan-deps@e806dc1f8ff0e7bbf5b23dd6d4c0c41b0a87861f', 'src/third_party/vulkan_memory_allocator': Var('chromium_git') + '/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git' + '@' + 'ebe84bec02c041d28f902da0214bf442743fc907', @@ -1736,7 +1736,7 @@ Var('chromium_git') + '/external/github.com/gpuweb/cts.git' + '@' + '7afd2efc27572eda0e9b3a8c0831b47f5e6c3353', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '3a10640ae7be75b577380e593369d0ef848fb601', + Var('webrtc_git') + '/src.git' + '@' + '5601ea6125504a664d555063ba3f3a80a6d42302', 'src/third_party/libgifcodec': Var('skia_git') + '/libgifcodec' + '@'+ Var('libgifcodec_revision'), @@ -1806,7 +1806,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@3a22a4c6937b0ae17afc5a10a578249f72b95931', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@513f737776c2a3d9e65d2e2d86db0e2266cc67fe', 'condition': 'checkout_src_internal', }, @@ -1836,7 +1836,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/help_app/app', - 'version': '9813WWMrH5MqPee81_USOgOQKPm4VjeROpT8SuwBqSIC', + 'version': 'chlK7ebjAqFmK6W9dizXajfjhTuYnEFbHtuvB24pasQC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1847,7 +1847,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/media_app/app', - 'version': 'XK4WVCQ_KI0bCb1neir0h-PC5fHJ3uNkN7lAcr24crcC', + 'version': 'ccbcGT7uf9WaY1n-6ZRm-i7J3S-J5mFaHX899XSZYHUC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal', @@ -1858,7 +1858,7 @@ 'packages': [ { 'package': 'chromeos_internal/apps/projector_app/app', - 'version': '3k0GumLG1gaDNNMX_SeFqVhhsyzxgcQG8-4PYUen1XwC', + 'version': 'JqYr8NYI7QomYa-CkoZ048ETCGWWZFrqCP6jOJ9bxagC', }, ], 'condition': 'checkout_chromeos and checkout_src_internal',
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java index 120632a..e7a4117 100644 --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
@@ -172,6 +172,9 @@ "Enables Autofill to retrieve the page language for form parsing."), Flag.baseFeature(AutofillFeatures.AUTOFILL_ENABLE_SENDING_BCN_IN_GET_UPLOAD_DETAILS, "Enables sending billing customer number in GetUploadDetails."), + Flag.baseFeature(AutofillFeatures.AUTOFILL_PARSE_MERCHANT_PROMO_CODE_FIELDS, + "When enabled, Autofill will attempt to find merchant promo/coupon/gift code " + + "fields when parsing forms."), Flag.baseFeature(FeatureConstants.KEYBOARD_ACCESSORY_PAYMENT_VIRTUAL_CARD_FEATURE, "When enabled, merchant bound virtual cards will be offered in the keyboard " + "accessory."),
diff --git a/ash/app_list/BUILD.gn b/ash/app_list/BUILD.gn index abfa11d3..76297af 100644 --- a/ash/app_list/BUILD.gn +++ b/ash/app_list/BUILD.gn
@@ -121,6 +121,8 @@ "views/recent_apps_view.h", "views/remove_query_confirmation_dialog.cc", "views/remove_query_confirmation_dialog.h", + "views/remove_task_feedback_dialog.cc", + "views/remove_task_feedback_dialog.h", "views/result_selection_controller.cc", "views/result_selection_controller.h", "views/scrollable_apps_grid_view.cc",
diff --git a/ash/app_list/test/app_list_test_helper.cc b/ash/app_list/test/app_list_test_helper.cc index 4a4fd805..82504329 100644 --- a/ash/app_list/test/app_list_test_helper.cc +++ b/ash/app_list/test/app_list_test_helper.cc
@@ -239,9 +239,18 @@ ->search_result_page_view(); } +bool AppListTestHelper::IsShowingFullscreenSearchResults() { + return GetAppListView() + ->app_list_main_view() + ->contents_view() + ->IsShowingSearchResults(); +} + SearchResultPageAnchoredDialog* AppListTestHelper::GetFullscreenSearchPageDialog() { - return GetFullscreenSearchResultPageView()->dialog_for_test(); + if (IsShowingFullscreenSearchResults()) + return GetFullscreenSearchResultPageView()->dialog_for_test(); + return GetAppsContainerView()->dialog_for_test(); } AppListBubbleView* AppListTestHelper::GetBubbleView() {
diff --git a/ash/app_list/test/app_list_test_helper.h b/ash/app_list/test/app_list_test_helper.h index a3338cf..9a26b4e 100644 --- a/ash/app_list/test/app_list_test_helper.h +++ b/ash/app_list/test/app_list_test_helper.h
@@ -129,6 +129,9 @@ ProductivityLauncherSearchView* GetProductivityLauncherSearchView(); views::View* GetFullscreenLauncherAppsSeparatorView(); + // Whether the fullscreen/peeking launcher is showing the search results view. + bool IsShowingFullscreenSearchResults(); + // Paged launcher helpers. PagedAppsGridView* GetRootPagedAppsGridView();
diff --git a/ash/app_list/views/app_list_bubble_apps_page.cc b/ash/app_list/views/app_list_bubble_apps_page.cc index 06070f6..7b696b1 100644 --- a/ash/app_list/views/app_list_bubble_apps_page.cc +++ b/ash/app_list/views/app_list_bubble_apps_page.cc
@@ -19,6 +19,7 @@ #include "ash/app_list/views/continue_section_view.h" #include "ash/app_list/views/recent_apps_view.h" #include "ash/app_list/views/scrollable_apps_grid_view.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/bubble/bubble_utils.h" #include "ash/constants/ash_features.h" #include "ash/controls/rounded_scroll_bar.h" @@ -102,8 +103,10 @@ ApplicationDragAndDropHost* drag_and_drop_host, AppListConfig* app_list_config, AppListA11yAnnouncer* a11y_announcer, + SearchResultPageDialogController* dialog_controller, AppListFolderController* folder_controller) - : app_list_nudge_controller_(std::make_unique<AppListNudgeController>()) { + : app_list_nudge_controller_(std::make_unique<AppListNudgeController>()), + dialog_controller_(dialog_controller) { DCHECK(view_delegate); DCHECK(drag_and_drop_host); DCHECK(a11y_announcer); @@ -146,7 +149,8 @@ // Continue section row. continue_section_ = scroll_contents->AddChildView(std::make_unique<ContinueSectionView>( - view_delegate, kContinueColumnCount, /*tablet_mode=*/false)); + view_delegate, dialog_controller_, kContinueColumnCount, + /*tablet_mode=*/false)); continue_section_->SetBorder( views::CreateEmptyBorder(kContinueSectionInsets)); continue_section_->SetNudgeController(app_list_nudge_controller_.get());
diff --git a/ash/app_list/views/app_list_bubble_apps_page.h b/ash/app_list/views/app_list_bubble_apps_page.h index c85fc58..6319b9b 100644 --- a/ash/app_list/views/app_list_bubble_apps_page.h +++ b/ash/app_list/views/app_list_bubble_apps_page.h
@@ -41,6 +41,7 @@ class AppListViewDelegate; class ContinueSectionView; class RecentAppsView; +class SearchResultPageDialogController; class ScrollableAppsGridView; class ScrollViewGradientHelper; @@ -61,6 +62,7 @@ ApplicationDragAndDropHost* drag_and_drop_host, AppListConfig* app_list_config, AppListA11yAnnouncer* a11y_announcer, + SearchResultPageDialogController* dialog_controller, AppListFolderController* folder_controller); AppListBubbleAppsPage(const AppListBubbleAppsPage&) = delete; AppListBubbleAppsPage& operator=(const AppListBubbleAppsPage&) = delete; @@ -189,6 +191,9 @@ std::unique_ptr<AppListNudgeController> app_list_nudge_controller_; + // Controller for showing a modal dialog in the continue section. + SearchResultPageDialogController* const dialog_controller_; + // Adds fade in/out gradients to `scroll_view_`. std::unique_ptr<ScrollViewGradientHelper> gradient_helper_;
diff --git a/ash/app_list/views/app_list_bubble_view.cc b/ash/app_list/views/app_list_bubble_view.cc index 538e82a..9685a4a5 100644 --- a/ash/app_list/views/app_list_bubble_view.cc +++ b/ash/app_list/views/app_list_bubble_view.cc
@@ -255,17 +255,18 @@ // so flex the entire container. layout->SetFlexForView(pages_container, 1); + search_page_dialog_controller_ = + std::make_unique<SearchResultPageDialogController>(this); + // NOTE: Passing drag and drop host from a specific shelf instance assumes // that the `apps_page_` will not get reused for showing the app list in // another root window. apps_page_ = pages_container->AddChildView(std::make_unique<AppListBubbleAppsPage>( view_delegate_, drag_and_drop_host, GetAppListConfig(), - a11y_announcer_.get(), + a11y_announcer_.get(), search_page_dialog_controller_.get(), /*folder_controller=*/this)); - search_page_dialog_controller_ = - std::make_unique<SearchResultPageDialogController>(this); search_page_ = pages_container->AddChildView(std::make_unique<AppListBubbleSearchPage>( view_delegate_, search_page_dialog_controller_.get(), @@ -423,8 +424,10 @@ search_box_view_->SetVisible(page != AppListBubblePage::kAssistant); separator_->SetVisible(page != AppListBubblePage::kAssistant); - search_page_dialog_controller_->SetEnabled(page == - AppListBubblePage::kSearch); + const bool supports_anchored_dialogs = + page == AppListBubblePage::kApps || page == AppListBubblePage::kSearch; + + search_page_dialog_controller_->Reset(/*enabled=*/supports_anchored_dialogs); assistant_page_->SetVisible(page == AppListBubblePage::kAssistant); switch (current_page_) { case AppListBubblePage::kNone:
diff --git a/ash/app_list/views/apps_container_view.cc b/ash/app_list/views/apps_container_view.cc index 3498fb7..a5b00e1b 100644 --- a/ash/app_list/views/apps_container_view.cc +++ b/ash/app_list/views/apps_container_view.cc
@@ -23,6 +23,7 @@ #include "ash/app_list/views/folder_background_view.h" #include "ash/app_list/views/page_switcher.h" #include "ash/app_list/views/search_box_view.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/app_list/views/suggestion_chip_container_view.h" #include "ash/constants/ash_features.h" #include "ash/controls/gradient_layer_delegate.h" @@ -152,7 +153,8 @@ class AppsContainerView::ContinueContainer : public views::View { public: ContinueContainer(AppsContainerView* apps_container, - AppListViewDelegate* view_delegate) + AppListViewDelegate* view_delegate, + SearchResultPageDialogController* dialog_controller) : separator_(apps_container->separator()) { SetPaintToLayer(ui::LAYER_NOT_DRAWN); @@ -160,7 +162,8 @@ ->SetOrientation(views::LayoutOrientation::kVertical); continue_section_ = AddChildView(std::make_unique<ContinueSectionView>( - view_delegate, kContinueColumnCount, /*tablet_mode=*/true)); + view_delegate, dialog_controller, kContinueColumnCount, + /*tablet_mode=*/true)); continue_section_->SetPaintToLayer(); continue_section_->layer()->SetFillsBoundsOpaquely(false); @@ -252,8 +255,12 @@ // Visibility for `separator_` will be managed by the `continue_container_`. separator_->SetVisible(false); - continue_container_ = scrollable_container_->AddChildView( - std::make_unique<ContinueContainer>(this, view_delegate)); + dialog_controller_ = + std::make_unique<SearchResultPageDialogController>(this); + + continue_container_ = + scrollable_container_->AddChildView(std::make_unique<ContinueContainer>( + this, view_delegate, dialog_controller_.get())); continue_container_->continue_section()->SetNudgeController( app_list_nudge_controller_.get()); // Update the suggestion tasks after the app list nudge controller is set in @@ -1102,6 +1109,8 @@ toast_container_->UpdateVisibilityState( AppListToastContainerView::VisibilityState::kShown); } + if (dialog_controller_) + dialog_controller_->Reset(/*enabled=*/true); } void AppsContainerView::OnWillBeHidden() { @@ -1129,6 +1138,8 @@ toast_container_->UpdateVisibilityState( AppListToastContainerView::VisibilityState::kShownInBackground); } + if (dialog_controller_) + dialog_controller_->Reset(/*enabled=*/false); } void AppsContainerView::OnAnimationStarted(AppListState from_state,
diff --git a/ash/app_list/views/apps_container_view.h b/ash/app_list/views/apps_container_view.h index fec370a..67bfbe2 100644 --- a/ash/app_list/views/apps_container_view.h +++ b/ash/app_list/views/apps_container_view.h
@@ -16,6 +16,7 @@ #include "ash/app_list/views/app_list_page.h" #include "ash/app_list/views/paged_apps_grid_view.h" #include "ash/app_list/views/recent_apps_view.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/ash_export.h" #include "ash/public/cpp/pagination/pagination_model_observer.h" #include "base/callback_helpers.h" @@ -33,6 +34,7 @@ class ContinueSectionView; class FolderBackgroundView; class PageSwitcher; +class SearchResultPageAnchoredDialog; class SuggestionChipContainerView; class GradientLayerDelegate; @@ -232,6 +234,10 @@ // Gets the height of the `separator_` including its vertical margin. int GetSeparatorHeight(); + SearchResultPageAnchoredDialog* dialog_for_test() { + return dialog_controller_->dialog(); + } + private: enum ShowState { SHOW_NONE, // initial state @@ -337,6 +343,9 @@ std::unique_ptr<AppListNudgeController> app_list_nudge_controller_; + // Controller for showing a modal dialog in the continue section. + std::unique_ptr<SearchResultPageDialogController> dialog_controller_; + // The number of active requests to disable blur. size_t suggestion_chips_blur_disabler_count_ = 0;
diff --git a/ash/app_list/views/continue_section_view.cc b/ash/app_list/views/continue_section_view.cc index 24801b7..5b0e6c7 100644 --- a/ash/app_list/views/continue_section_view.cc +++ b/ash/app_list/views/continue_section_view.cc
@@ -19,6 +19,7 @@ #include "ash/app_list/views/app_list_toast_view.h" #include "ash/app_list/views/app_list_view_util.h" #include "ash/app_list/views/continue_task_view.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/bubble/bubble_utils.h" #include "ash/public/cpp/app_list/app_list_config.h" #include "ash/resources/vector_icons/vector_icons.h" @@ -81,10 +82,12 @@ } // namespace -ContinueSectionView::ContinueSectionView(AppListViewDelegate* view_delegate, - int columns, - bool tablet_mode) - : tablet_mode_(tablet_mode) { +ContinueSectionView::ContinueSectionView( + AppListViewDelegate* view_delegate, + SearchResultPageDialogController* dialog_controller, + int columns, + bool tablet_mode) + : dialog_controller_(dialog_controller), tablet_mode_(tablet_mode) { DCHECK(view_delegate); AppListModelProvider::Get()->AddObserver(this); @@ -114,7 +117,7 @@ base::BindRepeating( &ContinueSectionView::OnSearchResultContainerResultsChanged, base::Unretained(this)), - tablet_mode)); + dialog_controller_, tablet_mode)); UpdateElementsVisibility(); }
diff --git a/ash/app_list/views/continue_section_view.h b/ash/app_list/views/continue_section_view.h index 3c6d569..aba0d916 100644 --- a/ash/app_list/views/continue_section_view.h +++ b/ash/app_list/views/continue_section_view.h
@@ -24,6 +24,7 @@ class AppListToastView; class ContinueTaskContainerView; class ContinueTaskView; +class SearchResultPageDialogController; // The "Continue" section of the bubble launcher. This view wraps around // suggestions with tasks to continue. @@ -35,6 +36,7 @@ METADATA_HEADER(ContinueSectionView); ContinueSectionView(AppListViewDelegate* view_delegate, + SearchResultPageDialogController* dialog_controller, int columns, bool tablet_mode); ContinueSectionView(const ContinueSectionView&) = delete; @@ -132,6 +134,9 @@ // when the privacy notice does not have enough items after an update. void MaybeAnimateOutPrivacyNotice(); + // Controller for showing a modal dialog in the continue section. + SearchResultPageDialogController* const dialog_controller_; + bool tablet_mode_ = false; // Timer for marking the privacy notice as shown.
diff --git a/ash/app_list/views/continue_section_view_unittest.cc b/ash/app_list/views/continue_section_view_unittest.cc index d845cf78..5bb03def 100644 --- a/ash/app_list/views/continue_section_view_unittest.cc +++ b/ash/app_list/views/continue_section_view_unittest.cc
@@ -22,10 +22,14 @@ #include "ash/app_list/views/apps_grid_view_test_api.h" #include "ash/app_list/views/continue_task_view.h" #include "ash/app_list/views/recent_apps_view.h" +#include "ash/app_list/views/remove_task_feedback_dialog.h" #include "ash/app_list/views/scrollable_apps_grid_view.h" #include "ash/app_list/views/search_box_view.h" +#include "ash/app_list/views/search_result_page_anchored_dialog.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/constants/ash_features.h" #include "ash/constants/ash_pref_names.h" +#include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/app_list/app_list_types.h" #include "ash/session/session_controller_impl.h" #include "ash/shell.h" @@ -44,6 +48,7 @@ #include "ui/views/controls/button/label_button.h" #include "ui/views/controls/scroll_view.h" #include "ui/views/controls/textfield/textfield.h" +#include "ui/views/widget/widget_delegate.h" namespace ash { namespace { @@ -91,7 +96,9 @@ : AshTestBase(base::test::TaskEnvironment::TimeSource::MOCK_TIME), tablet_mode_(tablet_mode) { scoped_feature_list_.InitWithFeatures( - {features::kLauncherAppSort, features::kProductivityLauncher}, {}); + {features::kLauncherAppSort, features::kProductivityLauncher, + app_list_features::kFeedbackOnContinueSectionRemove}, + {}); } ~ContinueSectionViewTestBase() override = default; @@ -276,6 +283,30 @@ return bounds; } + SearchResultPageAnchoredDialog* GetSearchViewAnchoredDialog() { + if (Shell::Get()->tablet_mode_controller()->InTabletMode()) + return GetAppListTestHelper()->GetFullscreenSearchPageDialog(); + return GetAppListTestHelper()->GetBubbleSearchPageDialog(); + } + + void ConfirmSearchViewAnchoredDialog() { + SearchResultPageAnchoredDialog* dialog = GetSearchViewAnchoredDialog(); + ASSERT_TRUE(dialog); + views::WidgetDelegate* widget_delegate = + dialog->widget()->widget_delegate(); + GestureTapOn(static_cast<RemoveTaskFeedbackDialog*>(widget_delegate) + ->remove_button_for_test()); + } + + void CancelSearchViewAnchoredDialog() { + SearchResultPageAnchoredDialog* dialog = GetSearchViewAnchoredDialog(); + ASSERT_TRUE(dialog); + views::WidgetDelegate* widget_delegate = + dialog->widget()->widget_delegate(); + GestureTapOn(static_cast<RemoveTaskFeedbackDialog*>(widget_delegate) + ->cancel_button_for_test()); + } + test::AppsGridViewTestApi* test_api() { return test_api_.get(); } private: @@ -703,6 +734,66 @@ EXPECT_EQ("id1", client->last_opened_search_result()); } +TEST_P(ContinueSectionViewTest, SelectCancelOptionCloseDialogNoRemove) { + AddSearchResult("id1", AppListSearchResultType::kFileChip); + AddSearchResult("id2", AppListSearchResultType::kDriveChip); + AddSearchResult("id3", AppListSearchResultType::kDriveChip); + + EnsureLauncherShown(); + + VerifyResultViewsUpdated(); + + ContinueTaskView* continue_task_view = GetResultViewAt(0); + EXPECT_EQ(continue_task_view->result()->id(), "id1"); + + GetContinueSectionView()->GetWidget()->LayoutRootViewIfNecessary(); + SimulateRightClickOrLongPressOn(continue_task_view); + EXPECT_TRUE(continue_task_view->IsMenuShowing()); + continue_task_view->ExecuteCommand(ContinueTaskCommandId::kRemoveResult, + ui::EventFlags::EF_NONE); + + ASSERT_TRUE(GetSearchViewAnchoredDialog()); + CancelSearchViewAnchoredDialog(); + + EXPECT_FALSE(GetSearchViewAnchoredDialog()); + + TestAppListClient* client = GetAppListTestHelper()->app_list_client(); + std::vector<TestAppListClient::SearchResultActionId> invoked_actions = + client->GetAndClearInvokedResultActions(); + EXPECT_TRUE(invoked_actions.empty()); +} + +TEST_P(ContinueSectionViewTest, SelectRemoveOptionCloseDialogAndRemove) { + AddSearchResult("id1", AppListSearchResultType::kFileChip); + AddSearchResult("id2", AppListSearchResultType::kDriveChip); + AddSearchResult("id3", AppListSearchResultType::kDriveChip); + + EnsureLauncherShown(); + + VerifyResultViewsUpdated(); + + ContinueTaskView* continue_task_view = GetResultViewAt(0); + EXPECT_EQ(continue_task_view->result()->id(), "id1"); + + GetContinueSectionView()->GetWidget()->LayoutRootViewIfNecessary(); + SimulateRightClickOrLongPressOn(continue_task_view); + EXPECT_TRUE(continue_task_view->IsMenuShowing()); + continue_task_view->ExecuteCommand(ContinueTaskCommandId::kRemoveResult, + ui::EventFlags::EF_NONE); + + ASSERT_TRUE(GetSearchViewAnchoredDialog()); + ConfirmSearchViewAnchoredDialog(); + + EXPECT_FALSE(GetSearchViewAnchoredDialog()); + + TestAppListClient* client = GetAppListTestHelper()->app_list_client(); + std::vector<TestAppListClient::SearchResultActionId> expected_actions = { + {"id1", SearchResultActionType::kRemove}}; + std::vector<TestAppListClient::SearchResultActionId> invoked_actions = + client->GetAndClearInvokedResultActions(); + EXPECT_EQ(expected_actions, invoked_actions); +} + TEST_P(ContinueSectionViewTest, RemoveWithContextMenuOption) { AddSearchResult("id1", AppListSearchResultType::kFileChip); AddSearchResult("id2", AppListSearchResultType::kDriveChip); @@ -721,6 +812,9 @@ continue_task_view->ExecuteCommand(ContinueTaskCommandId::kRemoveResult, ui::EventFlags::EF_NONE); + ASSERT_TRUE(GetSearchViewAnchoredDialog()); + ConfirmSearchViewAnchoredDialog(); + TestAppListClient* client = GetAppListTestHelper()->app_list_client(); std::vector<TestAppListClient::SearchResultActionId> expected_actions = { {"id1", SearchResultActionType::kRemove}};
diff --git a/ash/app_list/views/continue_task_container_view.cc b/ash/app_list/views/continue_task_container_view.cc index 6295812..5ae9ec1 100644 --- a/ash/app_list/views/continue_task_container_view.cc +++ b/ash/app_list/views/continue_task_container_view.cc
@@ -12,6 +12,7 @@ #include "ash/app_list/app_list_view_delegate.h" #include "ash/app_list/model/search/search_model.h" #include "ash/app_list/views/continue_task_view.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/public/cpp/app_list/app_list_notifier.h" #include "ash/strings/grit/ash_strings.h" #include "base/check.h" @@ -128,9 +129,11 @@ AppListViewDelegate* view_delegate, int columns, OnResultsChanged update_callback, + SearchResultPageDialogController* dialog_controller, bool tablet_mode) : view_delegate_(view_delegate), update_callback_(update_callback), + dialog_controller_(dialog_controller), tablet_mode_(tablet_mode) { DCHECK(!update_callback_.is_null()); @@ -270,8 +273,8 @@ // Create new result views. for (size_t i = 0; i < num_results_; ++i) { - auto task = - std::make_unique<ContinueTaskView>(view_delegate_, tablet_mode_); + auto task = std::make_unique<ContinueTaskView>( + view_delegate_, dialog_controller_, tablet_mode_); if (i == 0) task->SetProperty(views::kMarginsKey, gfx::Insets()); task->set_index_in_container(i);
diff --git a/ash/app_list/views/continue_task_container_view.h b/ash/app_list/views/continue_task_container_view.h index 3e9cfb0b..fb56cbb 100644 --- a/ash/app_list/views/continue_task_container_view.h +++ b/ash/app_list/views/continue_task_container_view.h
@@ -29,6 +29,7 @@ class AppListViewDelegate; class ContinueTaskView; +class SearchResultPageDialogController; // The container for the Continue Tasks results view. The view contains a preset // number of ContinueTaskViews that get populated based on the list of results @@ -45,6 +46,7 @@ ContinueTaskContainerView(AppListViewDelegate* view_delegate, int columns, OnResultsChanged update_callback, + SearchResultPageDialogController* dialog_controller, bool tablet_mode); ContinueTaskContainerView(const ContinueTaskContainerView&) = delete; ContinueTaskContainerView& operator=(const ContinueTaskContainerView&) = @@ -165,6 +167,8 @@ OnResultsChanged update_callback_; SearchModel::SearchResults* results_ = nullptr; // Owned by SearchModel. + SearchResultPageDialogController* const dialog_controller_; + // Only one of the layouts is to be set. // `flex_layout_` aligns the views as a single row centered in the container. // Used in tablet mode.
diff --git a/ash/app_list/views/continue_task_view.cc b/ash/app_list/views/continue_task_view.cc index b4b0c38..4dd77b7 100644 --- a/ash/app_list/views/continue_task_view.cc +++ b/ash/app_list/views/continue_task_view.cc
@@ -11,8 +11,11 @@ #include "ash/app_list/app_list_util.h" #include "ash/app_list/app_list_view_delegate.h" #include "ash/app_list/model/search/search_result.h" +#include "ash/app_list/views/remove_task_feedback_dialog.h" +#include "ash/app_list/views/search_result_page_dialog_controller.h" #include "ash/bubble/bubble_utils.h" #include "ash/constants/ash_features.h" +#include "ash/public/cpp/app_list/app_list_features.h" #include "ash/public/cpp/style/color_provider.h" #include "ash/resources/vector_icons/vector_icons.h" #include "ash/strings/grit/ash_strings.h" @@ -67,9 +70,13 @@ } // namespace -ContinueTaskView::ContinueTaskView(AppListViewDelegate* view_delegate, - bool tablet_mode) - : view_delegate_(view_delegate), is_tablet_mode_(tablet_mode) { +ContinueTaskView::ContinueTaskView( + AppListViewDelegate* view_delegate, + SearchResultPageDialogController* dialog_controller, + bool tablet_mode) + : view_delegate_(view_delegate), + dialog_controller_(dialog_controller), + is_tablet_mode_(tablet_mode) { SetPaintToLayer(); layer()->SetFillsBoundsOpaquely(false); @@ -244,7 +251,12 @@ OpenResult(event_flags); break; case ContinueTaskCommandId::kRemoveResult: - RemoveResult(); + // TODO(crbug.com/1307371): Create a pref to control the dialog showing + // only one time to the user. + if (app_list_features::IsFeedbackOnContinueSectionRemoveEnabled()) + ShowFeedbackDialog(); + else + RemoveResult(); break; default: NOTREACHED(); @@ -287,15 +299,18 @@ false /* launch_as_default */); } +void ContinueTaskView::ShowFeedbackDialog() { + dialog_controller_->Show( + std::make_unique<RemoveTaskFeedbackDialog>(base::BindOnce( + &ContinueTaskView::RemoveResult, weak_ptr_factory_.GetWeakPtr()))); +} + void ContinueTaskView::RemoveResult() { // May be null if the result got reset, and the task view is animating out. if (!result()) return; LogMetricsOnResultRemoved(); - - // TODO(crbug.com/1264530): The ML service may change the way Search Results - // are removed. view_delegate_->InvokeSearchResultAction(result()->id(), SearchResultActionType::kRemove); }
diff --git a/ash/app_list/views/continue_task_view.h b/ash/app_list/views/continue_task_view.h index 000fe77..faca844 100644 --- a/ash/app_list/views/continue_task_view.h +++ b/ash/app_list/views/continue_task_view.h
@@ -22,6 +22,7 @@ namespace ash { class AppListViewDelegate; +class SearchResultPageDialogController; enum ContinueTaskCommandId { // Context Menu option to open the selected suggestion. @@ -46,7 +47,9 @@ METADATA_HEADER(ContinueTaskView); - ContinueTaskView(AppListViewDelegate* view_delegate, bool tablet_mode); + ContinueTaskView(AppListViewDelegate* view_delegate, + SearchResultPageDialogController* dialog_controller, + bool tablet_mode); ContinueTaskView(const ContinueTaskView&) = delete; ContinueTaskView& operator=(const ContinueTaskView&) = delete; ~ContinueTaskView() override; @@ -92,6 +95,9 @@ // Removes the search result related to the view. void RemoveResult(); + // Displays a dialog requesting for continue section feedback. + void ShowFeedbackDialog(); + // Builds and returns a raw pointer to `context_menu_model_`. ui::SimpleMenuModel* BuildMenuModel(); @@ -114,6 +120,9 @@ views::ImageView* icon_ = nullptr; SearchResult* result_ = nullptr; // Owned by SearchModel::SearchResults. + // Controller for displaying a searchbox anchored dialog. + SearchResultPageDialogController* const dialog_controller_; + const bool is_tablet_mode_; std::unique_ptr<ui::SimpleMenuModel> context_menu_model_;
diff --git a/ash/app_list/views/remove_task_feedback_dialog.cc b/ash/app_list/views/remove_task_feedback_dialog.cc new file mode 100644 index 0000000..8fe9a8b --- /dev/null +++ b/ash/app_list/views/remove_task_feedback_dialog.cc
@@ -0,0 +1,177 @@ +// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ash/app_list/views/remove_task_feedback_dialog.h" + +#include <memory> +#include <utility> + +#include "ash/public/cpp/ash_typography.h" +#include "ash/public/cpp/view_shadow.h" +#include "ash/strings/grit/ash_strings.h" +#include "ash/style/ash_color_provider.h" +#include "ash/style/highlight_border.h" +#include "ash/style/pill_button.h" +#include "base/bind.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/base/metadata/metadata_impl_macros.h" +#include "ui/compositor/layer.h" +#include "ui/gfx/geometry/insets.h" +#include "ui/strings/grit/ui_strings.h" +#include "ui/views/background.h" +#include "ui/views/controls/button/checkbox.h" +#include "ui/views/controls/button/radio_button.h" +#include "ui/views/controls/label.h" +#include "ui/views/layout/box_layout.h" +#include "ui/views/layout/box_layout_view.h" +#include "ui/views/style/typography.h" +#include "ui/views/view_class_properties.h" +#include "ui/views/widget/widget.h" + +namespace ash { + +namespace { + +constexpr int kDialogWidth = 360; +constexpr gfx::Insets kDialogContentInsets = gfx::Insets::VH(20, 24); +constexpr float kDialogRoundedCornerRadius = 16.0f; +constexpr int kDialogShadowElevation = 3; +constexpr int kMarginBetweenTitleAndBody = 8; +constexpr int kMarginBetweenBodyAndOptions = 8; +constexpr int kMarginBetweenOptionsAndButtons = 20; +constexpr int kMarginBetweenBorderAndCheckboxes = 20; +constexpr int kMarginBetweenButtons = 8; + +} // namespace + +RemoveTaskFeedbackDialog::RemoveTaskFeedbackDialog( + base::OnceClosure confirm_callback) + : confirm_callback_(std::move(confirm_callback)) { + views::View* button_row; + views::Builder<RemoveTaskFeedbackDialog>(this) + .SetModalType(ui::MODAL_TYPE_WINDOW) + .SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::Orientation::kVertical, kDialogContentInsets)) + .SetPaintToLayer() + .AddChildren( + views::Builder<views::Label>() + .SetText(l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_TITLE)) + .SetTextContext(views::style::CONTEXT_DIALOG_TITLE) + .SetTextStyle(ash::STYLE_EMPHASIZED) + .SetHorizontalAlignment(gfx::ALIGN_LEFT) + .SetAutoColorReadabilityEnabled(false) + .SetPaintToLayer(), + views::Builder<views::Label>() + .SetText(l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FEEDBACK_TEXT)) + .SetProperty(views::kMarginsKey, + gfx::Insets::TLBR(kMarginBetweenTitleAndBody, 0, + kMarginBetweenBodyAndOptions, 0)) + .SetTextContext(views::style::CONTEXT_DIALOG_BODY_TEXT) + .SetHorizontalAlignment(gfx::ALIGN_LEFT) + .SetAutoColorReadabilityEnabled(false) + .SetPaintToLayer(), + views::Builder<views::View>() + .SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::Orientation::kVertical)) + .AddChildren( + views::Builder<views::RadioButton>().SetText( + l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_ANY_SUGGESTIONS_OPTION)), + views::Builder<views::RadioButton>() + .SetText(l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_THIS_SUGGESTION_OPTION)) + .CopyAddressTo(&secondary_options_control_), + views::Builder<views::View>() + .CopyAddressTo(&secondary_options_panel_) + .SetLayoutManager(std::make_unique<views::BoxLayout>( + views::BoxLayout::Orientation::kVertical)) + .SetProperty( + views::kMarginsKey, + gfx::Insets::TLBR(kMarginBetweenBodyAndOptions, + kMarginBetweenBorderAndCheckboxes, + kMarginBetweenOptionsAndButtons, 0)) + .SetVisible(false) + .AddChildren( + views::Builder<views::Checkbox>().SetText( + l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FILE_DONE_OPTION)), + views::Builder<views::Checkbox>().SetText( + l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_DO_NOT_SHOW_FILE_OPTION)))), + views::Builder<views::BoxLayoutView>() + .SetOrientation(views::BoxLayout::Orientation::kHorizontal) + .SetMainAxisAlignment(views::BoxLayout::MainAxisAlignment::kEnd) + .SetBetweenChildSpacing(kMarginBetweenButtons) + .CopyAddressTo(&button_row)) + .BuildChildren(); + + cancel_button_ = button_row->AddChildView(std::make_unique<ash::PillButton>( + views::Button::PressedCallback(base::BindRepeating( + &RemoveTaskFeedbackDialog::Cancel, base::Unretained(this))), + l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_CANCEL_BUTTON_LABEL), + PillButton::Type::kIconless, nullptr)); + remove_button_ = button_row->AddChildView(std::make_unique<ash::PillButton>( + views::Button::PressedCallback(base::BindRepeating( + &RemoveTaskFeedbackDialog::Remove, base::Unretained(this))), + l10n_util::GetStringUTF16( + IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_REMOVE_BUTTON_LABEL), + PillButton::Type::kIconlessProminent, nullptr)); + + secondary_options_control_subscription_ = + secondary_options_control_->AddCheckedChangedCallback(base::BindRepeating( + &RemoveTaskFeedbackDialog::ToggleSecondaryOptionsPanel, + base::Unretained(this))); + + view_shadow_ = std::make_unique<ViewShadow>(this, kDialogShadowElevation); + view_shadow_->SetRoundedCornerRadius(kDialogRoundedCornerRadius); + + layer()->SetBackgroundBlur(ColorProvider::kBackgroundBlurSigma); + layer()->SetBackdropFilterQuality(ColorProvider::kBackgroundBlurQuality); +} + +RemoveTaskFeedbackDialog::~RemoveTaskFeedbackDialog() = default; + +gfx::Size RemoveTaskFeedbackDialog::CalculatePreferredSize() const { + return gfx::Size(kDialogWidth, GetHeightForWidth(kDialogWidth)); +} + +void RemoveTaskFeedbackDialog::OnThemeChanged() { + views::WidgetDelegateView::OnThemeChanged(); + + SetBackground(views::CreateRoundedRectBackground( + AshColorProvider::Get()->GetBaseLayerColor( + AshColorProvider::BaseLayerType::kTransparent80), + kDialogRoundedCornerRadius)); + SetBorder(std::make_unique<HighlightBorder>( + kDialogRoundedCornerRadius, HighlightBorder::Type::kHighlightBorder1, + /*use_light_colors=*/false)); +} + +void RemoveTaskFeedbackDialog::Remove() { + if (confirm_callback_) + std::move(confirm_callback_).Run(); + + GetWidget()->CloseWithReason( + views::Widget::ClosedReason::kAcceptButtonClicked); +} + +void RemoveTaskFeedbackDialog::Cancel() { + confirm_callback_.Reset(); + GetWidget()->CloseWithReason( + views::Widget::ClosedReason::kCancelButtonClicked); +} + +void RemoveTaskFeedbackDialog::ToggleSecondaryOptionsPanel() { + secondary_options_panel_->SetVisible( + secondary_options_control_->GetChecked()); + PreferredSizeChanged(); +} + +BEGIN_METADATA(RemoveTaskFeedbackDialog, views::WidgetDelegateView) +END_METADATA + +} // namespace ash
diff --git a/ash/app_list/views/remove_task_feedback_dialog.h b/ash/app_list/views/remove_task_feedback_dialog.h new file mode 100644 index 0000000..79d4f86f --- /dev/null +++ b/ash/app_list/views/remove_task_feedback_dialog.h
@@ -0,0 +1,77 @@ +// Copyright (c) 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef ASH_APP_LIST_VIEWS_REMOVE_TASK_FEEDBACK_DIALOG_H_ +#define ASH_APP_LIST_VIEWS_REMOVE_TASK_FEEDBACK_DIALOG_H_ + +#include <memory> + +#include "base/scoped_multi_source_observation.h" +#include "ui/views/view_observer.h" +#include "ui/views/widget/widget_delegate.h" +#include "ui/views/widget/widget_observer.h" + +namespace views { +class Button; +class RadioButton; +} // namespace views + +namespace ash { +class ViewShadow; + +// RemoveTaskFeedbackDialog displays a dialog for collecting feedback on users' +// reasons to remove an element from the continue section. +class RemoveTaskFeedbackDialog : public views::WidgetDelegateView { + public: + METADATA_HEADER(RemoveTaskFeedbackDialog); + + // Receives a callback to notify user's confirmation for removing the task + // suggestion. Invoked only after the user confirms removing the suggestion by + // clicking the Remove button. If the user cancels the dialog, callback will + // not run. + explicit RemoveTaskFeedbackDialog(base::OnceClosure callback); + + RemoveTaskFeedbackDialog(const RemoveTaskFeedbackDialog&) = delete; + RemoveTaskFeedbackDialog& operator=(const RemoveTaskFeedbackDialog&) = delete; + + ~RemoveTaskFeedbackDialog() override; + + // views::View: + gfx::Size CalculatePreferredSize() const override; + void OnThemeChanged() override; + + views::Button* cancel_button_for_test() { return cancel_button_; } + views::Button* remove_button_for_test() { return remove_button_; } + + private: + // Callbacks for dialog buttons. + void Remove(); + void Cancel(); + + // Invoked when `secondary_options_control_` changes checked state. + void ToggleSecondaryOptionsPanel(); + + // Toggles the visibility of `secondary_options_panel_`. + views::RadioButton* secondary_options_control_ = nullptr; + // View with more feedback options. + views::View* secondary_options_panel_ = nullptr; + views::Button* cancel_button_ = nullptr; + views::Button* remove_button_ = nullptr; + std::unique_ptr<ViewShadow> view_shadow_; + + base::OnceClosure confirm_callback_; + base::CallbackListSubscription secondary_options_control_subscription_; +}; + +BEGIN_VIEW_BUILDER(, RemoveTaskFeedbackDialog, views::WidgetDelegateView) +VIEW_BUILDER_OVERLOAD_METHOD_CLASS(views::WidgetDelegate, + SetModalType, + ui::ModalType) +END_VIEW_BUILDER + +} // namespace ash + +DEFINE_VIEW_BUILDER(, ash::RemoveTaskFeedbackDialog) + +#endif // ASH_APP_LIST_VIEWS_REMOVE_TASK_FEEDBACK_DIALOG_H_
diff --git a/ash/app_list/views/search_result_page_anchored_dialog.cc b/ash/app_list/views/search_result_page_anchored_dialog.cc index b545f6a..dbb24b4 100644 --- a/ash/app_list/views/search_result_page_anchored_dialog.cc +++ b/ash/app_list/views/search_result_page_anchored_dialog.cc
@@ -56,11 +56,12 @@ widget_observations_.AddObservation(widget_); widget_observations_.AddObservation(parent); - host_view_->AddObserver(this); + view_observations_.AddObservation(host_view_); + view_observations_.AddObservation(widget_->GetContentsView()); } SearchResultPageAnchoredDialog::~SearchResultPageAnchoredDialog() { - host_view_->RemoveObserver(this); + view_observations_.RemoveAllObservations(); widget_observations_.RemoveAllObservations(); if (widget_) widget_->Close(); @@ -116,7 +117,11 @@ void SearchResultPageAnchoredDialog::OnViewBoundsChanged( views::View* observed_view) { - DCHECK_EQ(host_view_, observed_view); + UpdateBounds(); +} + +void SearchResultPageAnchoredDialog::OnViewPreferredSizeChanged( + views::View* observed_view) { UpdateBounds(); }
diff --git a/ash/app_list/views/search_result_page_anchored_dialog.h b/ash/app_list/views/search_result_page_anchored_dialog.h index dc3da29a..6a07308 100644 --- a/ash/app_list/views/search_result_page_anchored_dialog.h +++ b/ash/app_list/views/search_result_page_anchored_dialog.h
@@ -61,6 +61,7 @@ // views::ViewObserver: void OnViewBoundsChanged(views::View* observed_view) override; + void OnViewPreferredSizeChanged(views::View* observed_view) override; views::Widget* widget() { return widget_; } @@ -73,6 +74,8 @@ base::ScopedMultiSourceObservation<views::Widget, views::WidgetObserver> widget_observations_{this}; + base::ScopedMultiSourceObservation<views::View, views::ViewObserver> + view_observations_{this}; }; } // namespace ash
diff --git a/ash/app_list/views/search_result_page_dialog_controller.cc b/ash/app_list/views/search_result_page_dialog_controller.cc index b638be8..08442bf 100644 --- a/ash/app_list/views/search_result_page_dialog_controller.cc +++ b/ash/app_list/views/search_result_page_dialog_controller.cc
@@ -31,10 +31,9 @@ dialog_->widget()->Show(); } -void SearchResultPageDialogController::SetEnabled(bool enabled) { +void SearchResultPageDialogController::Reset(bool enabled) { enabled_ = enabled; - if (!enabled) - dialog_.reset(); + dialog_.reset(); } void SearchResultPageDialogController::OnAnchoredDialogClosed() {
diff --git a/ash/app_list/views/search_result_page_dialog_controller.h b/ash/app_list/views/search_result_page_dialog_controller.h index e7a572f..37e1ad7 100644 --- a/ash/app_list/views/search_result_page_dialog_controller.h +++ b/ash/app_list/views/search_result_page_dialog_controller.h
@@ -31,9 +31,9 @@ // No-op if not enabled. void Show(std::unique_ptr<views::WidgetDelegate> dialog_contents); - // Sets whether search result page dialogs are enabled. Disabling dialoga will - // close any currently opened dialogs. - void SetEnabled(bool enabled); + // Sets whether search result page dialogs are enabled. It closes the + // current dialog if it exists. + void Reset(bool enabled); SearchResultPageAnchoredDialog* dialog() { return dialog_.get(); }
diff --git a/ash/app_list/views/search_result_page_view.cc b/ash/app_list/views/search_result_page_view.cc index 4baac2820..4365168 100644 --- a/ash/app_list/views/search_result_page_view.cc +++ b/ash/app_list/views/search_result_page_view.cc
@@ -782,7 +782,7 @@ // being moved onto suggested apps when zero state is enabled. AppListPage::OnHidden(); notify_a11y_results_changed_timer_.Stop(); - dialog_controller_->SetEnabled(false); + dialog_controller_->Reset(false); SetVisible(false); for (auto* container_view : result_container_views_) { container_view->SetShown(false); @@ -796,7 +796,7 @@ void SearchResultPageView::OnShown() { AppListPage::OnShown(); - dialog_controller_->SetEnabled(true); + dialog_controller_->Reset(true); for (auto* container_view : result_container_views_) { container_view->SetShown(ShouldShowSearchResultView());
diff --git a/ash/ash_prefs.cc b/ash/ash_prefs.cc index 4aa5c1a0..3d59d18 100644 --- a/ash/ash_prefs.cc +++ b/ash/ash_prefs.cc
@@ -102,10 +102,10 @@ quick_pair::Mediator::RegisterProfilePrefs(registry); ShelfController::RegisterProfilePrefs(registry); TouchDevicesController::RegisterProfilePrefs(registry, for_test); - tray::VPNListView::RegisterProfilePrefs(registry); UnifiedSystemTrayController::RegisterProfilePrefs(registry); MediaTray::RegisterProfilePrefs(registry); UsbPeripheralNotificationController::RegisterProfilePrefs(registry); + VPNListView::RegisterProfilePrefs(registry); WallpaperControllerImpl::RegisterProfilePrefs(registry); WindowCycleController::RegisterProfilePrefs(registry);
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index 4d22fbb6..a29e2e4 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd
@@ -4499,6 +4499,30 @@ <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_PRIVACY_BUTTON" desc="Text for the privacy notice accepting button in the continue section of the launcher, which shows recent files and apps that the user can continue using."> OK </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_TITLE" desc="The title for the feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions)."> + Remove this suggestion? + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FEEDBACK_TEXT" desc="The text asking the user to provide optional feedback in a dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions)."> + Provide optional feedback to improve suggestions: + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_ANY_SUGGESTIONS_OPTION" desc="A radio button option shown in a feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions). The user can select this option to indicate that they are not interested in any file suggestions. The feedback dialog has another radio button to indicate the user is not interested in the specific suggestion that is being removed."> + Not interested in any suggestions + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_THIS_SUGGESTION_OPTION" desc="A radio button option shown in a feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions). The user can select this option to indicate that they are not interested in the specific file suggestion that is being removed. The feedback dialog has another radio button to indicate the user is not interested in the any file suggestions. After the user selects this choice, more options will be presented in the form of checkbox buttons to provide additional feedback for an specific suggestion."> + Not interested in this suggestion + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FILE_DONE_OPTION" desc="A checkbutton option shown in a feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions). This option will be shown only to users who indicate that are not interested in one particular suggestion. The user can check this option to indicate that they will not use the file any further."> + Done using the file + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_DO_NOT_SHOW_FILE_OPTION" desc="A checkbutton option shown in a feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions). This option will be shown only to users who indicate that are not interested in one particular suggestion. The user can check this option to indicate that they are concerned about this file suggestion showing."> + Don't want this file shown + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_CANCEL_BUTTON_LABEL" desc="The label for the cancel button in a feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions). This button closes the dialog without removing the item suggestion."> + Cancel + </message> + <message name="IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_REMOVE_BUTTON_LABEL" desc="The label for the remove button in a feedback dialog shown to users when they try to remove a file suggestion in the ChromeOS launcher UI (the launcher UI has a section that displays files the user may want to continue working on, and the user can remove individual suggestions). This button removes the item suggestion and collects the feedback provided by the user (if any)."> + Remove + </message> <!-- Launcher / App List --> <message name="IDS_ASH_LAUNCHER_APPS_GRID_CONTEXT_MENU_REORDER_TITLE" desc="Title of the context menu in apps grid view in Productivity Launcher that allows users to sort their apps in the laucher. The context menu will have provide options to sort by name or color.">
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_ANY_SUGGESTIONS_OPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_ANY_SUGGESTIONS_OPTION.png.sha1 new file mode 100644 index 0000000..b0d93ee8 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_ANY_SUGGESTIONS_OPTION.png.sha1
@@ -0,0 +1 @@ +c415cd3eb45cbd98a0c15652f26b71952f16c90a \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_CANCEL_BUTTON_LABEL.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_CANCEL_BUTTON_LABEL.png.sha1 new file mode 100644 index 0000000..720a36a --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_CANCEL_BUTTON_LABEL.png.sha1
@@ -0,0 +1 @@ +a7c9bf27866f675e6f9ebbfb1be082e795539a5f \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_DO_NOT_SHOW_FILE_OPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_DO_NOT_SHOW_FILE_OPTION.png.sha1 new file mode 100644 index 0000000..ade7f064 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_DO_NOT_SHOW_FILE_OPTION.png.sha1
@@ -0,0 +1 @@ +f6539bfd14aec8ce07ea0146740eb8f884073b2f \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FEEDBACK_TEXT.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FEEDBACK_TEXT.png.sha1 new file mode 100644 index 0000000..c681eac --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FEEDBACK_TEXT.png.sha1
@@ -0,0 +1 @@ +7a1196473ada2c833af8693be89bbac8d07c46a0 \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FILE_DONE_OPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FILE_DONE_OPTION.png.sha1 new file mode 100644 index 0000000..b85238d --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_FILE_DONE_OPTION.png.sha1
@@ -0,0 +1 @@ +d3c6cd8b43813b760c5d5b51d76d7cb404d8a025 \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_REMOVE_BUTTON_LABEL.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_REMOVE_BUTTON_LABEL.png.sha1 new file mode 100644 index 0000000..9431bfe --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_REMOVE_BUTTON_LABEL.png.sha1
@@ -0,0 +1 @@ +b66ae2ca2f7ac9bf3a8832399081a1f5b57ce3d6 \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_THIS_SUGGESTION_OPTION.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_THIS_SUGGESTION_OPTION.png.sha1 new file mode 100644 index 0000000..3c6e4a28 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_THIS_SUGGESTION_OPTION.png.sha1
@@ -0,0 +1 @@ +310b0168d822ae3dbb4bf6dabeeb266a0cbeeaac \ No newline at end of file
diff --git a/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_TITLE.png.sha1 b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_TITLE.png.sha1 new file mode 100644 index 0000000..24f0ce5 --- /dev/null +++ b/ash/ash_strings_grd/IDS_ASH_LAUNCHER_CONTINUE_SECTION_REMOVE_DIALOG_TITLE.png.sha1
@@ -0,0 +1 @@ +5f4d9968b5914b4a934027427b4681d0569011e3 \ No newline at end of file
diff --git a/ash/public/cpp/app_list/app_list_features.cc b/ash/public/cpp/app_list/app_list_features.cc index 4aed15f7..4e61b99a 100644 --- a/ash/public/cpp/app_list/app_list_features.cc +++ b/ash/public/cpp/app_list/app_list_features.cc
@@ -45,6 +45,8 @@ "DynamicSearchUpdateAnimation", base::FEATURE_DISABLED_BY_DEFAULT}; const base::Feature kLauncherLacrosIntegration{ "LauncherLacrosIntegration", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kFeedbackOnContinueSectionRemove{ + "FeedbackOnContinueSectionRemove", base::FEATURE_DISABLED_BY_DEFAULT}; bool IsAppRankerEnabled() { return base::FeatureList::IsEnabled(kEnableAppRanker); @@ -139,4 +141,9 @@ return base::FeatureList::IsEnabled(kForceShowContinueSection); } +bool IsFeedbackOnContinueSectionRemoveEnabled() { + return ash::features::IsProductivityLauncherEnabled() && + base::FeatureList::IsEnabled(kFeedbackOnContinueSectionRemove); +} + } // namespace app_list_features
diff --git a/ash/public/cpp/app_list/app_list_features.h b/ash/public/cpp/app_list/app_list_features.h index 5cb68f6b..ad7bd36 100644 --- a/ash/public/cpp/app_list/app_list_features.h +++ b/ash/public/cpp/app_list/app_list_features.h
@@ -78,6 +78,9 @@ // browser. If disabled, queries are sent to the ash browser. ASH_PUBLIC_EXPORT extern const base::Feature kLauncherLacrosIntegration; +// Shows a feedback dialog when removing a continue section suggestion. +ASH_PUBLIC_EXPORT extern const base::Feature kFeedbackOnContinueSectionRemove; + ASH_PUBLIC_EXPORT bool IsAppRankerEnabled(); ASH_PUBLIC_EXPORT bool IsZeroStateAppsRankerEnabled(); ASH_PUBLIC_EXPORT bool IsQueryBasedMixedTypesRankerEnabled(); @@ -97,6 +100,7 @@ ASH_PUBLIC_EXPORT bool IsDynamicSearchUpdateAnimationEnabled(); ASH_PUBLIC_EXPORT base::TimeDelta DynamicSearchUpdateAnimationDuration(); ASH_PUBLIC_EXPORT bool IsLauncherLacrosIntegrationEnabled(); +ASH_PUBLIC_EXPORT bool IsFeedbackOnContinueSectionRemoveEnabled(); ASH_PUBLIC_EXPORT std::string AnswerServerUrl(); ASH_PUBLIC_EXPORT std::string AnswerServerQuerySuffix();
diff --git a/ash/system/message_center/ash_notification_view.cc b/ash/system/message_center/ash_notification_view.cc index d3254c4..d768d995 100644 --- a/ash/system/message_center/ash_notification_view.cc +++ b/ash/system/message_center/ash_notification_view.cc
@@ -675,9 +675,10 @@ total_grouped_notifications_ = 0; grouped_notifications_container_->RemoveAllChildViews(); - for (auto* notification : notifications) { + for (auto notification = notifications.rbegin(); + notification != notifications.rend(); notification++) { auto notification_view = - std::make_unique<AshNotificationView>(*notification, + std::make_unique<AshNotificationView>(**notification, /*shown_in_popup=*/false); notification_view->SetVisible( total_grouped_notifications_ < @@ -687,10 +688,11 @@ notification_view->set_scroller( scroller() ? scroller() : grouped_notifications_scroll_view_); - grouped_notifications_container_->AddChildViewAt( - std::move(notification_view), 0); + grouped_notifications_container_->AddChildView( + std::move(notification_view)); + + total_grouped_notifications_++; } - total_grouped_notifications_ = notifications.size(); left_content_->SetVisible(total_grouped_notifications_ == 0); expand_button_->UpdateGroupedNotificationsCount(total_grouped_notifications_); }
diff --git a/ash/system/network/fake_network_detailed_network_view.cc b/ash/system/network/fake_network_detailed_network_view.cc index 0d08f96..c115ebe 100644 --- a/ash/system/network/fake_network_detailed_network_view.cc +++ b/ash/system/network/fake_network_detailed_network_view.cc
@@ -7,7 +7,6 @@ #include "ash/system/network/network_detailed_network_view.h" namespace ash { -namespace tray { FakeNetworkDetailedNetworkView::FakeNetworkDetailedNetworkView( Delegate* delegate) @@ -19,5 +18,4 @@ return this; } -} // namespace tray } // namespace ash \ No newline at end of file
diff --git a/ash/system/network/fake_network_detailed_network_view.h b/ash/system/network/fake_network_detailed_network_view.h index 682eab4..4f09719 100644 --- a/ash/system/network/fake_network_detailed_network_view.h +++ b/ash/system/network/fake_network_detailed_network_view.h
@@ -10,7 +10,6 @@ #include "ui/views/view.h" namespace ash { -namespace tray { // Fake implementation of NetworkDetailedNetworkView. class ASH_EXPORT FakeNetworkDetailedNetworkView @@ -29,7 +28,6 @@ views::View* GetAsView() override; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_FAKE_NETWORK_DETAILED_NETWORK_VIEW_H_
diff --git a/ash/system/network/fake_network_detailed_view_delegate.cc b/ash/system/network/fake_network_detailed_view_delegate.cc index 3238622..470838e 100644 --- a/ash/system/network/fake_network_detailed_view_delegate.cc +++ b/ash/system/network/fake_network_detailed_view_delegate.cc
@@ -7,7 +7,6 @@ #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" namespace ash { -namespace tray { namespace { @@ -23,5 +22,4 @@ last_network_list_item_selected_ = mojo::Clone(network); } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/fake_network_detailed_view_delegate.h b/ash/system/network/fake_network_detailed_view_delegate.h index 36454c51..5d44b78 100644 --- a/ash/system/network/fake_network_detailed_view_delegate.h +++ b/ash/system/network/fake_network_detailed_view_delegate.h
@@ -10,7 +10,6 @@ #include "chromeos/services/network_config/public/mojom/cros_network_config.mojom.h" namespace ash { -namespace tray { namespace { @@ -41,7 +40,6 @@ NetworkStatePropertiesPtr last_network_list_item_selected_; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_FAKE_NETWORK_DETAILED_VIEW_DELEGATE_H_
diff --git a/ash/system/network/network_detailed_network_view.cc b/ash/system/network/network_detailed_network_view.cc index 6d94ba0..a5fb6b8 100644 --- a/ash/system/network/network_detailed_network_view.cc +++ b/ash/system/network/network_detailed_network_view.cc
@@ -9,7 +9,6 @@ #include "ash/system/tray/detailed_view_delegate.h" namespace ash { -namespace tray { namespace { NetworkDetailedNetworkView::Factory* g_test_factory = nullptr; } // namespace @@ -25,7 +24,7 @@ Delegate* delegate) { if (g_test_factory) return g_test_factory->CreateForTesting(delegate); // IN-TEST - return std::make_unique<tray::NetworkDetailedNetworkViewImpl>( + return std::make_unique<NetworkDetailedNetworkViewImpl>( detailed_view_delegate, delegate); } @@ -34,5 +33,4 @@ g_test_factory = test_factory; } -} // namespace tray } // namespace ash \ No newline at end of file
diff --git a/ash/system/network/network_detailed_network_view.h b/ash/system/network/network_detailed_network_view.h index 76b99c1..f1deff6a 100644 --- a/ash/system/network/network_detailed_network_view.h +++ b/ash/system/network/network_detailed_network_view.h
@@ -12,8 +12,6 @@ class DetailedViewDelegate; -namespace tray { - // This class defines both the interface used to interact with the // NetworkDetailedView and declares delegate interface it uses to propagate user // interactions. It also defines the factory used to create instances of @@ -72,7 +70,6 @@ Delegate* delegate_; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_DETAILED_NETWORK_VIEW_H_
diff --git a/ash/system/network/network_detailed_network_view_impl.cc b/ash/system/network/network_detailed_network_view_impl.cc index 6a25dec9..118b221 100644 --- a/ash/system/network/network_detailed_network_view_impl.cc +++ b/ash/system/network/network_detailed_network_view_impl.cc
@@ -10,7 +10,6 @@ #include "ui/base/metadata/metadata_impl_macros.h" namespace ash { -namespace tray { NetworkDetailedNetworkViewImpl::NetworkDetailedNetworkViewImpl( DetailedViewDelegate* detailed_view_delegate, @@ -31,5 +30,4 @@ BEGIN_METADATA(NetworkDetailedNetworkViewImpl, views::View) END_METADATA -} // namespace tray } // namespace ash \ No newline at end of file
diff --git a/ash/system/network/network_detailed_network_view_impl.h b/ash/system/network/network_detailed_network_view_impl.h index 035ce078..d73f3c1 100644 --- a/ash/system/network/network_detailed_network_view_impl.h +++ b/ash/system/network/network_detailed_network_view_impl.h
@@ -14,8 +14,6 @@ class DetailedViewDelegate; -namespace tray { - // This class is an implementation for NetworkDetailedNetworkView. // TODO(b/207089013): extend and implement // NetworkListNetworkHeaderView::Delegate when available. @@ -39,7 +37,6 @@ views::View* GetAsView() override; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_DETAILED_NETWORK_VIEW_H_
diff --git a/ash/system/network/network_detailed_network_view_unittest.cc b/ash/system/network/network_detailed_network_view_unittest.cc index d19d269d..f217410 100644 --- a/ash/system/network/network_detailed_network_view_unittest.cc +++ b/ash/system/network/network_detailed_network_view_unittest.cc
@@ -12,7 +12,6 @@ #include "base/test/scoped_feature_list.h" namespace ash { -namespace tray { class NetworkDetailedNetworkViewTest : public AshTestBase { public: @@ -41,5 +40,4 @@ EXPECT_TRUE(true); } -} // namespace tray } // namespace ash \ No newline at end of file
diff --git a/ash/system/network/network_detailed_view.cc b/ash/system/network/network_detailed_view.cc index 51508f3..46d19cc 100644 --- a/ash/system/network/network_detailed_view.cc +++ b/ash/system/network/network_detailed_view.cc
@@ -19,7 +19,6 @@ #include "ui/views/controls/button/button.h" namespace ash { -namespace tray { NetworkDetailedView::NetworkDetailedView( DetailedViewDelegate* detailed_view_delegate, @@ -129,5 +128,4 @@ system_tray_client->ShowNetworkSettings(guid); } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_detailed_view.h b/ash/system/network/network_detailed_view.h index fdd9827e..b8f703e 100644 --- a/ash/system/network/network_detailed_view.h +++ b/ash/system/network/network_detailed_view.h
@@ -24,8 +24,6 @@ class DetailedViewDelegate; class Button; -namespace tray { - // This class defines both the interface used to interact with the detailed // Network page within the quick settings, including the view responsible for // containing the network list. This class includes the declaration for the @@ -104,7 +102,6 @@ base::WeakPtrFactory<NetworkDetailedView> weak_ptr_factory_{this}; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_DETAILED_VIEW_H_
diff --git a/ash/system/network/network_detailed_view_controller.cc b/ash/system/network/network_detailed_view_controller.cc index 1a326db..0f92f76 100644 --- a/ash/system/network/network_detailed_view_controller.cc +++ b/ash/system/network/network_detailed_view_controller.cc
@@ -14,7 +14,6 @@ #include "ui/views/view.h" namespace ash { -namespace tray { NetworkDetailedViewController::NetworkDetailedViewController( UnifiedSystemTrayController* tray_controller) @@ -27,7 +26,7 @@ views::View* NetworkDetailedViewController::CreateView() { DCHECK(!network_detailed_view_); - std::unique_ptr<tray::NetworkDetailedNetworkView> view = + std::unique_ptr<NetworkDetailedNetworkView> view = NetworkDetailedNetworkView::Factory::Create(detailed_view_delegate_.get(), /*delegate=*/this); network_detailed_view_ = view.get(); @@ -52,5 +51,4 @@ void NetworkDetailedViewController::OnWifiToggleClicked(bool new_state) {} -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_detailed_view_controller.h b/ash/system/network/network_detailed_view_controller.h index 4214503..52298fb 100644 --- a/ash/system/network/network_detailed_view_controller.h +++ b/ash/system/network/network_detailed_view_controller.h
@@ -21,7 +21,6 @@ } // namespace views namespace ash { -namespace tray { // This class encapsulates the logic to update the detailed Network device // page within the quick settings and translate user interaction with the @@ -57,7 +56,6 @@ std::unique_ptr<NetworkListViewController> network_list_view_controller_; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_DETAILED_VIEW_CONTROLLER_H_
diff --git a/ash/system/network/network_detailed_view_controller_unittest.cc b/ash/system/network/network_detailed_view_controller_unittest.cc index ed979494..dab81ef 100644 --- a/ash/system/network/network_detailed_view_controller_unittest.cc +++ b/ash/system/network/network_detailed_view_controller_unittest.cc
@@ -11,7 +11,6 @@ #include "base/test/scoped_feature_list.h" namespace ash { -namespace tray { class NetworkDetailedViewControllerTest : public AshTestBase { public: @@ -41,5 +40,4 @@ EXPECT_TRUE(true); } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_detailed_view_unittest.cc b/ash/system/network/network_detailed_view_unittest.cc index 3d9c958..af9f0b3 100644 --- a/ash/system/network/network_detailed_view_unittest.cc +++ b/ash/system/network/network_detailed_view_unittest.cc
@@ -32,7 +32,6 @@ } // namespace views namespace ash { -namespace tray { namespace { const std::string kNetworkdId = "/network/id"; @@ -140,5 +139,4 @@ } } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_info_bubble.cc b/ash/system/network/network_info_bubble.cc index 6a89e403..61b8385 100644 --- a/ash/system/network/network_info_bubble.cc +++ b/ash/system/network/network_info_bubble.cc
@@ -20,7 +20,6 @@ #include "ui/views/view.h" namespace ash { -namespace tray { namespace { using chromeos::network_config::mojom::DeviceStateProperties; @@ -153,5 +152,4 @@ return info_text; } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_info_bubble.h b/ash/system/network/network_info_bubble.h index 0b5974e4..5fe8089a 100644 --- a/ash/system/network/network_info_bubble.h +++ b/ash/system/network/network_info_bubble.h
@@ -15,7 +15,6 @@ #include "ui/views/widget/widget.h" namespace ash { -namespace tray { // This class encapsulates the logic to find and show the IP addresses and mac // addresses of the default network and available network technologies. @@ -63,7 +62,6 @@ base::WeakPtr<Delegate> delegate_; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_INFO_BUBBLE_H_
diff --git a/ash/system/network/network_info_bubble_unittest.cc b/ash/system/network/network_info_bubble_unittest.cc index 9ef6d2a4..214d310 100644 --- a/ash/system/network/network_info_bubble_unittest.cc +++ b/ash/system/network/network_info_bubble_unittest.cc
@@ -24,7 +24,6 @@ #include "ui/views/view.h" namespace ash { -namespace tray { namespace { using chromeos::network_config::CrosNetworkConfigTestHelper; @@ -289,5 +288,4 @@ CloseBubble(); } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_list_view.cc b/ash/system/network/network_list_view.cc index d3f2b45a..62edcddd 100644 --- a/ash/system/network/network_list_view.cc +++ b/ash/system/network/network_list_view.cc
@@ -60,7 +60,6 @@ using chromeos::network_config::mojom::ProxyMode; namespace ash { -namespace tray { namespace { const int kMobileNetworkBatteryIconSize = 20; @@ -647,7 +646,7 @@ default: return u""; } -} // namespace tray +} views::View* NetworkListView::CreatePowerStatusView(const NetworkInfo& info) { // Mobile can be Cellular or Tether. @@ -824,5 +823,4 @@ return connection_warning; } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_list_view.h b/ash/system/network/network_list_view.h index d5810996..6eefb7f1 100644 --- a/ash/system/network/network_list_view.h +++ b/ash/system/network/network_list_view.h
@@ -24,13 +24,12 @@ } // namespace views namespace ash { -class HoverHighlightView; -class TrayInfoLabel; -class TriView; -namespace tray { +class HoverHighlightView; class NetworkSectionHeaderView; class MobileSectionHeaderView; +class TrayInfoLabel; +class TriView; class WifiSectionHeaderView; // A list of available networks of a given type. This class is used for all @@ -166,7 +165,6 @@ base::WeakPtrFactory<NetworkListView> weak_ptr_factory_{this}; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_LIST_VIEW_H_
diff --git a/ash/system/network/network_list_view_controller.cc b/ash/system/network/network_list_view_controller.cc index 40b7d0bd..13fcffd0 100644 --- a/ash/system/network/network_list_view_controller.cc +++ b/ash/system/network/network_list_view_controller.cc
@@ -9,15 +9,13 @@ namespace ash { -namespace tray { - namespace { NetworkListViewController::Factory* g_test_factory = nullptr; } // namespace std::unique_ptr<NetworkListViewController> NetworkListViewController::Factory::Create( - tray::NetworkDetailedNetworkView* network_detailed_network_view) { + NetworkDetailedNetworkView* network_detailed_network_view) { if (g_test_factory) return g_test_factory->CreateForTesting(); // IN-TEST return std::make_unique<NetworkListViewControllerImpl>( @@ -29,5 +27,4 @@ g_test_factory = test_factory; } -} // namespace tray -} // namespace ash \ No newline at end of file +} // namespace ash
diff --git a/ash/system/network/network_list_view_controller.h b/ash/system/network/network_list_view_controller.h index 487d391..03a1383 100644 --- a/ash/system/network/network_list_view_controller.h +++ b/ash/system/network/network_list_view_controller.h
@@ -9,7 +9,6 @@ #include "ash/system/network/network_detailed_network_view.h" namespace ash { -namespace tray { // This class defines the interface used to add, modify, and remove networks // from the network list of the detailed network device page within the quick @@ -24,7 +23,7 @@ virtual ~Factory() = default; static std::unique_ptr<NetworkListViewController> Create( - tray::NetworkDetailedNetworkView* network_detailed_network_view); + NetworkDetailedNetworkView* network_detailed_network_view); static void SetFactoryForTesting(Factory* test_factory); protected: @@ -42,7 +41,6 @@ NetworkListViewController() = default; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_LIST_VIEW_CONTROLLER_H_
diff --git a/ash/system/network/network_list_view_controller_impl.cc b/ash/system/network/network_list_view_controller_impl.cc index d76f9999..c24d64f 100644 --- a/ash/system/network/network_list_view_controller_impl.cc +++ b/ash/system/network/network_list_view_controller_impl.cc
@@ -11,7 +11,6 @@ #include "ash/system/network/tray_network_state_model.h" namespace ash { -namespace tray { NetworkListViewControllerImpl::NetworkListViewControllerImpl( NetworkDetailedNetworkView* network_detailed_network_view) @@ -38,5 +37,4 @@ // TODO(b/207089013): Implement this function. } -} // namespace tray -} // namespace ash \ No newline at end of file +} // namespace ash
diff --git a/ash/system/network/network_list_view_controller_impl.h b/ash/system/network/network_list_view_controller_impl.h index 658f3339..fca975b 100644 --- a/ash/system/network/network_list_view_controller_impl.h +++ b/ash/system/network/network_list_view_controller_impl.h
@@ -11,7 +11,6 @@ #include "ash/system/network/tray_network_state_observer.h" namespace ash { -namespace tray { class NetworkDetailedNetworkView; @@ -28,7 +27,7 @@ ~NetworkListViewControllerImpl() override; protected: - tray::NetworkDetailedNetworkView* network_detailed_network_view() { + NetworkDetailedNetworkView* network_detailed_network_view() { return network_detailed_network_view_; } @@ -38,10 +37,9 @@ void NetworkListChanged() override; void DeviceStateListChanged() override; - tray::NetworkDetailedNetworkView* network_detailed_network_view_; + NetworkDetailedNetworkView* network_detailed_network_view_; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_LIST_VIEW_CONTROLLER_IMPL_H_
diff --git a/ash/system/network/network_list_view_controller_unittest.cc b/ash/system/network/network_list_view_controller_unittest.cc index 959a57b..2e5f2421 100644 --- a/ash/system/network/network_list_view_controller_unittest.cc +++ b/ash/system/network/network_list_view_controller_unittest.cc
@@ -12,7 +12,6 @@ #include "base/test/scoped_feature_list.h" namespace ash { -namespace tray { class NetworkListViewControllerTest : public AshTestBase { public: @@ -57,5 +56,4 @@ EXPECT_TRUE(true); } -} // namespace tray -} // namespace ash \ No newline at end of file +} // namespace ash
diff --git a/ash/system/network/network_section_header_view.cc b/ash/system/network/network_section_header_view.cc index ba88713d..5e5f060 100644 --- a/ash/system/network/network_section_header_view.cc +++ b/ash/system/network/network_section_header_view.cc
@@ -39,7 +39,6 @@ using chromeos::network_config::mojom::NetworkType; namespace ash { -namespace tray { namespace { @@ -509,5 +508,4 @@ ::onc::network_type::kWiFi); } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_section_header_view.h b/ash/system/network/network_section_header_view.h index 620fac1..72559ad3 100644 --- a/ash/system/network/network_section_header_view.h +++ b/ash/system/network/network_section_header_view.h
@@ -23,8 +23,6 @@ class IconButton; class TrayNetworkStateModel; -namespace tray { - // A header row for sections in network detailed view which contains a title and // a toggle button to turn on/off the section. Subclasses are given the // opportunity to add extra buttons before the toggle button is added. @@ -181,7 +179,6 @@ IconButton* join_button_ = nullptr; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_SECTION_HEADER_VIEW_H_
diff --git a/ash/system/network/network_state_list_detailed_view.cc b/ash/system/network/network_state_list_detailed_view.cc index 943430f..503ad254 100644 --- a/ash/system/network/network_state_list_detailed_view.cc +++ b/ash/system/network/network_state_list_detailed_view.cc
@@ -34,7 +34,6 @@ #include "ui/views/widget/widget.h" namespace ash { -namespace tray { namespace { using base::UserMetricsAction; @@ -482,5 +481,4 @@ DeviceStateType::kEnabled; } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_state_list_detailed_view.h b/ash/system/network/network_state_list_detailed_view.h index 622f202..dc023bc 100644 --- a/ash/system/network/network_state_list_detailed_view.h +++ b/ash/system/network/network_state_list_detailed_view.h
@@ -22,8 +22,6 @@ namespace ash { class TrayNetworkStateModel; -namespace tray { - bool CanNetworkConnect( chromeos::network_config::mojom::ConnectionStateType connection_state, chromeos::network_config::mojom::NetworkType type, @@ -127,7 +125,6 @@ base::WeakPtrFactory<NetworkStateListDetailedView> weak_ptr_factory_{this}; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_STATE_LIST_DETAILED_VIEW_H_
diff --git a/ash/system/network/network_tray_view.cc b/ash/system/network/network_tray_view.cc index 785247a..c57fd43e 100644 --- a/ash/system/network/network_tray_view.cc +++ b/ash/system/network/network_tray_view.cc
@@ -18,7 +18,6 @@ #include "ui/views/controls/image_view.h" namespace ash { -namespace tray { namespace { @@ -131,5 +130,4 @@ } } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/network_tray_view.h b/ash/system/network/network_tray_view.h index d8d130d..405865e 100644 --- a/ash/system/network/network_tray_view.h +++ b/ash/system/network/network_tray_view.h
@@ -14,7 +14,6 @@ #include "ash/system/tray/tray_item_view.h" namespace ash { -namespace tray { // View class containing an ImageView for a network icon in the tray. // The ActiveNetworkIcon::Type parameter determines what type of icon is @@ -77,7 +76,6 @@ std::u16string tooltip_; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_NETWORK_TRAY_VIEW_H_
diff --git a/ash/system/network/unified_network_detailed_view_controller.cc b/ash/system/network/unified_network_detailed_view_controller.cc index cfe80e8..61489a9 100644 --- a/ash/system/network/unified_network_detailed_view_controller.cc +++ b/ash/system/network/unified_network_detailed_view_controller.cc
@@ -24,9 +24,9 @@ views::View* UnifiedNetworkDetailedViewController::CreateView() { DCHECK(!view_); - view_ = new tray::NetworkListView( - detailed_view_delegate_.get(), - Shell::Get()->session_controller()->login_status()); + view_ = + new NetworkListView(detailed_view_delegate_.get(), + Shell::Get()->session_controller()->login_status()); view_->Init(); return view_; }
diff --git a/ash/system/network/unified_network_detailed_view_controller.h b/ash/system/network/unified_network_detailed_view_controller.h index 9822f5cc..87fe6794 100644 --- a/ash/system/network/unified_network_detailed_view_controller.h +++ b/ash/system/network/unified_network_detailed_view_controller.h
@@ -11,11 +11,8 @@ namespace ash { -namespace tray { -class NetworkListView; -} // namespace tray - class DetailedViewDelegate; +class NetworkListView; class UnifiedSystemTrayController; // Controller of Network detailed view in UnifiedSystemTray. @@ -38,7 +35,7 @@ private: const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; - tray::NetworkListView* view_ = nullptr; + NetworkListView* view_ = nullptr; }; } // namespace ash
diff --git a/ash/system/network/unified_vpn_detailed_view_controller.cc b/ash/system/network/unified_vpn_detailed_view_controller.cc index 0aa4df62..db8c6e4 100644 --- a/ash/system/network/unified_vpn_detailed_view_controller.cc +++ b/ash/system/network/unified_vpn_detailed_view_controller.cc
@@ -23,9 +23,8 @@ views::View* UnifiedVPNDetailedViewController::CreateView() { DCHECK(!view_); - view_ = - new tray::VPNListView(detailed_view_delegate_.get(), - Shell::Get()->session_controller()->login_status()); + view_ = new VPNListView(detailed_view_delegate_.get(), + Shell::Get()->session_controller()->login_status()); view_->Init(); return view_; }
diff --git a/ash/system/network/unified_vpn_detailed_view_controller.h b/ash/system/network/unified_vpn_detailed_view_controller.h index 2b0d4ed..83a53d1e 100644 --- a/ash/system/network/unified_vpn_detailed_view_controller.h +++ b/ash/system/network/unified_vpn_detailed_view_controller.h
@@ -11,12 +11,9 @@ namespace ash { -namespace tray { -class VPNListView; -} // namespace tray - class DetailedViewDelegate; class UnifiedSystemTrayController; +class VPNListView; // Controller of VPN detailed view in UnifiedSystemTray. class UnifiedVPNDetailedViewController : public DetailedViewController { @@ -38,7 +35,7 @@ private: const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; - tray::VPNListView* view_ = nullptr; + VPNListView* view_ = nullptr; }; } // namespace ash
diff --git a/ash/system/network/vpn_list_view.cc b/ash/system/network/vpn_list_view.cc index 7ff51ed4..fcb7bce3 100644 --- a/ash/system/network/vpn_list_view.cc +++ b/ash/system/network/vpn_list_view.cc
@@ -61,7 +61,6 @@ using chromeos::network_config::mojom::VpnType; namespace ash { -namespace tray { namespace { struct CompareArcVpnProviderByLastLaunchTime { @@ -529,5 +528,4 @@ } } -} // namespace tray } // namespace ash
diff --git a/ash/system/network/vpn_list_view.h b/ash/system/network/vpn_list_view.h index c928f4f..884dda9 100644 --- a/ash/system/network/vpn_list_view.h +++ b/ash/system/network/vpn_list_view.h
@@ -20,7 +20,6 @@ } namespace ash { -namespace tray { // A list of VPN providers and networks that shows VPN providers and networks in // a hierarchical layout, allowing the user to see at a glance which provider a @@ -101,7 +100,6 @@ base::WeakPtrFactory<VPNListView> weak_ptr_factory_{this}; }; -} // namespace tray } // namespace ash #endif // ASH_SYSTEM_NETWORK_VPN_LIST_VIEW_H_
diff --git a/ash/system/unified/unified_system_tray.cc b/ash/system/unified/unified_system_tray.cc index 8c264700..e4a4ccf 100644 --- a/ash/system/unified/unified_system_tray.cc +++ b/ash/system/unified/unified_system_tray.cc
@@ -205,12 +205,12 @@ if (features::IsSeparateNetworkIconsEnabled()) { network_tray_view_ = - new tray::NetworkTrayView(shelf, ActiveNetworkIcon::Type::kPrimary); + new NetworkTrayView(shelf, ActiveNetworkIcon::Type::kPrimary); AddTrayItemToContainer( - new tray::NetworkTrayView(shelf, ActiveNetworkIcon::Type::kCellular)); + new NetworkTrayView(shelf, ActiveNetworkIcon::Type::kCellular)); } else { network_tray_view_ = - new tray::NetworkTrayView(shelf, ActiveNetworkIcon::Type::kSingle); + new NetworkTrayView(shelf, ActiveNetworkIcon::Type::kSingle); } AddTrayItemToContainer(network_tray_view_);
diff --git a/ash/system/unified/unified_system_tray.h b/ash/system/unified/unified_system_tray.h index 79b55c5b..a17b81d 100644 --- a/ash/system/unified/unified_system_tray.h +++ b/ash/system/unified/unified_system_tray.h
@@ -28,16 +28,13 @@ namespace ash { -namespace tray { -class NetworkTrayView; -} // namespace tray - class AshMessagePopupCollection; class CameraMicTrayItemView; class CurrentLocaleView; class ImeModeView; class HpsNotifyView; class ManagedDeviceTrayItemView; +class NetworkTrayView; class NotificationIconsController; class PrivacyScreenToastController; class TimeTrayItemView; @@ -259,7 +256,7 @@ CameraMicTrayItemView* const mic_view_; TimeTrayItemView* const time_view_; - tray::NetworkTrayView* network_tray_view_ = nullptr; + NetworkTrayView* network_tray_view_ = nullptr; // Contains all tray items views added to tray_container(). std::list<TrayItemView*> tray_items_;
diff --git a/ash/system/unified/unified_system_tray_controller.cc b/ash/system/unified/unified_system_tray_controller.cc index 33ca0e4..ba116be 100644 --- a/ash/system/unified/unified_system_tray_controller.cc +++ b/ash/system/unified/unified_system_tray_controller.cc
@@ -345,8 +345,7 @@ base::RecordAction(base::UserMetricsAction("StatusArea_Network_Detailed")); if (ash::features::IsQuickSettingsNetworkRevampEnabled()) { - ShowDetailedView( - std::make_unique<tray::NetworkDetailedViewController>(this)); + ShowDetailedView(std::make_unique<NetworkDetailedViewController>(this)); } else { ShowDetailedView( std::make_unique<UnifiedNetworkDetailedViewController>(this));
diff --git a/ash/webui/diagnostics_ui/resources/BUILD.gn b/ash/webui/diagnostics_ui/resources/BUILD.gn index 87f1a29b..7daeaac 100644 --- a/ash/webui/diagnostics_ui/resources/BUILD.gn +++ b/ash/webui/diagnostics_ui/resources/BUILD.gn
@@ -113,6 +113,7 @@ js_library("diagnostics_app") { deps = [ ":diagnostics_sticky_banner", + ":input_list", ":network_list", ":system_page", "//ash/webui/common/resources:navigation_view_panel", @@ -393,7 +394,6 @@ ":diagnostics_card", ":diagnostics_sticky_banner", ":diagnostics_types", - ":input_list", ":memory_card", ":mojo_interface_provider", ":overview_card",
diff --git a/ash/wm/desks/desk_animation_base.cc b/ash/wm/desks/desk_animation_base.cc index bc9e895..b35e572 100644 --- a/ash/wm/desks/desk_animation_base.cc +++ b/ash/wm/desks/desk_animation_base.cc
@@ -37,13 +37,15 @@ } void DeskAnimationBase::Launch() { + launch_time_ = base::TimeTicks::Now(); + for (auto& observer : controller_->observers_) observer.OnDeskSwitchAnimationLaunching(); // The throughput tracker measures the animation when the user lifts their // fingers off the trackpad, which is done in EndSwipeAnimation. if (!is_continuous_gesture_animation_) - throughput_tracker_.Start(GetReportCallback()); + throughput_tracker_.Start(GetSmoothnessReportCallback()); // This step makes sure that the containers of the target desk are shown at // the beginning of the animation (but not actually visible to the user yet, @@ -122,6 +124,11 @@ if (skip_start_animation) return; + if (!launch_time_.is_null()) { + GetLatencyReportCallback().Run(base::TimeTicks::Now() - launch_time_); + launch_time_ = base::TimeTicks(); + } + for (auto& animator : desk_switch_animators_) animator->StartAnimation(); }
diff --git a/ash/wm/desks/desk_animation_base.h b/ash/wm/desks/desk_animation_base.h index f421977..3b8d9b4 100644 --- a/ash/wm/desks/desk_animation_base.h +++ b/ash/wm/desks/desk_animation_base.h
@@ -9,6 +9,8 @@ #include "ash/public/cpp/metrics_util.h" #include "ash/wm/desks/desks_histogram_enums.h" #include "ash/wm/desks/root_window_desk_switch_animator.h" +#include "base/callback.h" +#include "base/time/time.h" #include "ui/compositor/throughput_tracker.h" namespace ash { @@ -78,11 +80,13 @@ virtual void OnDeskSwitchAnimationFinishedInternal() = 0; // Since performance here matters, we have to use the UMA histograms macros to - // report the smoothness histograms, but each macro use has to be associated - // with exactly one histogram name. This function allows subclasses to return - // a callback that reports the histogram using the macro with their desired - // name. - virtual metrics_util::ReportCallback GetReportCallback() const = 0; + // report the histograms, but each macro use has to be associated with exactly + // one histogram name. These functions allow subclasses to return callbacks + // that report each histogram using the macro with their desired name. + using LatencyReportCallback = + base::OnceCallback<void(const base::TimeDelta& latency)>; + virtual LatencyReportCallback GetLatencyReportCallback() const = 0; + virtual metrics_util::ReportCallback GetSmoothnessReportCallback() const = 0; DesksController* const controller_; @@ -116,6 +120,11 @@ // remove animation. int visible_desk_changes_ = 0; + // Used for the Ash.Desks.AnimationLatency.* histograms. Null if no animation + // is being prepared. In a continuous desk animation, the latency is reported + // only for the first desk switch, and `launch_time_` is null thereafter. + base::TimeTicks launch_time_; + // ThroughputTracker used for measuring this animation smoothness. ui::ThroughputTracker throughput_tracker_;
diff --git a/ash/wm/desks/desk_animation_impl.cc b/ash/wm/desks/desk_animation_impl.cc index bc9b8f3..f0227cf8 100644 --- a/ash/wm/desks/desk_animation_impl.cc +++ b/ash/wm/desks/desk_animation_impl.cc
@@ -23,8 +23,12 @@ namespace { +constexpr char kDeskActivationLatencyHistogramName[] = + "Ash.Desks.AnimationLatency.DeskActivation"; constexpr char kDeskActivationSmoothnessHistogramName[] = "Ash.Desks.AnimationSmoothness.DeskActivation"; +constexpr char kDeskRemovalLatencyHistogramName[] = + "Ash.Desks.AnimationLatency.DeskRemoval"; constexpr char kDeskRemovalSmoothnessHistogramName[] = "Ash.Desks.AnimationSmoothness.DeskRemoval"; @@ -261,8 +265,15 @@ update_window_activation_); } -metrics_util::ReportCallback DeskActivationAnimation::GetReportCallback() - const { +DeskAnimationBase::LatencyReportCallback +DeskActivationAnimation::GetLatencyReportCallback() const { + return base::BindOnce([](const base::TimeDelta& latency) { + UMA_HISTOGRAM_TIMES(kDeskActivationLatencyHistogramName, latency); + }); +} + +metrics_util::ReportCallback +DeskActivationAnimation::GetSmoothnessReportCallback() const { return metrics_util::ForSmoothness(base::BindRepeating([](int smoothness) { UMA_HISTOGRAM_PERCENTAGE(kDeskActivationSmoothnessHistogramName, smoothness); @@ -365,7 +376,15 @@ MaybeRestoreSplitView(/*refresh_snapped_windows=*/true); } -metrics_util::ReportCallback DeskRemovalAnimation::GetReportCallback() const { +DeskAnimationBase::LatencyReportCallback +DeskRemovalAnimation::GetLatencyReportCallback() const { + return base::BindOnce([](const base::TimeDelta& latency) { + UMA_HISTOGRAM_TIMES(kDeskRemovalLatencyHistogramName, latency); + }); +} + +metrics_util::ReportCallback DeskRemovalAnimation::GetSmoothnessReportCallback() + const { return ash::metrics_util::ForSmoothness( base::BindRepeating([](int smoothness) { UMA_HISTOGRAM_PERCENTAGE(kDeskRemovalSmoothnessHistogramName,
diff --git a/ash/wm/desks/desk_animation_impl.h b/ash/wm/desks/desk_animation_impl.h index fc7e3f6..4bc80d3e4 100644 --- a/ash/wm/desks/desk_animation_impl.h +++ b/ash/wm/desks/desk_animation_impl.h
@@ -37,7 +37,8 @@ bool EndSwipeAnimation() override; void OnStartingDeskScreenshotTakenInternal(int ending_desk_index) override; void OnDeskSwitchAnimationFinishedInternal() override; - metrics_util::ReportCallback GetReportCallback() const override; + LatencyReportCallback GetLatencyReportCallback() const override; + metrics_util::ReportCallback GetSmoothnessReportCallback() const override; private: FRIEND_TEST_ALL_PREFIXES(DeskActivationAnimationTest, @@ -82,7 +83,8 @@ // DeskAnimationBase: void OnStartingDeskScreenshotTakenInternal(int ending_desk_index) override; void OnDeskSwitchAnimationFinishedInternal() override; - metrics_util::ReportCallback GetReportCallback() const override; + LatencyReportCallback GetLatencyReportCallback() const override; + metrics_util::ReportCallback GetSmoothnessReportCallback() const override; private: const int desk_to_remove_index_;
diff --git a/ash/wm/desks/desks_unittests.cc b/ash/wm/desks/desks_unittests.cc index 499273b..1c9ef211 100644 --- a/ash/wm/desks/desks_unittests.cc +++ b/ash/wm/desks/desks_unittests.cc
@@ -1927,6 +1927,30 @@ EXPECT_TRUE(full_screen_state_observer.is_fullscreen()); } +// Tests the Ash.Desks.AnimationLatency.DeskActivation histogram. +TEST_F(DesksTest, AnimationLatencyDeskActivation) { + NewDesk(); + auto* controller = DesksController::Get(); + ASSERT_EQ(2u, controller->desks().size()); + + base::HistogramTester histogram_tester; + ActivateDesk(controller->desks()[1].get()); + histogram_tester.ExpectTotalCount("Ash.Desks.AnimationLatency.DeskActivation", + 1); +} + +// Tests the Ash.Desks.AnimationLatency.DeskRemoval histogram. +TEST_F(DesksTest, AnimationLatencyDeskRemoval) { + NewDesk(); + auto* controller = DesksController::Get(); + ASSERT_EQ(2u, controller->desks().size()); + + base::HistogramTester histogram_tester; + RemoveDesk(controller->desks()[0].get()); + histogram_tester.ExpectTotalCount("Ash.Desks.AnimationLatency.DeskRemoval", + 1); +} + class DesksWithMultiDisplayOverview : public AshTestBase { public: DesksWithMultiDisplayOverview() = default;
diff --git a/base/allocator/partition_allocator/partition_page.h b/base/allocator/partition_allocator/partition_page.h index 89f6925b..a676024 100644 --- a/base/allocator/partition_allocator/partition_page.h +++ b/base/allocator/partition_allocator/partition_page.h
@@ -85,7 +85,7 @@ (extent->number_of_consecutive_super_pages * kSuperPageSize); } -using AllocationStateMap = ::base::internal:: +using AllocationStateMap = StateBitmap<kSuperPageSize, kSuperPageAlignment, kAlignment>; // Metadata of the slot span.
diff --git a/base/allocator/partition_allocator/starscan/pcscan_internal.h b/base/allocator/partition_allocator/starscan/pcscan_internal.h index 7456fc2..e78863f 100644 --- a/base/allocator/partition_allocator/starscan/pcscan_internal.h +++ b/base/allocator/partition_allocator/starscan/pcscan_internal.h
@@ -20,6 +20,13 @@ #include "base/memory/scoped_refptr.h" #include "base/no_destructor.h" +// TODO(crbug.com/1288247): Remove this when migration is complete. +namespace partition_alloc::internal { + +class StarScanSnapshot; + +} // namespace partition_alloc::internal + namespace base { class StatsReporter; @@ -112,7 +119,7 @@ private: friend base::NoDestructor<PCScanInternal>; - friend class StarScanSnapshot; + friend class partition_alloc::internal::StarScanSnapshot; using StackTops = std::unordered_map< PlatformThreadId, @@ -151,4 +158,11 @@ } // namespace base +// TODO(crbug.com/1288247): Remove this when migration is complete. +namespace partition_alloc::internal { + +using ::base::internal::PCScanInternal; + +} + #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_STARSCAN_PCSCAN_INTERNAL_H_
diff --git a/base/allocator/partition_allocator/starscan/snapshot.cc b/base/allocator/partition_allocator/starscan/snapshot.cc index 584220f..f6e3022 100644 --- a/base/allocator/partition_allocator/starscan/snapshot.cc +++ b/base/allocator/partition_allocator/starscan/snapshot.cc
@@ -10,8 +10,7 @@ #include "base/allocator/partition_allocator/partition_alloc_check.h" #include "base/allocator/partition_allocator/starscan/pcscan_internal.h" -namespace base { -namespace internal { +namespace partition_alloc::internal { std::unique_ptr<StarScanSnapshot> StarScanSnapshot::Create( const PCScanInternal& pcscan) { @@ -44,5 +43,4 @@ StarScanSnapshot::~StarScanSnapshot() = default; -} // namespace internal -} // namespace base +} // namespace partition_alloc::internal
diff --git a/base/allocator/partition_allocator/starscan/snapshot.h b/base/allocator/partition_allocator/starscan/snapshot.h index 6160468..8828896c 100644 --- a/base/allocator/partition_allocator/starscan/snapshot.h +++ b/base/allocator/partition_allocator/starscan/snapshot.h
@@ -11,10 +11,7 @@ #include "base/allocator/partition_allocator/starscan/pcscan_internal.h" #include "base/allocator/partition_allocator/starscan/raceful_worklist.h" -namespace base { -namespace internal { - -class PCScanInternal; +namespace partition_alloc::internal { class StarScanSnapshot final : public AllocatedOnPCScanMetadataPartition { public: @@ -92,7 +89,13 @@ StarScanSnapshot::UnprotectingView::UnprotectingView(StarScanSnapshot& snapshot) : StarScanSnapshot::ViewBase(snapshot.unprotect_worklist_) {} -} // namespace internal -} // namespace base +} // namespace partition_alloc::internal + +// TODO(crbug.com/1288247): Remove this when migration is complete. +namespace base::internal { + +using ::partition_alloc::internal::StarScanSnapshot; + +} // namespace base::internal #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_STARSCAN_SNAPSHOT_H_
diff --git a/base/allocator/partition_allocator/starscan/state_bitmap.h b/base/allocator/partition_allocator/starscan/state_bitmap.h index 21002167..52a91ca 100644 --- a/base/allocator/partition_allocator/starscan/state_bitmap.h +++ b/base/allocator/partition_allocator/starscan/state_bitmap.h
@@ -19,8 +19,7 @@ #include "base/bits.h" #include "base/compiler_specific.h" -namespace base { -namespace internal { +namespace partition_alloc::internal { // Bitmap which tracks allocation states. An allocation can be in one of 3 // states: @@ -70,7 +69,7 @@ using CellType = uintptr_t; static constexpr size_t kBitsPerCell = sizeof(CellType) * CHAR_BIT; static constexpr size_t kBitsNeededForAllocation = - bits::Log2Floor(static_cast<size_t>(State::kNumOfStates)); + base::bits::Log2Floor(static_cast<size_t>(State::kNumOfStates)); static constexpr CellType kStateMask = (1 << kBitsNeededForAllocation) - 1; static constexpr size_t kBitmapSize = @@ -483,7 +482,6 @@ std::fill(bitmap_.begin(), bitmap_.end(), '\0'); } -} // namespace internal -} // namespace base +} // namespace partition_alloc::internal #endif // BASE_ALLOCATOR_PARTITION_ALLOCATOR_STARSCAN_STATE_BITMAP_H_
diff --git a/base/allocator/partition_allocator/starscan/state_bitmap_unittest.cc b/base/allocator/partition_allocator/starscan/state_bitmap_unittest.cc index 2e67a1f..e42da01 100644 --- a/base/allocator/partition_allocator/starscan/state_bitmap_unittest.cc +++ b/base/allocator/partition_allocator/starscan/state_bitmap_unittest.cc
@@ -10,8 +10,7 @@ #include "base/allocator/partition_allocator/partition_alloc_constants.h" #include "testing/gtest/include/gtest/gtest.h" -namespace base { -namespace internal { +namespace partition_alloc::internal { namespace { @@ -340,5 +339,4 @@ } } -} // namespace internal -} // namespace base +} // namespace partition_alloc::internal
diff --git a/base/win/windows_version.cc b/base/win/windows_version.cc index a6ac5502..dd6aa98 100644 --- a/base/win/windows_version.cc +++ b/base/win/windows_version.cc
@@ -25,8 +25,8 @@ #error VS 2017 Update 3.2 or higher is required #endif -#if !defined(NTDDI_WIN10_VB) -#error Windows 10.0.19041.0 SDK or higher required. +#if !defined(NTDDI_WIN10_FE) +#error Windows 10.0.20348.0SDK or higher required. #endif namespace base {
diff --git a/build/config/win/BUILD.gn b/build/config/win/BUILD.gn index a892cfe..3a6dc1e5 100644 --- a/build/config/win/BUILD.gn +++ b/build/config/win/BUILD.gn
@@ -286,7 +286,7 @@ # manually override this config for their compiles. config("winver") { defines = [ - "NTDDI_VERSION=NTDDI_WIN10_VB", + "NTDDI_VERSION=NTDDI_WIN10_FE", # We can't say `=_WIN32_WINNT_WIN10` here because some files do # `#if WINVER < 0x0600` without including windows.h before,
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index fd910650..1742af6 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -7.20220401.1.1 +7.20220402.0.1
diff --git a/build/fuchsia/linux_internal.sdk.sha1 b/build/fuchsia/linux_internal.sdk.sha1 index fd910650..1742af6 100644 --- a/build/fuchsia/linux_internal.sdk.sha1 +++ b/build/fuchsia/linux_internal.sdk.sha1
@@ -1 +1 @@ -7.20220401.1.1 +7.20220402.0.1
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index fd910650..1742af6 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -7.20220401.1.1 +7.20220402.0.1
diff --git a/build/toolchain/win/setup_toolchain.py b/build/toolchain/win/setup_toolchain.py index d692fc9..831e36f 100644 --- a/build/toolchain/win/setup_toolchain.py +++ b/build/toolchain/win/setup_toolchain.py
@@ -175,7 +175,7 @@ # Explicitly specifying the SDK version to build with to avoid accidentally # building with a new and untested SDK. This should stay in sync with the # packaged toolchain in build/vs_toolchain.py. - args.append('10.0.19041.0') + args.append('10.0.20348.0') variables = _LoadEnvFromBat(args) return _ExtractImportantEnvironment(variables)
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py index 9b8c09f..fc2e5e0 100755 --- a/build/vs_toolchain.py +++ b/build/vs_toolchain.py
@@ -19,8 +19,8 @@ from gn_helpers import ToGNString -# VS 2019 16.61 with 10.0.19041 SDK, and 10.0.20348 version of -# d3dcompiler_47.dll, with ARM64 libraries and UWP support. +# VS 2019 16.61 with 10.0.20348.0 SDK, 10.0.19041 version of Debuggers +# with ARM64 libraries and UWP support. # See go/chromium-msvc-toolchain for instructions about how to update the # toolchain. # @@ -33,7 +33,7 @@ # Affects the availability of APIs in the toolchain headers. # * //docs/windows_build_instructions.md mentions of VS or Windows SDK. # Keeps the document consistent with the toolchain version. -TOOLCHAIN_HASH = 'e41785f09f' +TOOLCHAIN_HASH = '1023ce2e82' script_dir = os.path.dirname(os.path.realpath(__file__)) json_data_file = os.path.join(script_dir, 'win_toolchain.json') @@ -443,7 +443,7 @@ continue else: raise Exception('%s not found in "%s"\r\nYou must install ' - 'Windows 10 SDK version 10.0.19041.0 including the ' + 'Windows 10 SDK version 10.0.20348.0 including the ' '"Debugging Tools for Windows" feature.' % (debug_file, full_path)) target_path = os.path.join(target_dir, debug_file)
diff --git a/chrome/VERSION b/chrome/VERSION index 62adc4f7..1613a10 100644 --- a/chrome/VERSION +++ b/chrome/VERSION
@@ -1,4 +1,4 @@ MAJOR=102 MINOR=0 -BUILD=4979 +BUILD=4981 PATCH=0
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java index dc0d089f..2dc375ce 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/PriceTrackingUtilities.java
@@ -33,7 +33,6 @@ @VisibleForTesting public static final String ALLOW_DISABLE_PRICE_ANNOTATIONS_PARAM = "allow_disable_price_annotations"; - @VisibleForTesting public static final String TRACK_PRICES_ON_TABS = ChromePreferenceKeys.PRICE_TRACKING_TRACK_PRICES_ON_TABS; @VisibleForTesting
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java index e0160a67..563ce89 100644 --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherCoordinator.java
@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.lifecycle.DestroyObserver; import org.chromium.chrome.browser.multiwindow.MultiWindowModeStateDispatcher; +import org.chromium.chrome.browser.preferences.SharedPreferencesManager; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManager; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tabmodel.TabCreatorManager; @@ -117,6 +118,7 @@ private TabCreatorManager mTabCreatorManager; private boolean mIsInitialized; private PriceMessageService mPriceMessageService; + private SharedPreferencesManager.Observer mPriceAnnotationsPrefObserver; private final ViewGroup mCoordinatorView; private final ViewGroup mRootView; @@ -293,6 +295,20 @@ mTabListCoordinator.registerItemType(TabProperties.UiType.LARGE_MESSAGE, new LayoutViewBuilder(R.layout.large_message_card_item), LargeMessageCardViewBinder::bind); + + if (PriceTrackingUtilities.getPriceTrackingEnabled()) { + mPriceAnnotationsPrefObserver = key -> { + if (PriceTrackingUtilities.TRACK_PRICES_ON_TABS.equals(key) + && !mTabModelSelector.isIncognitoSelected() + && mTabModelSelector.isTabStateInitialized()) { + resetWithTabList(mTabModelSelector.getTabModelFilterProvider() + .getCurrentTabModelFilter(), + false, isShowingTabsInMRUOrder(mMode)); + } + }; + SharedPreferencesManager.getInstance().addObserver( + mPriceAnnotationsPrefObserver); + } } } @@ -677,6 +693,9 @@ if (mTabAttributeCache != null) { mTabAttributeCache.destroy(); } + if (mPriceAnnotationsPrefObserver != null) { + SharedPreferencesManager.getInstance().removeObserver(mPriceAnnotationsPrefObserver); + } } /**
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index fde828a..e7ad66a 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2218,6 +2218,7 @@ "//components/safe_browsing/content/browser/web_ui", "//components/safe_browsing/core/browser", "//components/safe_browsing/core/browser:safe_browsing_metrics_collector", + "//components/safe_browsing/core/browser:verdict_cache_manager", "//components/safe_browsing/core/browser/db:database_manager", "//components/safe_browsing/core/browser/realtime:policy_engine", "//components/safe_browsing/core/browser/realtime:url_lookup_service",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 2f98086..e230d13 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -52,7 +52,6 @@ #include "chrome/browser/share/share_features.h" #include "chrome/browser/sharing/features.h" #include "chrome/browser/sharing/shared_clipboard/feature_flags.h" -#include "chrome/browser/sharing/sms/sms_flags.h" #include "chrome/browser/sharing_hub/sharing_hub_features.h" #include "chrome/browser/site_isolation/about_flags.h" #include "chrome/browser/ui/app_list/search/search_features.h" @@ -3143,9 +3142,6 @@ kOsLinux | kOsCrOS | kOsWin | kOsAndroid | kOsFuchsia, ENABLE_DISABLE_VALUE_TYPE(switches::kEnableSmoothScrolling, switches::kDisableSmoothScrolling)}, - {"sms-receiver-cross-device", flag_descriptions::kWebOTPCrossDeviceName, - flag_descriptions::kWebOTPCrossDeviceDescription, kOsAll, - FEATURE_VALUE_TYPE(kWebOTPCrossDevice)}, {"fractional-scroll-offsets", flag_descriptions::kFractionalScrollOffsetsName, flag_descriptions::kFractionalScrollOffsetsDescription, kOsAll, @@ -6881,6 +6877,11 @@ flag_descriptions::kForceShowContinueSectionName, flag_descriptions::kForceShowContinueSectionDescription, kOsCrOS, FEATURE_VALUE_TYPE(app_list_features::kForceShowContinueSection)}, + {"launcher-feedback-on-continue-section-remove", + flag_descriptions::kLauncherFeedbackOnContinueSectionRemoveName, + flag_descriptions::kLauncherFeedbackOnContinueSectionRemoveDescription, + kOsCrOS, + FEATURE_VALUE_TYPE(app_list_features::kFeedbackOnContinueSectionRemove)}, {"launcher-game-search", flag_descriptions::kLauncherGameSearchName, flag_descriptions::kLauncherGameSearchDescription, kOsCrOS, FEATURE_VALUE_TYPE(search_features::kLauncherGameSearch)},
diff --git a/chrome/browser/apps/platform_apps/api/sync_file_system/OWNERS b/chrome/browser/apps/platform_apps/api/sync_file_system/OWNERS index fb1695c..d42011e 100644 --- a/chrome/browser/apps/platform_apps/api/sync_file_system/OWNERS +++ b/chrome/browser/apps/platform_apps/api/sync_file_system/OWNERS
@@ -1,2 +1,5 @@ -mek@chromium.org -pwnall@chromium.org +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc index 91ef069..c8e5fee0 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc
@@ -65,6 +65,7 @@ #include "chrome/browser/profiles/keep_alive/scoped_profile_keep_alive.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" +#include "chrome/browser/safe_browsing/verdict_cache_manager_factory.h" #include "chrome/browser/search_engines/template_url_service_factory.h" #include "chrome/browser/share/share_history.h" #include "chrome/browser/share/share_ranking.h" @@ -116,6 +117,7 @@ #include "components/permissions/permission_decision_auto_blocker.h" #include "components/prefs/pref_service.h" #include "components/privacy_sandbox/privacy_sandbox_settings.h" +#include "components/safe_browsing/core/browser/verdict_cache_manager.h" #include "components/search_engines/template_url_service.h" #include "components/web_cache/browser/web_cache_manager.h" #include "components/webrtc_logging/browser/log_cleanup.h" @@ -628,6 +630,8 @@ base::BindOnce( &ChromeBrowsingDataRemoverDelegate::CreateTaskCompletionClosure, base::Unretained(this), TracingDataType::kCookies)); + safe_browsing::VerdictCacheManagerFactory::GetForProfile(profile_) + ->OnCookiesDeleted(); } if (filter_builder->GetMode() ==
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc index 1c55f0a..b9fee41 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -52,6 +52,7 @@ #include "chrome/browser/permissions/permission_decision_auto_blocker_factory.h" #include "chrome/browser/privacy_sandbox/privacy_sandbox_settings_factory.h" #include "chrome/browser/safe_browsing/safe_browsing_service.h" +#include "chrome/browser/safe_browsing/verdict_cache_manager_factory.h" #include "chrome/browser/signin/chrome_signin_client_factory.h" #include "chrome/browser/signin/test_signin_client_builder.h" #include "chrome/browser/spellchecker/spellcheck_custom_dictionary.h" @@ -3308,3 +3309,23 @@ BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), constants::DATA_TYPE_PASSWORDS, false); } + +// Verify that clearing cookies will also clear page load tokens. +TEST_F(ChromeBrowsingDataRemoverDelegateTest, + PageLoadTokenClearedOnCookieDeleted) { + GURL url("https://www.example.com/path"); + safe_browsing::VerdictCacheManager* sb_cache_manager = + safe_browsing::VerdictCacheManagerFactory::GetForProfile(GetProfile()); + sb_cache_manager->CreatePageLoadToken(url); + safe_browsing::ChromeUserPopulation::PageLoadToken token = + sb_cache_manager->GetPageLoadToken(url); + ASSERT_TRUE(token.has_token_value()); + + BlockUntilBrowsingDataRemoved(base::Time(), base::Time::Max(), + content::BrowsingDataRemover::DATA_TYPE_COOKIES, + false); + + token = sb_cache_manager->GetPageLoadToken(url); + // Token is not found because cookies are deleted. + ASSERT_FALSE(token.has_token_value()); +}
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 5a5dbcb..dd77dc3 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -3843,6 +3843,11 @@ "expiry_milestone": 105 }, { + "name": "launcher-feedback-on-continue-section-remove", + "owners": ["anasalazar", "//ash/app_list/OWNERS"], + "expiry_milestone": 107 + }, + { "name": "launcher-game-search", "owners": ["wrong", "napper", "tby"], "expiry_milestone": 110 @@ -5490,11 +5495,6 @@ "expiry_milestone": -1 }, { - "name": "sms-receiver-cross-device", - "owners": [ "goto", "yigu", "web-identity@google.com" ], - "expiry_milestone": 96 - }, - { "name": "snooping-protection", "owners": [ "martis", "charleszhao", "napper" ], "expiry_milestone": 102
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 9cc43cf..850f086 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2373,10 +2373,6 @@ const char kSmoothScrollingDescription[] = "Animate smoothly when scrolling page content."; -const char kWebOTPCrossDeviceName[] = "WebOTP Cross Device"; -const char kWebOTPCrossDeviceDescription[] = - "Enable the WebOTP API to work across devices"; - const char kSplitCacheByNetworkIsolationKeyName[] = "HTTP Cache Partitioning"; const char kSplitCacheByNetworkIsolationKeyDescription[] = "Partitions the HTTP Cache by (top-level site, current-frame site) to " @@ -5403,6 +5399,12 @@ const char kLauncherGameSearchDescription[] = "Enables cloud game search results in the launcher."; +const char kLauncherFeedbackOnContinueSectionRemoveName[] = + "Enable requesting for feedback on continue section suggestions"; +const char kLauncherFeedbackOnContinueSectionRemoveDescription[] = + "When enabled, if a user removes a continue section suggestion, a dialog " + "will appear on the launcher requesting feedback on the suggestions shown."; + const char kLauncherNudgeName[] = "Enable launcher nudge"; const char kLauncherNudgeDescription[] = "Enables nudges that bring new users' attention to the launcher button.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 0f10f656..6108cfa 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1345,9 +1345,6 @@ extern const char kSmoothScrollingName[]; extern const char kSmoothScrollingDescription[]; -extern const char kWebOTPCrossDeviceName[]; -extern const char kWebOTPCrossDeviceDescription[]; - extern const char kSplitCacheByNetworkIsolationKeyName[]; extern const char kSplitCacheByNetworkIsolationKeyDescription[]; @@ -3110,6 +3107,9 @@ extern const char kLauncherGameSearchName[]; extern const char kLauncherGameSearchDescription[]; +extern const char kLauncherFeedbackOnContinueSectionRemoveName[]; +extern const char kLauncherFeedbackOnContinueSectionRemoveDescription[]; + extern const char kLauncherNudgeName[]; extern const char kLauncherNudgeDescription[];
diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/offline_pages/recent_tab_helper.cc index 23fbcfb05..6921bf9 100644 --- a/chrome/browser/offline_pages/recent_tab_helper.cc +++ b/chrome/browser/offline_pages/recent_tab_helper.cc
@@ -191,11 +191,11 @@ void RecentTabHelper::DidFinishNavigation( content::NavigationHandle* navigation_handle) { - if (!navigation_handle->IsInMainFrame() || + if (!navigation_handle->IsInPrimaryMainFrame() || !navigation_handle->HasCommitted() || navigation_handle->IsSameDocument()) { - DVLOG_IF(1, navigation_handle->IsInMainFrame()) - << "Main frame navigation ignored (reasons: " + DVLOG_IF(1, navigation_handle->IsInPrimaryMainFrame()) + << "Primary main frame navigation ignored (reasons: " << !navigation_handle->HasCommitted() << ", " << navigation_handle->IsSameDocument() << ") to: " << web_contents()->GetLastCommittedURL().spec();
diff --git a/chrome/browser/offline_pages/recent_tab_helper.h b/chrome/browser/offline_pages/recent_tab_helper.h index f8ddde3..1b90adb 100644 --- a/chrome/browser/offline_pages/recent_tab_helper.h +++ b/chrome/browser/offline_pages/recent_tab_helper.h
@@ -109,6 +109,9 @@ const std::string& origin); private: + FRIEND_TEST_ALL_PREFIXES(RecentTabHelperFencedFrameTest, + FencedFrameDoesNotChangePageQuality); + struct SnapshotProgressInfo; explicit RecentTabHelper(content::WebContents* web_contents);
diff --git a/chrome/browser/offline_pages/recent_tab_helper_unittest.cc b/chrome/browser/offline_pages/recent_tab_helper_unittest.cc index e552bcf..2f6fdc6f 100644 --- a/chrome/browser/offline_pages/recent_tab_helper_unittest.cc +++ b/chrome/browser/offline_pages/recent_tab_helper_unittest.cc
@@ -28,6 +28,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/test/navigation_simulator.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/public/common/features.h" namespace offline_pages { @@ -1110,4 +1111,53 @@ ASSERT_EQ(1U, GetAllPages().size()); } +class RecentTabHelperFencedFrameTest : public RecentTabHelperTest { + public: + RecentTabHelperFencedFrameTest() { + scoped_feature_list_.InitAndEnableFeatureWithParameters( + blink::features::kFencedFrames, {{"implementation_type", "mparch"}}); + } + ~RecentTabHelperFencedFrameTest() override = default; + + content::RenderFrameHost* CreateFencedFrame( + content::RenderFrameHost* parent) { + content::RenderFrameHost* fenced_frame = + content::RenderFrameHostTester::For(parent)->AppendFencedFrame(); + return fenced_frame; + } + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +// Tests that FencedFrame does not change the current page quality via resetting +// the snapshot controller. +TEST_F(RecentTabHelperFencedFrameTest, FencedFrameDoesNotChangePageQuality) { + // Navigate and finish loading, then move the snapshot controller's time + // forward so it sets the current page quality to FAIR_AND_IMPROVING. + NavigateAndCommitPost(GURL("http://mystery.site/foo.html")); + + recent_tab_helper()->PrimaryMainDocumentElementAvailable(); + FastForwardSnapshotController(); + + EXPECT_EQ(recent_tab_helper()->snapshot_controller_->current_page_quality(), + SnapshotController::PageQuality::FAIR_AND_IMPROVING); + + // Create a fenced frame. + content::RenderFrameHostTester::For(main_rfh()) + ->InitializeRenderFrameIfNeeded(); + content::RenderFrameHost* fenced_frame_rfh = CreateFencedFrame(main_rfh()); + GURL kFencedFrameUrl("https://fencedframe.com"); + std::unique_ptr<content::NavigationSimulator> navigation_simulator = + content::NavigationSimulator::CreateForFencedFrame(kFencedFrameUrl, + fenced_frame_rfh); + navigation_simulator->Commit(); + EXPECT_TRUE(fenced_frame_rfh->IsFencedFrameRoot()); + + // Navigating the fenced frame to the fenced frame url should not change the + // current page quality to POOR. + EXPECT_EQ(recent_tab_helper()->snapshot_controller_->current_page_quality(), + SnapshotController::PageQuality::FAIR_AND_IMPROVING); +} + } // namespace offline_pages
diff --git a/chrome/browser/resources/new_tab_page/realbox/realbox.html b/chrome/browser/resources/new_tab_page/realbox/realbox.html index 68e140a..b8bfab4 100644 --- a/chrome/browser/resources/new_tab_page/realbox/realbox.html +++ b/chrome/browser/resources/new_tab_page/realbox/realbox.html
@@ -114,7 +114,7 @@ } :-webkit-any(input, ntp-realbox-icon, #voiceSearchButton) { - z-index: 2; + z-index: 100; } ntp-realbox-dropdown { @@ -122,7 +122,7 @@ position: absolute; right: 0; top: 0; - z-index: 1; + z-index: 99; } </style> <div id="inputWrapper" on-focusout=onInputWrapperFocusout_
diff --git a/chrome/browser/resources/new_tab_page/realbox/realbox_dropdown.html b/chrome/browser/resources/new_tab_page/realbox/realbox_dropdown.html index ff26f41..65f2b4e 100644 --- a/chrome/browser/resources/new_tab_page/realbox/realbox_dropdown.html +++ b/chrome/browser/resources/new_tab_page/realbox/realbox_dropdown.html
@@ -9,12 +9,14 @@ box-shadow: var(--ntp-realbox-shadow); display: block; margin-bottom: 8px; + overflow: hidden; padding-bottom: 8px; padding-top: var(--ntp-realbox-height); } :host([round-corners]) #selector { border-radius: calc(0.5 * var(--ntp-realbox-height)); + padding-bottom: 16px; } @media (forced-colors: active) {
diff --git a/chrome/browser/resources/sync_file_system_internals/OWNERS b/chrome/browser/resources/sync_file_system_internals/OWNERS index 156078c..7356587 100644 --- a/chrome/browser/resources/sync_file_system_internals/OWNERS +++ b/chrome/browser/resources/sync_file_system_internals/OWNERS
@@ -1,4 +1,4 @@ +asully@chromium.org +ayui@chromium.org calvinlo@chromium.org -mek@chromium.org nhiroki@chromium.org -pwnall@chromium.org
diff --git a/chrome/browser/segmentation_platform/default_model/query_tiles_model.cc b/chrome/browser/segmentation_platform/default_model/query_tiles_model.cc index cd2d902..be86e87 100644 --- a/chrome/browser/segmentation_platform/default_model/query_tiles_model.cc +++ b/chrome/browser/segmentation_platform/default_model/query_tiles_model.cc
@@ -48,15 +48,13 @@ .bucket_count = 7, .tensor_length = 1, .aggregation = proto::Aggregation::COUNT, - .enum_ids_size = 0, - .accepted_enum_ids = {}}, + .enum_ids_size = 0}, UMAFeature{.signal_type = proto::SignalType::USER_ACTION, .name = "Search.QueryTiles.NTP.Tile.Clicked", .bucket_count = 7, .tensor_length = 1, .aggregation = proto::Aggregation::COUNT, - .enum_ids_size = 0, - .accepted_enum_ids = {}}}; + .enum_ids_size = 0}}; void AddUmaFeature(proto::SegmentationModelMetadata* metadata, const UMAFeature features[],
diff --git a/chrome/browser/ssl/ssl_browsertest.cc b/chrome/browser/ssl/ssl_browsertest.cc index 9815fe6..f8df2ecd 100644 --- a/chrome/browser/ssl/ssl_browsertest.cc +++ b/chrome/browser/ssl/ssl_browsertest.cc
@@ -148,6 +148,7 @@ #include "content/public/test/browser_test_utils.h" #include "content/public/test/content_mock_cert_verifier.h" #include "content/public/test/download_test_observer.h" +#include "content/public/test/fenced_frame_test_util.h" #include "content/public/test/prerender_test_util.h" #include "content/public/test/test_navigation_observer.h" #include "content/public/test/test_renderer_host.h" @@ -8398,6 +8399,72 @@ true /* expect_hidden */); } +class InsecureFormNavigationThrottleFencedFrameBrowserTest + : public InProcessBrowserTest { + public: + InsecureFormNavigationThrottleFencedFrameBrowserTest() = default; + ~InsecureFormNavigationThrottleFencedFrameBrowserTest() override = default; + + WebContents* GetWebContents() { + return browser()->tab_strip_model()->GetActiveWebContents(); + } + + content::test::FencedFrameTestHelper& fenced_frame_test_helper() { + return fenced_frame_helper_; + } + + private: + content::test::FencedFrameTestHelper fenced_frame_helper_; +}; + +// Tests that a fenced frame doesn't create a security interstitial. +IN_PROC_BROWSER_TEST_F(InsecureFormNavigationThrottleFencedFrameBrowserTest, + DoNotCreateSecurityInterstitialInFencedFrame) { + ASSERT_TRUE(embedded_test_server()->Start()); + net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); + https_server.AddDefaultHandlers(GetChromeTestDataDir()); + ASSERT_TRUE(https_server.Start()); + + GURL initial_url = https_server.GetURL("/title1.html"); + ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), initial_url)); + + std::string replacement_path = + SSLUITestBase::GetFilePathWithHostAndPortReplacement( + "/ssl/page_displays_insecure_form.html", + embedded_test_server()->host_port_pair()); + GURL form_site_url = https_server.GetURL(replacement_path); + + // Navigate to site with an insecure form and submit it in a fenced frame. + content::RenderFrameHost* fenced_frame = + fenced_frame_test_helper().CreateFencedFrame( + browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(), + form_site_url); + ASSERT_TRUE(fenced_frame); + content::TestNavigationObserver observer(GetWebContents()); + content::WebContentsConsoleObserver console_observer(GetWebContents()); + console_observer.SetPattern( + "Mixed Content: The page at * was loaded over a secure connection, but " + "contains a form that targets an insecure endpoint " + "'http://does-not-exist.test/ssl/google_files/logo.gif'. This endpoint " + "should be made available over a secure connection."); + ASSERT_TRUE(content::ExecuteScript(fenced_frame, "submitForm();")); + observer.Wait(); + + security_interstitials::SecurityInterstitialTabHelper* helper = + security_interstitials::SecurityInterstitialTabHelper::FromWebContents( + GetWebContents()); + + // No interstitial should be created in the fenced frame, and the the fenced + // frame should be in |form_site_url| and primary mainframe should be in the + // initial URL. + EXPECT_TRUE(!helper || !helper->IsDisplayingInterstitial()); + EXPECT_EQ(fenced_frame->GetLastCommittedURL(), form_site_url); + EXPECT_EQ(GetWebContents()->GetVisibleURL(), initial_url); + + // Check console message was printed. + EXPECT_EQ(console_observer.messages().size(), 1u); +} + // TODO(jcampan): more tests to do below. // Visit a page over https that contains a frame with a redirect.
diff --git a/chrome/browser/storage/OWNERS b/chrome/browser/storage/OWNERS index 869c9a1..62d21d1 100644 --- a/chrome/browser/storage/OWNERS +++ b/chrome/browser/storage/OWNERS
@@ -1,5 +1,5 @@ +asully@chromium.org +ayui@chromium.org jsbell@chromium.org -mek@chromium.org -pwnall@chromium.org per-file *permission_context*=file://components/permissions/PERMISSIONS_OWNERS
diff --git a/chrome/browser/sync_file_system/OWNERS b/chrome/browser/sync_file_system/OWNERS index 8535c4f..c488d416 100644 --- a/chrome/browser/sync_file_system/OWNERS +++ b/chrome/browser/sync_file_system/OWNERS
@@ -1,3 +1,3 @@ nhiroki@chromium.org -mek@chromium.org -pwnall@chromium.org +asully@chromium.org +ayui@chromium.org
diff --git a/chrome/browser/ui/autofill/payments/virtual_card_enroll_bubble_controller_impl.cc b/chrome/browser/ui/autofill/payments/virtual_card_enroll_bubble_controller_impl.cc index b3dc2187..b73bb924 100644 --- a/chrome/browser/ui/autofill/payments/virtual_card_enroll_bubble_controller_impl.cc +++ b/chrome/browser/ui/autofill/payments/virtual_card_enroll_bubble_controller_impl.cc
@@ -94,7 +94,9 @@ virtual_card_enrollment_fields_.virtual_card_enrollment_source == VirtualCardEnrollmentSource::kSettingsPage ? IDS_CANCEL - : IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL); + : virtual_card_enrollment_fields_.last_show + ? IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_NO_THANKS + : IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_SKIP); } std::u16string VirtualCardEnrollBubbleControllerImpl::GetLearnMoreLinkText()
diff --git a/chrome/browser/ui/views/file_system_access/OWNERS b/chrome/browser/ui/views/file_system_access/OWNERS index fb1695c..d42011e 100644 --- a/chrome/browser/ui/views/file_system_access/OWNERS +++ b/chrome/browser/ui/views/file_system_access/OWNERS
@@ -1,2 +1,5 @@ -mek@chromium.org -pwnall@chromium.org +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org
diff --git a/chrome/browser/ui/webui/sync_file_system_internals/OWNERS b/chrome/browser/ui/webui/sync_file_system_internals/OWNERS index 156078c..7356587 100644 --- a/chrome/browser/ui/webui/sync_file_system_internals/OWNERS +++ b/chrome/browser/ui/webui/sync_file_system_internals/OWNERS
@@ -1,4 +1,4 @@ +asully@chromium.org +ayui@chromium.org calvinlo@chromium.org -mek@chromium.org nhiroki@chromium.org -pwnall@chromium.org
diff --git a/chrome/browser/window_placement/OWNERS b/chrome/browser/window_placement/OWNERS index 53e7d1b..7fc7753 100644 --- a/chrome/browser/window_placement/OWNERS +++ b/chrome/browser/window_placement/OWNERS
@@ -4,4 +4,4 @@ msw@chromium.org # Secondary -pwnall@chromium.org +jsbell@chromium.org
diff --git a/chrome/build/linux.pgo.txt b/chrome/build/linux.pgo.txt index 16f563c..de7d823 100644 --- a/chrome/build/linux.pgo.txt +++ b/chrome/build/linux.pgo.txt
@@ -1 +1 @@ -chrome-linux-main-1648835696-aae590c1b291563981d205d9a05a20262cadae43.profdata +chrome-linux-main-1648877775-5be7808ca7b458c5a256400de5610d4c7d2475fe.profdata
diff --git a/chrome/build/mac-arm.pgo.txt b/chrome/build/mac-arm.pgo.txt index 4fadc26..52403753 100644 --- a/chrome/build/mac-arm.pgo.txt +++ b/chrome/build/mac-arm.pgo.txt
@@ -1 +1 @@ -chrome-mac-arm-main-1648835696-e509b155d5b92b8f6b0082a95ff8ac96be69dac9.profdata +chrome-mac-arm-main-1648911724-2039f13a89cad4ab18499b595b0d3663b43cb4a6.profdata
diff --git a/chrome/build/mac.pgo.txt b/chrome/build/mac.pgo.txt index f6ad05f9..074fbff 100644 --- a/chrome/build/mac.pgo.txt +++ b/chrome/build/mac.pgo.txt
@@ -1 +1 @@ -chrome-mac-main-1648835696-0c0c46f575451ae200bc20ee09b84cc5e3439beb.profdata +chrome-mac-main-1648877775-0cf28bb11c81a9038aaf9385ecf26b64942aeb93.profdata
diff --git a/chrome/build/win32.pgo.txt b/chrome/build/win32.pgo.txt index e7cf680..39536a4e 100644 --- a/chrome/build/win32.pgo.txt +++ b/chrome/build/win32.pgo.txt
@@ -1 +1 @@ -chrome-win32-main-1648846765-8b38a16d6555d3e50eff0839202a563106431eac.profdata +chrome-win32-main-1648867963-938b998b52b05bac0b485b7c4eeef7c1804f124d.profdata
diff --git a/chrome/build/win64.pgo.txt b/chrome/build/win64.pgo.txt index 0220edb..5c09871 100644 --- a/chrome/build/win64.pgo.txt +++ b/chrome/build/win64.pgo.txt
@@ -1 +1 @@ -chrome-win64-main-1648846765-93aaee6bfd2d0724328653200a45ba7b883ffe34.profdata +chrome-win64-main-1648877775-edd2a2182da9be2b72dc53d309aa04d4fc8da88b.profdata
diff --git a/chrome/common/extensions/manifest_tests/extension_manifests_initvalue_unittest.cc b/chrome/common/extensions/manifest_tests/extension_manifests_initvalue_unittest.cc index 8fae489..6ebcb14 100644 --- a/chrome/common/extensions/manifest_tests/extension_manifests_initvalue_unittest.cc +++ b/chrome/common/extensions/manifest_tests/extension_manifests_initvalue_unittest.cc
@@ -10,6 +10,7 @@ #include "chrome/common/extensions/manifest_tests/chrome_manifest_test.h" #include "components/crx_file/id_util.h" #include "extensions/common/constants.h" +#include "extensions/common/error_utils.h" #include "extensions/common/extension.h" #include "extensions/common/features/simple_feature.h" #include "extensions/common/manifest_constants.h" @@ -88,9 +89,14 @@ Testcase("init_invalid_permissions_invalid.json", errors::kInvalidPermissions), Testcase("init_invalid_host_permissions_invalid.json", - errors::kInvalidHostPermissions), + ErrorUtils::FormatErrorMessageUTF16( + errors::kInvalidHostPermissions, keys::kHostPermissions)), Testcase("init_invalid_permissions_item_invalid.json", errors::kInvalidPermission), + Testcase( + "init_invalid_optional_host_permissions_invalid.json", + ErrorUtils::FormatErrorMessageUTF16(errors::kInvalidHostPermissions, + keys::kOptionalHostPermissions)), Testcase("init_invalid_options_url_invalid.json", errors::kInvalidOptionsPage), Testcase("init_invalid_locale_invalid.json",
diff --git a/chrome/common/extensions/manifest_tests/permissions_parser_unittest.cc b/chrome/common/extensions/manifest_tests/permissions_parser_unittest.cc index 2999bbc..088bae3 100644 --- a/chrome/common/extensions/manifest_tests/permissions_parser_unittest.cc +++ b/chrome/common/extensions/manifest_tests/permissions_parser_unittest.cc
@@ -65,6 +65,34 @@ testing::UnorderedElementsAre("*://chromium.org/*")); } +// Same as the above test, except host permissions are specified in +// `host_permissions` and `optional_host_permissions` as the extension is +// running Manifest V3. +TEST_F(PermissionsParserTest, RemoveOverlappingHostPermissions_ManifestV3) { + scoped_refptr<Extension> extension(LoadAndExpectWarning( + "permissions_overlapping_host_permissions_mv3.json", + ErrorUtils::FormatErrorMessage( + manifest_errors::kPermissionMarkedOptionalAndRequired, + "https://google.com/*"))); + + const URLPatternSet& required_hosts = + PermissionsParser::GetRequiredPermissions(extension.get()) + .explicit_hosts(); + + const URLPatternSet& optional_hosts = + PermissionsParser::GetOptionalPermissions(extension.get()) + .explicit_hosts(); + + // Check that required hosts have not changed at all while + // "https://google.com/maps" is removed from optional hosts as it is a strict + // subset of hosts specified as required. + EXPECT_THAT(*required_hosts.ToStringVector(), + testing::UnorderedElementsAre("https://example.com/*", + "https://*.google.com/*")); + EXPECT_THAT(*optional_hosts.ToStringVector(), + testing::UnorderedElementsAre("*://chromium.org/*")); +} + TEST_F(PermissionsParserTest, RequiredHostPermissionsAllURLs) { scoped_refptr<Extension> extension(LoadAndExpectWarning( "permissions_all_urls_host_permissions.json", @@ -114,11 +142,14 @@ } TEST_F(PermissionsParserTest, HostPermissionsKey) { - std::string expected_warning = ErrorUtils::FormatErrorMessage( - manifest_errors::kPermissionUnknownOrMalformed, "https://google.com/*"); + std::vector<std::string> expected_warnings; + expected_warnings.push_back(ErrorUtils::FormatErrorMessage( + manifest_errors::kPermissionUnknownOrMalformed, "https://google.com/*")); + expected_warnings.push_back(ErrorUtils::FormatErrorMessage( + manifest_errors::kPermissionUnknownOrMalformed, "http://chromium.org/*")); scoped_refptr<Extension> extension( - LoadAndExpectWarning("host_permissions_key.json", expected_warning)); + LoadAndExpectWarnings("host_permissions_key.json", expected_warnings)); // Expect that the host specified in |host_permissions| is parsed. const URLPatternSet& required_hosts = @@ -127,23 +158,39 @@ EXPECT_THAT(*required_hosts.ToStringVector(), testing::UnorderedElementsAre("https://example.com/*")); + + // Expect that the host specified in |optional_host_permissions| is parsed. + const URLPatternSet& optional_hosts = + PermissionsParser::GetOptionalPermissions(extension.get()) + .explicit_hosts(); + + EXPECT_THAT(*optional_hosts.ToStringVector(), + testing::UnorderedElementsAre("https://optional.com/*")); } TEST_F(PermissionsParserTest, HostPermissionsKeyInvalidHosts) { - std::string expected_warning = ErrorUtils::FormatErrorMessage( - manifest_errors::kPermissionUnknownOrMalformed, "malformed_host"); + std::vector<std::string> expected_warnings; + expected_warnings.push_back(ErrorUtils::FormatErrorMessage( + manifest_errors::kPermissionUnknownOrMalformed, "malformed_host")); + expected_warnings.push_back(ErrorUtils::FormatErrorMessage( + manifest_errors::kPermissionUnknownOrMalformed, + "optional_malformed_host")); - scoped_refptr<Extension> extension(LoadAndExpectWarning( - "host_permissions_key_invalid_hosts.json", expected_warning)); + scoped_refptr<Extension> extension(LoadAndExpectWarnings( + "host_permissions_key_invalid_hosts.json", expected_warnings)); } TEST_F(PermissionsParserTest, HostPermissionsKeyInvalidScheme) { - std::string expected_warning = ErrorUtils::FormatErrorMessage( + std::vector<std::string> expected_warnings; + expected_warnings.push_back(ErrorUtils::FormatErrorMessage( manifest_errors::kInvalidPermissionScheme, - manifest_keys::kHostPermissions, "chrome://extensions/"); + manifest_keys::kHostPermissions, "chrome://extensions/")); + expected_warnings.push_back(ErrorUtils::FormatErrorMessage( + manifest_errors::kInvalidPermissionScheme, + manifest_keys::kOptionalHostPermissions, "chrome://settings/")); - scoped_refptr<Extension> extension(LoadAndExpectWarning( - "host_permissions_key_invalid_scheme.json", expected_warning)); + scoped_refptr<Extension> extension(LoadAndExpectWarnings( + "host_permissions_key_invalid_scheme.json", expected_warnings)); } // Tests that listing a permissions as optional when that permission cannot be
diff --git a/chrome/test/data/extensions/manifest_tests/host_permissions_key.json b/chrome/test/data/extensions/manifest_tests/host_permissions_key.json index c4e8870..a8fe400 100644 --- a/chrome/test/data/extensions/manifest_tests/host_permissions_key.json +++ b/chrome/test/data/extensions/manifest_tests/host_permissions_key.json
@@ -2,11 +2,17 @@ "name": "Host permissions manifest key", "version": "0.1", "manifest_version": 3, - "description": "extension with hosts in both |permissions| and |host_permissions|", + "description": "extension with hosts in |permissions|, |optional_permissions|, |host_permissions| and |optional_host_permissions|", "permissions": [ "https://google.com/*" ], + "optional_permissions": [ + "http://chromium.org/*" + ], "host_permissions": [ "https://example.com/*" + ], + "optional_host_permissions": [ + "https://optional.com/*" ] }
diff --git a/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_hosts.json b/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_hosts.json index 8414431..19fd1f0 100644 --- a/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_hosts.json +++ b/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_hosts.json
@@ -2,8 +2,11 @@ "name": "Host permissions with malformed host", "version": "0.1", "manifest_version": 3, - "description": "Extension with an invalid host in host_permissions", + "description": "Extension with an invalid host in host_permissions and optional_host_permissions", "host_permissions": [ "malformed_host" + ], + "optional_host_permissions": [ + "optional_malformed_host" ] }
diff --git a/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_scheme.json b/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_scheme.json index 422a2100..d0e1777 100644 --- a/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_scheme.json +++ b/chrome/test/data/extensions/manifest_tests/host_permissions_key_invalid_scheme.json
@@ -2,8 +2,11 @@ "name": "Host permissions with invalid scheme", "version": "0.1", "manifest_version": 3, - "description": "Extension with a pattern with an invalid scheme in host_permissions", + "description": "Extension with a pattern with an invalid scheme in host_permissions and optional_host_permissions", "host_permissions": [ "chrome://extensions/" + ], + "optional_host_permissions": [ + "chrome://settings/" ] }
diff --git a/chrome/test/data/extensions/manifest_tests/init_invalid_optional_host_permissions_invalid.json b/chrome/test/data/extensions/manifest_tests/init_invalid_optional_host_permissions_invalid.json new file mode 100644 index 0000000..9d52f0e --- /dev/null +++ b/chrome/test/data/extensions/manifest_tests/init_invalid_optional_host_permissions_invalid.json
@@ -0,0 +1,6 @@ +{ + "name": "Host permissions not a list", + "version": "0.1", + "manifest_version": 3, + "optional_host_permissions": "Why wont this work?!" +}
diff --git a/chrome/test/data/extensions/manifest_tests/permissions_overlapping_host_permissions_mv3.json b/chrome/test/data/extensions/manifest_tests/permissions_overlapping_host_permissions_mv3.json new file mode 100644 index 0000000..856e829 --- /dev/null +++ b/chrome/test/data/extensions/manifest_tests/permissions_overlapping_host_permissions_mv3.json
@@ -0,0 +1,14 @@ +{ + "name": "Redundant extension with optional google maps host permission", + "version": "0.0.1.33", + "manifest_version": 3, + "description": "Extension with overlapping required and optional host permissions", + "host_permissions": [ + "https://example.com/*", + "https://*.google.com/*" + ], + "optional_host_permissions": [ + "https://google.com/maps", + "*://chromium.org/*" + ] +}
diff --git a/chrome/test/data/ssl/page_displays_insecure_form.html.mock-http-headers b/chrome/test/data/ssl/page_displays_insecure_form.html.mock-http-headers new file mode 100644 index 0000000..27f34d2 --- /dev/null +++ b/chrome/test/data/ssl/page_displays_insecure_form.html.mock-http-headers
@@ -0,0 +1,2 @@ +HTTP/1.1 200 OK +Supports-Loading-Mode: fenced-frame
diff --git a/chromeos/CHROMEOS_LKGM b/chromeos/CHROMEOS_LKGM index 1e690ad3..712917b 100644 --- a/chromeos/CHROMEOS_LKGM +++ b/chromeos/CHROMEOS_LKGM
@@ -1 +1 @@ -14654.0.0 \ No newline at end of file +14658.0.0 \ No newline at end of file
diff --git a/chromeos/language/language_packs/language_pack_manager.cc b/chromeos/language/language_packs/language_pack_manager.cc index 5c32e9084..97464c3 100644 --- a/chromeos/language/language_packs/language_pack_manager.cc +++ b/chromeos/language/language_packs/language_pack_manager.cc
@@ -110,18 +110,18 @@ } // namespace -bool LanguagePackManager::IsPackAvailable(const std::string& pack_id, +bool LanguagePackManager::IsPackAvailable(const std::string& feature_id, const std::string& locale) { // We search in the static list for the given Pack spec. - const PackSpecPair spec(pack_id, locale); + const PackSpecPair spec(feature_id, locale); return base::Contains(GetAllDlcIds(), spec); } -bool LanguagePackManager::GetDlcId(const std::string& pack_id, +bool LanguagePackManager::GetDlcId(const std::string& feature_id, const std::string& locale, std::string* const dlc_id) { // We search in the static list for the given Pack spec. - const PackSpecPair spec(pack_id, locale); + const PackSpecPair spec(feature_id, locale); const auto it = GetAllDlcIds().find(spec); if (it == GetAllDlcIds().end()) { @@ -132,11 +132,11 @@ return true; } -void LanguagePackManager::InstallPack(const std::string& pack_id, +void LanguagePackManager::InstallPack(const std::string& feature_id, const std::string& locale, OnInstallCompleteCallback callback) { std::string dlc_id; - const bool found = GetDlcId(pack_id, locale, &dlc_id); + const bool found = GetDlcId(feature_id, locale, &dlc_id); // If the given Language Pack doesn't exist, run callback and don't reach the // DLC Service. @@ -156,11 +156,11 @@ base::DoNothing()); } -void LanguagePackManager::GetPackState(const std::string& pack_id, +void LanguagePackManager::GetPackState(const std::string& feature_id, const std::string& locale, GetPackStateCallback callback) { std::string dlc_id; - const bool found = GetDlcId(pack_id, locale, &dlc_id); + const bool found = GetDlcId(feature_id, locale, &dlc_id); // If the given Language Pack doesn't exist, run callback and don't reach the // DLC Service. @@ -176,11 +176,11 @@ dlc_id, base::BindOnce(&OnGetDlcState, std::move(callback))); } -void LanguagePackManager::RemovePack(const std::string& pack_id, +void LanguagePackManager::RemovePack(const std::string& feature_id, const std::string& locale, OnUninstallCompleteCallback callback) { std::string dlc_id; - const bool found = GetDlcId(pack_id, locale, &dlc_id); + const bool found = GetDlcId(feature_id, locale, &dlc_id); // If the given Language Pack doesn't exist, run callback and don't reach the // DLC Service.
diff --git a/chromeos/language/language_packs/language_pack_manager.h b/chromeos/language/language_packs/language_pack_manager.h index 7f2aeef..7d643c6 100644 --- a/chromeos/language/language_packs/language_pack_manager.h +++ b/chromeos/language/language_packs/language_pack_manager.h
@@ -17,6 +17,7 @@ // All Language Pack IDs are listed here. constexpr char kHandwritingFeatureId[] = "LP_ID_HANDWRITING"; +constexpr char kTtsFeatureId[] = "LP_ID_TTS"; // Status contains information about the status of an operation. struct PackResult { @@ -101,12 +102,13 @@ // Returns true if the given Language Pack exists and can be installed on // this device. // TODO(claudiomagni): Check per board. - bool IsPackAvailable(const std::string& pack_id, const std::string& locale); + bool IsPackAvailable(const std::string& feature_id, + const std::string& locale); // Installs the Language Pack. // It takes a callback that will be triggered once the operation is done. // A state is passed to the callback. - void InstallPack(const std::string& pack_id, + void InstallPack(const std::string& feature_id, const std::string& locale, OnInstallCompleteCallback callback); @@ -116,7 +118,7 @@ // If the state marks the Language Pack as ready, then there's no need to // call Install(), otherwise the client should call Install() and not call // this method a second time. - void GetPackState(const std::string& pack_id, + void GetPackState(const std::string& feature_id, const std::string& locale, GetPackStateCallback callback); @@ -126,7 +128,7 @@ // when that will happen. // TODO(claudiomagni): Allow callers to force immediate removal. Useful to // clear space on disk for another language. - void RemovePack(const std::string& pack_id, + void RemovePack(const std::string& feature_id, const std::string& locale, OnUninstallCompleteCallback callback); @@ -155,7 +157,7 @@ // Finds the ID of the DLC corresponding to the given spec. // Returns true if the DLC exists or false otherwise. - bool GetDlcId(const std::string& pack_id, + bool GetDlcId(const std::string& feature_id, const std::string& locale, std::string* dlc_id);
diff --git a/chromeos/language/language_packs/language_packs_impl.cc b/chromeos/language/language_packs/language_packs_impl.cc index 0e6e9db..ce829da2 100644 --- a/chromeos/language/language_packs/language_packs_impl.cc +++ b/chromeos/language/language_packs/language_packs_impl.cc
@@ -24,6 +24,9 @@ case FeatureId::HANDWRITING_RECOGNITION: return kHandwritingFeatureId; + case FeatureId::TTS: + return kTtsFeatureId; + // Catch all unknown cases here. default: return absl::nullopt;
diff --git a/chromeos/language/public/mojom/language_packs.mojom b/chromeos/language/public/mojom/language_packs.mojom index 6f15ef2f..c6620b3 100644 --- a/chromeos/language/public/mojom/language_packs.mojom +++ b/chromeos/language/public/mojom/language_packs.mojom
@@ -13,11 +13,14 @@ // numeric values should never be reused. When adding new enumerations to this // enum, you must add those to the LanguagePackMojoFeatureId definition in // tools/metrics/histograms/enums.xml to keep them in sync. +[Extensible] enum FeatureId { // Unknown feature, not supported. UNSUPPORTED_UNKNOWN = 0, // Handwriting Recognition used by the Virtual Keyboard. HANDWRITING_RECOGNITION = 1, + // Text-To-Speech feature. + [MinVersion=1] TTS = 2, }; // Current state of Pack on disk.
diff --git a/chromeos/profiles/orderfile.newest.txt b/chromeos/profiles/orderfile.newest.txt index 63e0260..63b13a3 100644 --- a/chromeos/profiles/orderfile.newest.txt +++ b/chromeos/profiles/orderfile.newest.txt
@@ -1 +1 @@ -chromeos-chrome-orderfile-field-101-4951.6-1648463443-benchmark-101.0.4951.16-r1.orderfile.xz +chromeos-chrome-orderfile-field-101-4951.6-1648463443-benchmark-101.0.4951.19-r1.orderfile.xz
diff --git a/components/autofill/core/browser/payments/virtual_card_enrollment_manager.cc b/components/autofill/core/browser/payments/virtual_card_enrollment_manager.cc index af84db0b..03b9cab9 100644 --- a/components/autofill/core/browser/payments/virtual_card_enrollment_manager.cc +++ b/components/autofill/core/browser/payments/virtual_card_enrollment_manager.cc
@@ -4,6 +4,7 @@ #include "components/autofill/core/browser/payments/virtual_card_enrollment_manager.h" +#include "base/strings/string_number_conversions.h" #include "components/autofill/core/browser/autofill_client.h" #include "components/autofill/core/browser/data_model/credit_card.h" #include "components/autofill/core/browser/metrics/payments/virtual_card_enrollment_metrics.h" @@ -274,6 +275,17 @@ AutofillClock::Now() - save_card_bubble_accepted_timestamp_.value()); save_card_bubble_accepted_timestamp_.reset(); } + + // Check in StrikeDatabase whether enrollment has been offered for this card + // before. + state_.virtual_card_enrollment_fields.last_show = false; + if (GetVirtualCardEnrollmentStrikeDatabase() && + GetVirtualCardEnrollmentStrikeDatabase()->IsLastOffer( + base::NumberToString(state_.virtual_card_enrollment_fields.credit_card + .instrument_id()))) { + state_.virtual_card_enrollment_fields.last_show = true; + } + autofill_client_->ShowVirtualCardEnrollDialog( state_.virtual_card_enrollment_fields, base::BindOnce(&VirtualCardEnrollmentManager::Enroll,
diff --git a/components/autofill/core/browser/payments/virtual_card_enrollment_manager.h b/components/autofill/core/browser/payments/virtual_card_enrollment_manager.h index a2896dcd..c60770f 100644 --- a/components/autofill/core/browser/payments/virtual_card_enrollment_manager.h +++ b/components/autofill/core/browser/payments/virtual_card_enrollment_manager.h
@@ -52,6 +52,10 @@ // The source for which the VirtualCardEnrollmentBubble will be shown. VirtualCardEnrollmentSource virtual_card_enrollment_source = VirtualCardEnrollmentSource::kNone; + // A boolean value indicating if this will be the final time the user will see + // this offer, until strikes eventually expire. Determined by the number of + // existing strikes. + bool last_show = false; }; // This struct is used to track the state of the virtual card enrollment @@ -238,6 +242,8 @@ StrikeDatabase_BubbleCanceled); FRIEND_TEST_ALL_PREFIXES(VirtualCardEnrollmentManagerTest, StrikeDatabase_SettingsPageNotBlocked); + FRIEND_TEST_ALL_PREFIXES(VirtualCardEnrollmentManagerTest, + VirtualCardEnrollmentFields_LastShow); // Called once the risk data is loaded. The |risk_data| will be used with // |state_|'s |virtual_card_enrollment_fields|'s |credit_card|'s
diff --git a/components/autofill/core/browser/payments/virtual_card_enrollment_manager_unittest.cc b/components/autofill/core/browser/payments/virtual_card_enrollment_manager_unittest.cc index 215dc83..cfdcf09 100644 --- a/components/autofill/core/browser/payments/virtual_card_enrollment_manager_unittest.cc +++ b/components/autofill/core/browser/payments/virtual_card_enrollment_manager_unittest.cc
@@ -5,6 +5,7 @@ #include <string> #include "base/callback.h" +#include "base/strings/string_number_conversions.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/mock_callback.h" #include "base/test/scoped_feature_list.h" @@ -668,6 +669,44 @@ .credit_card.instrument_id()), VirtualCardEnrollmentSource::kSettingsPage)); } + +// Test to ensure that the |last_show| inside a VirtualCardEnrollmentFields is +// set correctly. +TEST_F(VirtualCardEnrollmentManagerTest, VirtualCardEnrollmentFields_LastShow) { + base::HistogramTester histogram_tester; + raw_ptr<VirtualCardEnrollmentProcessState> state = + virtual_card_enrollment_manager_->GetVirtualCardEnrollmentProcessState(); + state->vcn_context_token = kTestVcnContextToken; + SetUpCard(); + state->virtual_card_enrollment_fields.credit_card = *card_; + personal_data_manager_->SetPaymentsCustomerData( + std::make_unique<PaymentsCustomerData>("123456")); + + // Making sure there is no existing strike for the card. + ASSERT_EQ( + virtual_card_enrollment_manager_->GetVirtualCardEnrollmentStrikeDatabase() + ->GetStrikes( + base::NumberToString(state->virtual_card_enrollment_fields + .credit_card.instrument_id())), + 0); + + for (int i = 0; i < virtual_card_enrollment_manager_ + ->GetVirtualCardEnrollmentStrikeDatabase() + ->GetMaxStrikesLimit() - + 1; + i++) { + // Show the bubble and ensures VirtualCardEnrollmentFields is set correctly. + virtual_card_enrollment_manager_->ShowVirtualCardEnrollBubble(); + EXPECT_FALSE(state->virtual_card_enrollment_fields.last_show); + // Reject the bubble and log strike. + virtual_card_enrollment_manager_->OnVirtualCardEnrollmentBubbleCancelled(); + } + + // Show the bubble for the last time and ensures VirtualCardEnrollmentFields + // is set correctly. + virtual_card_enrollment_manager_->ShowVirtualCardEnrollBubble(); + EXPECT_TRUE(state->virtual_card_enrollment_fields.last_show); +} #endif // !BUILDFLAG(IS_IOS) TEST_F(VirtualCardEnrollmentManagerTest, Metrics_LatencySinceUpstream) {
diff --git a/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.cc b/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.cc index a315de25..9dc1387 100644 --- a/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.cc +++ b/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.cc
@@ -31,6 +31,13 @@ VirtualCardEnrollmentStrikeDatabase::~VirtualCardEnrollmentStrikeDatabase() = default; +bool VirtualCardEnrollmentStrikeDatabase::IsLastOffer( + const std::string& instrument_id) const { + // This check should not be invoked for blocked bubble. + DCHECK_LT(GetStrikes(instrument_id), GetMaxStrikesLimit()); + return GetStrikes(instrument_id) == GetMaxStrikesLimit() - 1; +} + absl::optional<size_t> VirtualCardEnrollmentStrikeDatabase::GetMaximumEntries() const { return absl::optional<size_t>(kMaxStrikeEntities);
diff --git a/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.h b/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.h index cdad62be..7a9d6ac 100644 --- a/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.h +++ b/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database.h
@@ -23,6 +23,10 @@ StrikeDatabaseBase* strike_database); ~VirtualCardEnrollmentStrikeDatabase() override; + // Whether bubble to be shown is the last offer for the card with + // |instrument_id|. + bool IsLastOffer(const std::string& instrument_id) const; + absl::optional<size_t> GetMaximumEntries() const override; absl::optional<size_t> GetMaximumEntriesAfterCleanup() const override;
diff --git a/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database_unittest.cc b/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database_unittest.cc index 4427583..eb4bd566 100644 --- a/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database_unittest.cc +++ b/components/autofill/core/browser/payments/virtual_card_enrollment_strike_database_unittest.cc
@@ -70,6 +70,28 @@ EXPECT_FALSE(strike_database_->IsMaxStrikesLimitReached(test_guid)); } +// Test to ensure that IsLastOffer works correctly. +TEST_F(VirtualCardEnrollmentStrikeDatabaseTest, IsLastOffer) { + int max_strikes = strike_database_->GetMaxStrikesLimit(); + std::string instrument_id = "123"; + ASSERT_EQ(strike_database_->GetStrikes(instrument_id), 0); + + // Adds one strike and check IsLastOffer. + strike_database_->AddStrike(instrument_id); + EXPECT_EQ(strike_database_->GetStrikes(instrument_id), 1); + EXPECT_FALSE(strike_database_->IsLastOffer(instrument_id)); + + // Removes existing strikes. + strike_database_->RemoveStrike(instrument_id); + ASSERT_EQ(strike_database_->GetStrikes(instrument_id), 0); + + // Adds |max_strikes - 1| strikes to the strike database and check + // IsLastOffer. + strike_database_->AddStrikes(max_strikes - 1, instrument_id); + EXPECT_EQ(strike_database_->GetStrikes(instrument_id), max_strikes - 1); + EXPECT_TRUE(strike_database_->IsLastOffer(instrument_id)); +} + } // namespace } // namespace autofill
diff --git a/components/autofill/core/browser/test_autofill_client.cc b/components/autofill/core/browser/test_autofill_client.cc index 5f1944f..8fda384 100644 --- a/components/autofill/core/browser/test_autofill_client.cc +++ b/components/autofill/core/browser/test_autofill_client.cc
@@ -128,6 +128,11 @@ return form_data_importer_->GetVirtualCardEnrollmentManager(); } +void TestAutofillClient::ShowVirtualCardEnrollDialog( + const VirtualCardEnrollmentFields& virtual_card_enrollment_fields, + base::OnceClosure accept_virtual_card_callback, + base::OnceClosure decline_virtual_card_callback) {} + #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) std::vector<std::string> TestAutofillClient::GetAllowedMerchantsForVirtualCards() {
diff --git a/components/autofill/core/browser/test_autofill_client.h b/components/autofill/core/browser/test_autofill_client.h index c18bcbb..30261f3e 100644 --- a/components/autofill/core/browser/test_autofill_client.h +++ b/components/autofill/core/browser/test_autofill_client.h
@@ -79,6 +79,10 @@ void OnUnmaskVerificationResult(PaymentsRpcResult result) override; raw_ptr<VirtualCardEnrollmentManager> GetVirtualCardEnrollmentManager() override; + void ShowVirtualCardEnrollDialog( + const VirtualCardEnrollmentFields& virtual_card_enrollment_fields, + base::OnceClosure accept_virtual_card_callback, + base::OnceClosure decline_virtual_card_callback) override; #if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_IOS) std::vector<std::string> GetAllowedMerchantsForVirtualCards() override; std::vector<std::string> GetAllowedBinRangesForVirtualCards() override;
diff --git a/components/autofill_payments_strings.grdp b/components/autofill_payments_strings.grdp index d6ba1ea..41469f492 100644 --- a/components/autofill_payments_strings.grdp +++ b/components/autofill_payments_strings.grdp
@@ -474,7 +474,7 @@ From Google Pay </message> - <!-- virtual cards related strings --> + <!-- virtual cards related strings - start --> <if expr="not is_ios and not is_android"> <message name="IDS_AUTOFILL_CLOUD_TOKEN_DROPDOWN_OPTION_LABEL" desc="Text shown in the button in the Autofill dropdown menu when a credit card form field is queried, to offer the option to use a virtual card."> Use a virtual card number... @@ -535,7 +535,6 @@ Copied </message> </if> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_SUGGESTION_IPH_BUBBLE_LABEL" desc="Text shown in the IPH bubble for the virtual card option in the suggestion dropdown bubble."> Use your virtual card for added security </message> @@ -545,6 +544,55 @@ <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DIALOG_TITLE_LABEL" desc="Title encouraging users to enroll their card to VCN." formatter_data="android_java"> Make it more secure with a virtual card? </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DIALOG_CONTENT_LABEL" desc="Text explaining the benefit of enrolling a credit card as a virtual card. Also contains a link to learn more about virtual cards from IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL."> + A virtual card disguises your actual card to help protect you from potential fraud. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL">$1<ex>Learn about virtual cards</ex></ph> + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_SKIP" desc="Text displayed in the decline button in the virtual card enroll bubble. It is displayed only if the bubble/infobar will still be shown again at a later date after this one is declined."> + Skip + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_NO_THANKS" desc="Text displayed in the decline button in the virtual card enroll bubble. It is displayed only if the bubble/infobar is shown for the last time."> + No thanks + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL" desc="Link text to learn more about virtual cards. Added to the end of the explanatory message of the virtual card enrollment dialog in IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DIALOG_CONTENT_LABEL."> + Learn about virtual cards + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_SUGGESTION_OPTION_VALUE" desc="The text shown in the virtual card option in the credit card suggestion list. It is shown as the value of the suggestion."> + Virtual card + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_TEMPORARY_ERROR_TITLE" desc="Text to be displayed as the title of the error dialog for virtual card temporary error."> + Something went wrong + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_PERMANENT_ERROR_TITLE" desc="Text to be displayed as the title of the error dialog for virtual card permanent error."> + Virtual card not available + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_TEMPORARY_ERROR_DESCRIPTION" desc="Text to be displayed as the description of the error dialog for virtual card temporary error."> + Virtual card is not available right now, please try again later + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_PERMANENT_ERROR_DESCRIPTION" desc="Text to be displayed as the description of the error dialog for virtual card permanent error."> + Virtual card is not available right now, please contact your bank + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_NOT_ELIGIBLE_ERROR_TITLE" desc="Text to be displayed as the title of the error dialog for virtual card permanent error"> + Not eligible for virtual card + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_NOT_ELIGIBLE_ERROR_DESCRIPTION" desc="Text to be displayed as the description of the error dialog for virtual card permanent error"> + This card is not eligible for virtual card number. + </message> + <message name="IDS_AUTOFILL_ERROR_DIALOG_NEGATIVE_BUTTON_LABEL" desc="Label for the negative button for the error dialog."> + Close + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_NUMBER_SWITCH_LABEL" desc="The text shown as the label for virtual card enrollment switch in the server card edit page." formatter_data="android_java"> + Virtual card + </message> + <if expr="is_android"> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_NUMBER_SNACKBAR_MESSAGE_TEXT" desc="Text to be displayed in the snackbar shown after a virtual card number id autofilled."> + Virtual card number not filled in? + </message> + <message name="IDS_AUTOFILL_VIRTUAL_CARD_NUMBER_SNACKBAR_ACTION_TEXT" desc="Text to be displayed as the snackbar action shown after a virtual card number id autofilled."> + View card + </message> + </if> + <!-- virtual cards related strings - end --> + <message name="IDS_AUTOFILL_CARD_UNMASK_AUTHENTICATION_SELECTION_DIALOG_ISSUER_CONFIRMATION_TEXT" desc="The issuer confirmation text shown in the Autofill card unmask authentication selection dialog on Desktop. This is the header text of the dialog, and it is the text stating that the issuer wants additional authentication. This dialog lets the user choose the method of authentication when unmasking a server card, including a virtual card."> Your bank wants to confirm it's you. </message> @@ -578,50 +626,6 @@ <message name="IDS_AUTOFILL_CARD_UNMASK_OTP_INPUT_DIALOG_ENTER_CORRECT_CODE_LABEL" desc="This text is shown after an OTP is already sent, when the user enters an incorrect OTP code. It directs the user to enter the correct code that was sent to them."> Enter correct code </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_SUGGESTION_OPTION_VALUE" desc="The text shown in the virtual card option in the credit card suggestion list. It is shown as the value of the suggestion."> - Virtual card - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_TEMPORARY_ERROR_TITLE" desc="Text to be displayed as the title of the error dialog for virtual card temporary error."> - Something went wrong - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_PERMANENT_ERROR_TITLE" desc="Text to be displayed as the title of the error dialog for virtual card permanent error."> - Virtual card not available - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_TEMPORARY_ERROR_DESCRIPTION" desc="Text to be displayed as the description of the error dialog for virtual card temporary error."> - Virtual card is not available right now, please try again later - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_PERMANENT_ERROR_DESCRIPTION" desc="Text to be displayed as the description of the error dialog for virtual card permanent error."> - Virtual card is not available right now, please contact your bank - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_NOT_ELIGIBLE_ERROR_TITLE" desc="Text to be displayed as the title of the error dialog for virtual card permanent error"> - Not eligible for virtual card - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_NOT_ELIGIBLE_ERROR_DESCRIPTION" desc="Text to be displayed as the description of the error dialog for virtual card permanent error"> - This card is not eligible for virtual card number. - </message> - <message name="IDS_AUTOFILL_ERROR_DIALOG_NEGATIVE_BUTTON_LABEL" desc="Label for the negative button for the error dialog."> - Close - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_NUMBER_SWITCH_LABEL" desc="The text shown as the label for virtual card enrollment switch in the server card edit page." formatter_data="android_java"> - Virtual card - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DIALOG_CONTENT_LABEL" desc="Text explaining the benefit of enrolling a credit card as a virtual card. Also contains a link to learn more about virtual cards from IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL."> - A virtual card disguises your actual card to help protect you from potential fraud. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL">$1<ex>Learn about virtual cards</ex></ph> - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL" desc="Decline enrolling card as a virtual card."> - No Thanks - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL" desc="Link text to learn more about virtual cards. Added to the end of the explanatory message of the virtual card enrollment dialog in IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DIALOG_CONTENT_LABEL."> - Learn about virtual cards - </message> - <if expr="is_android"> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_NUMBER_SNACKBAR_MESSAGE_TEXT" desc="Text to be displayed in the snackbar shown after a virtual card number id autofilled."> - Virtual card number not filled in? - </message> - <message name="IDS_AUTOFILL_VIRTUAL_CARD_NUMBER_SNACKBAR_ACTION_TEXT" desc="Text to be displayed as the snackbar action shown after a virtual card number id autofilled."> - View card - </message> - </if> <message name="IDS_AUTOFILL_SAVE_UPI_PROMPT_TITLE" desc="Title text for the prompt to save a UPI ID locally, which the user used in a page. UPI is an online payment method. A UPI ID is an email-like string."> Remember your UPI ID?
diff --git a/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL.png.sha1 b/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL.png.sha1 deleted file mode 100644 index b554f32..0000000 --- a/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL.png.sha1 +++ /dev/null
@@ -1 +0,0 @@ -2e68f3f210c4fe868ac40d686c010bd951a61977 \ No newline at end of file
diff --git a/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_NO_THANKS.png.sha1 b/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_NO_THANKS.png.sha1 new file mode 100644 index 0000000..d024590 --- /dev/null +++ b/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_NO_THANKS.png.sha1
@@ -0,0 +1 @@ +fae0373f403e63d42476656f2e979d38ebef57f8 \ No newline at end of file
diff --git a/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_SKIP.png.sha1 b/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_SKIP.png.sha1 new file mode 100644 index 0000000..c955aa6 --- /dev/null +++ b/components/autofill_payments_strings_grdp/IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_DECLINE_BUTTON_LABEL_SKIP.png.sha1
@@ -0,0 +1 @@ +d4174a5033c2c968dfc519c7672924391249dd2c \ No newline at end of file
diff --git a/components/certificate_transparency/data/log_list.json b/components/certificate_transparency/data/log_list.json index 0b59e5ee..6fcd3be 100644 --- a/components/certificate_transparency/data/log_list.json +++ b/components/certificate_transparency/data/log_list.json
@@ -1,6 +1,6 @@ { - "version": "7.20", - "log_list_timestamp": "2022-04-01T02:54:38Z", + "version": "7.22", + "log_list_timestamp": "2022-04-02T02:55:03Z", "operators": [ { "name": "Google",
diff --git a/components/safe_browsing/core/browser/verdict_cache_manager.cc b/components/safe_browsing/core/browser/verdict_cache_manager.cc index dec564a29..e1aa63b 100644 --- a/components/safe_browsing/core/browser/verdict_cache_manager.cc +++ b/components/safe_browsing/core/browser/verdict_cache_manager.cc
@@ -766,6 +766,10 @@ history_service_observation_.Reset(); } +void VerdictCacheManager::OnCookiesDeleted() { + CleanUpAllPageLoadTokens(ClearReason::kCookiesDeleted); +} + bool VerdictCacheManager::RemoveExpiredPhishGuardVerdicts( LoginReputationClientRequest::TriggerType trigger_type, base::Value* cache_dictionary) {
diff --git a/components/safe_browsing/core/browser/verdict_cache_manager.h b/components/safe_browsing/core/browser/verdict_cache_manager.h index b0a4d6b..7e630766 100644 --- a/components/safe_browsing/core/browser/verdict_cache_manager.h +++ b/components/safe_browsing/core/browser/verdict_cache_manager.h
@@ -102,6 +102,9 @@ void HistoryServiceBeingDeleted( history::HistoryService* history_service) override; + // Called by browsing data remover. + void OnCookiesDeleted(); + // Returns true if an artificial unsafe URL has been provided using // command-line flags. static bool has_artificial_unsafe_url(); @@ -129,8 +132,9 @@ // histograms. Entries must not be removed or reordered. enum class ClearReason { kSafeBrowsingStateChanged = 0, + kCookiesDeleted = 1, - kMaxValue = kSafeBrowsingStateChanged + kMaxValue = kCookiesDeleted }; void ScheduleNextCleanUpAfterInterval(base::TimeDelta interval);
diff --git a/components/services/storage/OWNERS b/components/services/storage/OWNERS index a2027450..426a7c0 100644 --- a/components/services/storage/OWNERS +++ b/components/services/storage/OWNERS
@@ -1,4 +1,4 @@ +asully@chromium.org +ayui@chromium.org jam@chromium.org -mek@chromium.org -pwnall@chromium.org rockot@google.com
diff --git a/components/test/data/web_database/OWNERS b/components/test/data/web_database/OWNERS index 6cfff273..d3c7f06 100644 --- a/components/test/data/web_database/OWNERS +++ b/components/test/data/web_database/OWNERS
@@ -2,5 +2,5 @@ pkasting@chromium.org # For sqlite stuff: -mek@chromium.org -pwnall@chromium.org +asully@chromium.org +ayui@chromium.org
diff --git a/components/viz/service/debugger/README.md b/components/viz/service/debugger/README.md index 01d4385..e59fede 100644 --- a/components/viz/service/debugger/README.md +++ b/components/viz/service/debugger/README.md
@@ -5,7 +5,15 @@ The Viz Remote Debugger is a debug only connection that allows an active chromium instance to send graphical and text debug information to a remote client for display. ### Motivation -[Visual Debugger one-pager](https://docs.google.com/document/d/1s2OLZcUrUxXRxOD8nR4giNRnCQZcdtXBp4DUI_Fb2GU/edit?usp=sharing). +- Much of the debugging of internal chromium is printfs even though many aspects of the chromium code is highly graphics focused. +- Developers are constantly recompiling to add new printf only to delete it when committing into chromium repo to avoid global printf spamming. +- Using local chrome itself to display debug information runs into the “measurement problem” (For example visually debugging damages locally). + +### Advantages + +- Visualization of graphical objects as graphic elements rather than text. +- Debugging can be shared across the codebase and among developers. +- Allow for more rapid and lower overhead debugging since code is guaranteed not to be in official builds. ### Usage
diff --git a/components/webdata/OWNERS b/components/webdata/OWNERS index 6cfff273..d3c7f06 100644 --- a/components/webdata/OWNERS +++ b/components/webdata/OWNERS
@@ -2,5 +2,5 @@ pkasting@chromium.org # For sqlite stuff: -mek@chromium.org -pwnall@chromium.org +asully@chromium.org +ayui@chromium.org
diff --git a/components/webdata_services/OWNERS b/components/webdata_services/OWNERS index 6cfff273..d3c7f06 100644 --- a/components/webdata_services/OWNERS +++ b/components/webdata_services/OWNERS
@@ -2,5 +2,5 @@ pkasting@chromium.org # For sqlite stuff: -mek@chromium.org -pwnall@chromium.org +asully@chromium.org +ayui@chromium.org
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 5d8fa81..0732f77 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1280,6 +1280,8 @@ "native_io/native_io_manager.h", "native_io/native_io_quota_client.cc", "native_io/native_io_quota_client.h", + "navigation_or_document_handle.cc", + "navigation_or_document_handle.h", "navigation_subresource_loader_params.cc", "navigation_subresource_loader_params.h", "net/browser_online_state_observer.cc",
diff --git a/content/browser/aggregation_service/aggregation_service_features.h b/content/browser/aggregation_service/aggregation_service_features.h index dc998e5..ba895f95 100644 --- a/content/browser/aggregation_service/aggregation_service_features.h +++ b/content/browser/aggregation_service/aggregation_service_features.h
@@ -7,12 +7,13 @@ #include "base/feature_list.h" #include "base/metrics/field_trial_params.h" +#include "content/common/content_export.h" namespace content { // Enables the Aggregation Service. See crbug.com/1207974. -extern const base::Feature kPrivacySandboxAggregationService; -extern const base::FeatureParam<std::string> +extern CONTENT_EXPORT const base::Feature kPrivacySandboxAggregationService; +extern CONTENT_EXPORT const base::FeatureParam<std::string> kPrivacySandboxAggregationServiceTrustedServerUrlParam; } // namespace content
diff --git a/content/browser/aggregation_service/aggregation_service_impl.cc b/content/browser/aggregation_service/aggregation_service_impl.cc index 42e009b..bec52f5 100644 --- a/content/browser/aggregation_service/aggregation_service_impl.cc +++ b/content/browser/aggregation_service/aggregation_service_impl.cc
@@ -19,6 +19,7 @@ #include "base/values.h" #include "content/browser/aggregation_service/aggregatable_report_assembler.h" #include "content/browser/aggregation_service/aggregation_service_storage_sql.h" +#include "content/browser/aggregation_service/public_key.h" #include "content/browser/storage_partition_impl.h" #include "third_party/abseil-cpp/absl/types/optional.h" #include "url/gurl.h" @@ -114,4 +115,11 @@ .Then(std::move(done)); } +void AggregationServiceImpl::SetPublicKeysForTesting( + const GURL& url, + const PublicKeyset& keyset) { + key_storage_.AsyncCall(&AggregationServiceKeyStorage::SetPublicKeys) + .WithArgs(url, keyset); +} + } // namespace content \ No newline at end of file
diff --git a/content/browser/aggregation_service/aggregation_service_impl.h b/content/browser/aggregation_service/aggregation_service_impl.h index cbb3e641..719bf14 100644 --- a/content/browser/aggregation_service/aggregation_service_impl.h +++ b/content/browser/aggregation_service/aggregation_service_impl.h
@@ -19,6 +19,8 @@ #include "content/common/content_export.h" #include "third_party/abseil-cpp/absl/types/optional.h" +class GURL; + namespace base { class Clock; class FilePath; @@ -26,6 +28,7 @@ namespace content { +struct PublicKeyset; class StoragePartitionImpl; // UI thread class that manages the lifetime of the underlying storage. Owned by @@ -69,6 +72,9 @@ const base::SequenceBound<AggregationServiceKeyStorage>& GetKeyStorage() override; + // Sets the public keys for `url` in storage to allow testing without network. + void SetPublicKeysForTesting(const GURL& url, const PublicKeyset& keyset); + private: AggregationServiceImpl(bool run_in_memory, const base::FilePath& user_data_directory,
diff --git a/content/browser/attribution_reporting/BUILD.gn b/content/browser/attribution_reporting/BUILD.gn index 72608ff..4da3aba 100644 --- a/content/browser/attribution_reporting/BUILD.gn +++ b/content/browser/attribution_reporting/BUILD.gn
@@ -18,19 +18,19 @@ { types = [ { - mojom = "content.mojom.AttributionReportAggregatableAttributionID" + mojom = "attribution_internals.mojom.AggregatableAttributionReportID" cpp = "::content::AttributionReport::AggregatableAttributionData::Id" }, { - mojom = "content.mojom.AttributionReportEventLevelID" + mojom = "attribution_internals.mojom.EventLevelReportID" cpp = "::content::AttributionReport::EventLevelData::Id" }, { - mojom = "content.mojom.AttributionSourceType" + mojom = "attribution_internals.mojom.SourceType" cpp = "::content::AttributionSourceType" }, { - mojom = "content.mojom.AttributionReportType" + mojom = "attribution_internals.mojom.ReportType" cpp = "::content::AttributionReport::ReportType" }, ]
diff --git a/content/browser/attribution_reporting/attribution_internals.mojom b/content/browser/attribution_reporting/attribution_internals.mojom index 3dcb903..95c9a59 100644 --- a/content/browser/attribution_reporting/attribution_internals.mojom +++ b/content/browser/attribution_reporting/attribution_internals.mojom
@@ -2,67 +2,67 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -module content.mojom; +module attribution_internals.mojom; import "url/mojom/origin.mojom"; import "url/mojom/url.mojom"; // Represents AttributionSourceType. -enum AttributionSourceType { +enum SourceType { kNavigation, kEvent, }; // Represents `AttributionReport::EventLevelData::Id`. // Will be used to issue commands for individual reports. -struct AttributionReportEventLevelID { +struct EventLevelReportID { int64 value; }; // Represents `AttributionReport::AggregatableAttributionData::Id`. // Will be used to issue commands for individual reports. -struct AttributionReportAggregatableAttributionID { +struct AggregatableAttributionReportID { int64 value; }; // Contains event-level data to be displayed. -struct WebUIAttributionReportEventLevelData { +struct WebUIReportEventLevelData { // Allows the WebUI to issue commands for individual reports. // Not intended to be displayed. - AttributionReportEventLevelID? id; + EventLevelReportID? id; int64 priority; bool attributed_truthfully; }; // Represents `AttributionAggregatableKey`. -struct AttributionAggregatableKey { +struct AggregatableKey { uint64 high_bits; uint64 low_bits; }; // Represents `AggregatableHistogramContribution`. -struct AttributionReportHistogramContribution { - AttributionAggregatableKey key; +struct AggregatableHistogramContribution { + AggregatableKey key; uint32 value; }; // Contains aggregatable attribution data to be displayed. -struct WebUIAttributionReportAggregatableAttributionData { +struct WebUIReportAggregatableAttributionData { // Allows the WebUI to issue commands for individual reports. // Not intended to be displayed. - AttributionReportAggregatableAttributionID? id; - array<AttributionReportHistogramContribution> contributions; + AggregatableAttributionReportID? id; + array<AggregatableHistogramContribution> contributions; }; -union WebUIAttributionReportData { - WebUIAttributionReportEventLevelData event_level_data; - WebUIAttributionReportAggregatableAttributionData +union WebUIReportData { + WebUIReportEventLevelData event_level_data; + WebUIReportAggregatableAttributionData aggregatable_attribution_data; }; // Struct containing stored data that will be sent in a future attribution // report. -struct WebUIAttributionReport { +struct WebUIReport { url.mojom.Url report_url; double trigger_time; double report_time; @@ -90,15 +90,15 @@ // Only valid if `status == kSent`. int32 http_response_code; - WebUIAttributionReportData data; + WebUIReportData data; }; -struct AttributionDebugKey { +struct DebugKey { uint64 value; }; // Struct representing a stored attribution source that will be displayed by WebUI. -struct WebUIAttributionSource { +struct WebUISource { uint64 source_event_id; url.mojom.Origin impression_origin; // Replace SchemefulSite with string if this struct is ever reused elsewhere. @@ -106,12 +106,12 @@ url.mojom.Origin reporting_origin; double impression_time; double expiry_time; - AttributionSourceType source_type; + SourceType source_type; int64 priority; - AttributionDebugKey? debug_key; + DebugKey? debug_key; array<uint64> dedup_keys; map<string, array<string>> filter_data; - map<string, AttributionAggregatableKey> aggregatable_source; + map<string, AggregatableKey> aggregatable_source; // Union of `StorableSource::Result` and `StoredSource::AttributionLogic`, // and `AttributionStorage::DeactivatedSource::Reason`. @@ -130,36 +130,36 @@ }; // Represents `AttributionReport::ReportType`. -enum AttributionReportType { +enum ReportType { kEventLevel, kAggregatableAttribution, }; // Observer for events relevant to the attribution internals WebUI. -interface AttributionInternalsObserver { +interface Observer { // Called when the sources in storage changed, indicating that the observer - // should call `AttributionInternalsHandler::GetActiveSources()`. + // should call `Handler::GetActiveSources()`. OnSourcesChanged(); // Called when the reports in storage changed, indicating that the observer - // should call `AttributionInternalsHandler::GetReports()`. - OnReportsChanged(AttributionReportType report_type); + // should call `Handler::GetReports()`. + OnReportsChanged(ReportType report_type); // Called when a source-registration attempt fails or a stored source is // deactivated. - OnSourceRejectedOrDeactivated(WebUIAttributionSource source); + OnSourceRejectedOrDeactivated(WebUISource source); // Called when a report is sent, regardless of success. - OnReportSent(WebUIAttributionReport report); + OnReportSent(WebUIReport report); // Called when a report is dropped from storage or prevented from being // created in the first place. - OnReportDropped(WebUIAttributionReport report); + OnReportDropped(WebUIReport report); }; // Mojo interface for the attribution internals WebUI to communicate with the // storage layer. -interface AttributionInternalsHandler { +interface Handler { // Returns whether attribution reporting and the debug mode are enabled in // the browsing context the WebUI is in. IsAttributionReportingEnabled() => (bool enabled, bool debug_mode); @@ -167,28 +167,27 @@ // Returns all active sources that are persisted in storage. This does // not include expired sources, or sources that can no longer be attributed // due to reaching policy limits. - GetActiveSources() => (array<WebUIAttributionSource> sources); + GetActiveSources() => (array<WebUISource> sources); // Returns all reports of the specified type contained in storage, including // those that are actively being sent. - GetReports(AttributionReportType report_type) => ( - array<WebUIAttributionReport> reports); + GetReports(ReportType report_type) => (array<WebUIReport> reports); // Sends the given event-level reports, ignoring delay, returning when the // operation has been completed and the reports have been cleared from // storage. - SendEventLevelReports(array<AttributionReportEventLevelID> ids) => (); + SendEventLevelReports(array<EventLevelReportID> ids) => (); // Sends the given aggregate reports, ignoring delay, returning when the // operation has been completed and the reports have been cleared from // storage. SendAggregatableAttributionReports( - array<AttributionReportAggregatableAttributionID> ids) => (); + array<AggregatableAttributionReportID> ids) => (); // Deletes all persisted data for the attribution reporting API, returning when the // operation has been completed. ClearStorage() => (); // Registers an observer to be notified of attribution reporting events. - AddObserver(pending_remote<AttributionInternalsObserver> observer) => (bool success); + AddObserver(pending_remote<Observer> observer) => (bool success); };
diff --git a/content/browser/attribution_reporting/attribution_internals_handler_impl.cc b/content/browser/attribution_reporting/attribution_internals_handler_impl.cc index 7a6aeb5..c0312ee6 100644 --- a/content/browser/attribution_reporting/attribution_internals_handler_impl.cc +++ b/content/browser/attribution_reporting/attribution_internals_handler_impl.cc
@@ -42,42 +42,44 @@ namespace { using Attributability = - ::content::mojom::WebUIAttributionSource::Attributability; + ::attribution_internals::mojom::WebUISource::Attributability; -base::flat_map<std::string, mojom::AttributionAggregatableKeyPtr> Convert( - const AttributionAggregatableSource& aggregatable_source) { +base::flat_map<std::string, attribution_internals::mojom::AggregatableKeyPtr> +Convert(const AttributionAggregatableSource& aggregatable_source) { const proto::AttributionAggregatableSource& proto = aggregatable_source.proto(); - base::flat_map<std::string, mojom::AttributionAggregatableKeyPtr> map; + base::flat_map<std::string, attribution_internals::mojom::AggregatableKeyPtr> + map; for (const auto& [key_id, key] : proto.keys()) { // TODO(linnan): Replacing with 128-bit value string. - map.emplace(key_id, mojom::AttributionAggregatableKey::New(key.high_bits(), - key.low_bits())); + map.emplace(key_id, attribution_internals::mojom::AggregatableKey::New( + key.high_bits(), key.low_bits())); } return map; } -mojom::WebUIAttributionSourcePtr WebUIAttributionSource( +attribution_internals::mojom::WebUISourcePtr WebUISource( const CommonSourceInfo& source, Attributability attributability, const std::vector<uint64_t>& dedup_keys) { - return mojom::WebUIAttributionSource::New( + return attribution_internals::mojom::WebUISource::New( source.source_event_id(), source.impression_origin(), source.ConversionDestination().Serialize(), source.reporting_origin(), source.impression_time().ToJsTime(), source.expiry_time().ToJsTime(), source.source_type(), source.priority(), - source.debug_key() ? mojom::AttributionDebugKey::New(*source.debug_key()) - : nullptr, + source.debug_key() + ? attribution_internals::mojom::DebugKey::New(*source.debug_key()) + : nullptr, dedup_keys, source.filter_data().filter_values(), Convert(source.aggregatable_source()), attributability); } void ForwardSourcesToWebUI( - mojom::AttributionInternalsHandler::GetActiveSourcesCallback + attribution_internals::mojom::Handler::GetActiveSourcesCallback web_ui_callback, std::vector<StoredSource> active_sources) { - std::vector<mojom::WebUIAttributionSourcePtr> web_ui_sources; + std::vector<attribution_internals::mojom::WebUISourcePtr> web_ui_sources; web_ui_sources.reserve(active_sources.size()); for (const StoredSource& source : active_sources) { @@ -98,56 +100,60 @@ } } - web_ui_sources.push_back(WebUIAttributionSource( - source.common_info(), attributability, source.dedup_keys())); + web_ui_sources.push_back(WebUISource(source.common_info(), attributability, + source.dedup_keys())); } std::move(web_ui_callback).Run(std::move(web_ui_sources)); } -mojom::WebUIAttributionReportPtr WebUIAttributionReport( +attribution_internals::mojom::WebUIReportPtr WebUIReport( const AttributionReport& report, bool is_debug_report, int http_response_code, - mojom::WebUIAttributionReport::Status status) { + attribution_internals::mojom::WebUIReport::Status status) { struct Visitor { StoredSource::AttributionLogic attribution_logic; - mojom::WebUIAttributionReportDataPtr operator()( + attribution_internals::mojom::WebUIReportDataPtr operator()( const AttributionReport::EventLevelData& event_level_data) { - return mojom::WebUIAttributionReportData::NewEventLevelData( - mojom::WebUIAttributionReportEventLevelData::New( + return attribution_internals::mojom::WebUIReportData::NewEventLevelData( + attribution_internals::mojom::WebUIReportEventLevelData::New( event_level_data.id, event_level_data.priority, attribution_logic == StoredSource::AttributionLogic::kTruthfully)); } - mojom::WebUIAttributionReportDataPtr operator()( + attribution_internals::mojom::WebUIReportDataPtr operator()( const AttributionReport::AggregatableAttributionData& aggregatable_data) { - std::vector<mojom::AttributionReportHistogramContributionPtr> + std::vector< + attribution_internals::mojom::AggregatableHistogramContributionPtr> contributions; base::ranges::transform( aggregatable_data.contributions, std::back_inserter(contributions), [](const auto& contribution) { - return mojom::AttributionReportHistogramContribution::New( - mojom::AttributionAggregatableKey::New( - absl::Uint128High64(contribution.key()), - absl::Uint128Low64(contribution.key())), - contribution.value()); + return attribution_internals::mojom:: + AggregatableHistogramContribution::New( + attribution_internals::mojom::AggregatableKey::New( + absl::Uint128High64(contribution.key()), + absl::Uint128Low64(contribution.key())), + contribution.value()); }); - return mojom::WebUIAttributionReportData::NewAggregatableAttributionData( - mojom::WebUIAttributionReportAggregatableAttributionData::New( - aggregatable_data.id, std::move(contributions))); + return attribution_internals::mojom::WebUIReportData:: + NewAggregatableAttributionData( + attribution_internals::mojom:: + WebUIReportAggregatableAttributionData::New( + aggregatable_data.id, std::move(contributions))); } }; const AttributionInfo& attribution_info = report.attribution_info(); - mojom::WebUIAttributionReportDataPtr data = absl::visit( + attribution_internals::mojom::WebUIReportDataPtr data = absl::visit( Visitor{.attribution_logic = attribution_info.source.attribution_logic()}, report.data()); - return mojom::WebUIAttributionReport::New( + return attribution_internals::mojom::WebUIReport::New( report.ReportURL(is_debug_report), /*trigger_time=*/attribution_info.time.ToJsTime(), /*report_time=*/report.report_time().ToJsTime(), @@ -156,14 +162,14 @@ } void ForwardReportsToWebUI( - mojom::AttributionInternalsHandler::GetReportsCallback web_ui_callback, + attribution_internals::mojom::Handler::GetReportsCallback web_ui_callback, std::vector<AttributionReport> pending_reports) { - std::vector<mojom::WebUIAttributionReportPtr> web_ui_reports; + std::vector<attribution_internals::mojom::WebUIReportPtr> web_ui_reports; web_ui_reports.reserve(pending_reports.size()); for (const AttributionReport& report : pending_reports) { - web_ui_reports.push_back(WebUIAttributionReport( + web_ui_reports.push_back(WebUIReport( report, /*is_debug_report=*/false, /*http_response_code=*/0, - mojom::WebUIAttributionReport::Status::kPending)); + attribution_internals::mojom::WebUIReport::Status::kPending)); } std::move(web_ui_callback).Run(std::move(web_ui_reports)); @@ -173,7 +179,7 @@ AttributionInternalsHandlerImpl::AttributionInternalsHandlerImpl( WebUI* web_ui, - mojo::PendingReceiver<mojom::AttributionInternalsHandler> receiver) + mojo::PendingReceiver<attribution_internals::mojom::Handler> receiver) : web_ui_(web_ui), manager_provider_(AttributionManagerProvider::Default()), receiver_(this, std::move(receiver)) {} @@ -181,7 +187,7 @@ AttributionInternalsHandlerImpl::~AttributionInternalsHandlerImpl() = default; void AttributionInternalsHandlerImpl::IsAttributionReportingEnabled( - mojom::AttributionInternalsHandler::IsAttributionReportingEnabledCallback + attribution_internals::mojom::Handler::IsAttributionReportingEnabledCallback callback) { content::WebContents* contents = web_ui_->GetWebContents(); bool attribution_reporting_enabled = @@ -197,7 +203,7 @@ } void AttributionInternalsHandlerImpl::GetActiveSources( - mojom::AttributionInternalsHandler::GetActiveSourcesCallback callback) { + attribution_internals::mojom::Handler::GetActiveSourcesCallback callback) { if (AttributionManager* manager = manager_provider_->GetManager(web_ui_->GetWebContents())) { manager->GetActiveSourcesForWebUI( @@ -209,7 +215,7 @@ void AttributionInternalsHandlerImpl::GetReports( AttributionReport::ReportType report_type, - mojom::AttributionInternalsHandler::GetReportsCallback callback) { + attribution_internals::mojom::Handler::GetReportsCallback callback) { if (AttributionManager* manager = manager_provider_->GetManager(web_ui_->GetWebContents())) { manager->GetPendingReportsForInternalUse( @@ -222,7 +228,7 @@ void AttributionInternalsHandlerImpl::SendEventLevelReports( const std::vector<AttributionReport::EventLevelData::Id>& ids, - mojom::AttributionInternalsHandler::SendEventLevelReportsCallback + attribution_internals::mojom::Handler::SendEventLevelReportsCallback callback) { SendReports(std::vector<AttributionReport::Id>(ids.begin(), ids.end()), std::move(callback)); @@ -230,7 +236,7 @@ void AttributionInternalsHandlerImpl::SendAggregatableAttributionReports( const std::vector<AttributionReport::AggregatableAttributionData::Id>& ids, - mojom::AttributionInternalsHandler:: + attribution_internals::mojom::Handler:: SendAggregatableAttributionReportsCallback callback) { SendReports(std::vector<AttributionReport::Id>(ids.begin(), ids.end()), std::move(callback)); @@ -248,7 +254,7 @@ } void AttributionInternalsHandlerImpl::ClearStorage( - mojom::AttributionInternalsHandler::ClearStorageCallback callback) { + attribution_internals::mojom::Handler::ClearStorageCallback callback) { if (AttributionManager* manager = manager_provider_->GetManager(web_ui_->GetWebContents())) { manager->ClearData(base::Time::Min(), base::Time::Max(), @@ -259,8 +265,8 @@ } void AttributionInternalsHandlerImpl::AddObserver( - mojo::PendingRemote<mojom::AttributionInternalsObserver> observer, - mojom::AttributionInternalsHandler::AddObserverCallback callback) { + mojo::PendingRemote<attribution_internals::mojom::Observer> observer, + attribution_internals::mojom::Handler::AddObserverCallback callback) { if (AttributionManager* manager = manager_provider_->GetManager(web_ui_->GetWebContents())) { observers_.Add(std::move(observer)); @@ -294,9 +300,9 @@ break; } - auto source = WebUIAttributionSource(deactivated_source.source.common_info(), - attributability, - deactivated_source.source.dedup_keys()); + auto source = + WebUISource(deactivated_source.source.common_info(), attributability, + deactivated_source.source.dedup_keys()); for (auto& observer : observers_) { observer->OnSourceRejectedOrDeactivated(source.Clone()); @@ -324,8 +330,8 @@ break; } - auto web_ui_source = WebUIAttributionSource( - source.common_info(), attributability, /*dedup_keys=*/{}); + auto web_ui_source = + WebUISource(source.common_info(), attributability, /*dedup_keys=*/{}); for (auto& observer : observers_) { observer->OnSourceRejectedOrDeactivated(web_ui_source.Clone()); @@ -336,26 +342,27 @@ const AttributionReport& report, bool is_debug_report, const SendResult& info) { - mojom::WebUIAttributionReport::Status status; + attribution_internals::mojom::WebUIReport::Status status; switch (info.status) { case SendResult::Status::kSent: - status = mojom::WebUIAttributionReport::Status::kSent; + status = attribution_internals::mojom::WebUIReport::Status::kSent; break; case SendResult::Status::kDropped: - status = - mojom::WebUIAttributionReport::Status::kProhibitedByBrowserPolicy; + status = attribution_internals::mojom::WebUIReport::Status:: + kProhibitedByBrowserPolicy; break; case SendResult::Status::kFailure: case SendResult::Status::kTransientFailure: - status = mojom::WebUIAttributionReport::Status::kNetworkError; + status = attribution_internals::mojom::WebUIReport::Status::kNetworkError; break; case SendResult::Status::kFailedToAssemble: - status = mojom::WebUIAttributionReport::Status::kFailedToAssemble; + status = + attribution_internals::mojom::WebUIReport::Status::kFailedToAssemble; break; } - auto web_report = WebUIAttributionReport(report, is_debug_report, - info.http_response_code, status); + auto web_report = + WebUIReport(report, is_debug_report, info.http_response_code, status); for (auto& observer : observers_) { observer->OnReportSent(web_report.Clone()); @@ -364,30 +371,33 @@ namespace { -absl::optional<mojom::WebUIAttributionReport::Status> GetDroppedReportStatus( - AttributionTrigger::EventLevelResult status) { +absl::optional<attribution_internals::mojom::WebUIReport::Status> +GetDroppedReportStatus(AttributionTrigger::EventLevelResult status) { switch (status) { case AttributionTrigger::EventLevelResult::kSuccessDroppedLowerPriority: case AttributionTrigger::EventLevelResult::kPriorityTooLow: - return mojom::WebUIAttributionReport::Status::kDroppedDueToLowPriority; + return attribution_internals::mojom::WebUIReport::Status:: + kDroppedDueToLowPriority; case AttributionTrigger::EventLevelResult::kDroppedForNoise: - return mojom::WebUIAttributionReport::Status::kDroppedForNoise; + return attribution_internals::mojom::WebUIReport::Status:: + kDroppedForNoise; case AttributionTrigger::EventLevelResult::kExcessiveAttributions: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kDroppedDueToExcessiveAttributions; case AttributionTrigger::EventLevelResult::kExcessiveReportingOrigins: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kDroppedDueToExcessiveReportingOrigins; case AttributionTrigger::EventLevelResult::kDeduplicated: - return mojom::WebUIAttributionReport::Status::kDeduplicated; + return attribution_internals::mojom::WebUIReport::Status::kDeduplicated; case AttributionTrigger::EventLevelResult:: kNoCapacityForConversionDestination: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kNoReportCapacityForDestinationSite; case AttributionTrigger::EventLevelResult::kNoMatchingSourceFilterData: - return mojom::WebUIAttributionReport::Status::kNoMatchingSourceFilterData; + return attribution_internals::mojom::WebUIReport::Status:: + kNoMatchingSourceFilterData; case AttributionTrigger::EventLevelResult::kInternalError: - return mojom::WebUIAttributionReport::Status::kInternalError; + return attribution_internals::mojom::WebUIReport::Status::kInternalError; case AttributionTrigger::EventLevelResult::kSuccess: case AttributionTrigger::EventLevelResult::kNoMatchingImpressions: // TODO(apaseltiner): Surface `kNoMatchingImpressions` in internals UI. @@ -395,26 +405,27 @@ } } -absl::optional<mojom::WebUIAttributionReport::Status> GetDroppedReportStatus( - AttributionTrigger::AggregatableResult status) { +absl::optional<attribution_internals::mojom::WebUIReport::Status> +GetDroppedReportStatus(AttributionTrigger::AggregatableResult status) { switch (status) { case AttributionTrigger::AggregatableResult::kExcessiveAttributions: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kDroppedDueToExcessiveAttributions; case AttributionTrigger::AggregatableResult::kExcessiveReportingOrigins: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kDroppedDueToExcessiveReportingOrigins; case AttributionTrigger::AggregatableResult:: kNoCapacityForConversionDestination: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kNoReportCapacityForDestinationSite; case AttributionTrigger::AggregatableResult::kNoMatchingSourceFilterData: - return mojom::WebUIAttributionReport::Status::kNoMatchingSourceFilterData; + return attribution_internals::mojom::WebUIReport::Status:: + kNoMatchingSourceFilterData; case AttributionTrigger::AggregatableResult::kInsufficientBudget: - return mojom::WebUIAttributionReport::Status:: + return attribution_internals::mojom::WebUIReport::Status:: kInsufficientAggregatableBudget; case AttributionTrigger::AggregatableResult::kInternalError: - return mojom::WebUIAttributionReport::Status::kInternalError; + return attribution_internals::mojom::WebUIReport::Status::kInternalError; case AttributionTrigger::AggregatableResult::kSuccess: case AttributionTrigger::AggregatableResult::kNoHistograms: case AttributionTrigger::AggregatableResult::kNoMatchingImpressions: @@ -433,24 +444,23 @@ struct Visitor { const CreateReportResult& result; - absl::optional<mojom::WebUIAttributionReport::Status> operator()( - const AttributionReport::EventLevelData&) { + absl::optional<attribution_internals::mojom::WebUIReport::Status> + operator()(const AttributionReport::EventLevelData&) { return GetDroppedReportStatus(result.event_level_status()); } - absl::optional<mojom::WebUIAttributionReport::Status> operator()( - const AttributionReport::AggregatableAttributionData&) { + absl::optional<attribution_internals::mojom::WebUIReport::Status> + operator()(const AttributionReport::AggregatableAttributionData&) { return GetDroppedReportStatus(result.aggregatable_status()); } }; - absl::optional<mojom::WebUIAttributionReport::Status> status = + absl::optional<attribution_internals::mojom::WebUIReport::Status> status = absl::visit(Visitor{.result = result}, dropped_report.data()); DCHECK(status.has_value()); - auto report = - WebUIAttributionReport(dropped_report, /*is_debug_report=*/false, - /*http_response_code=*/0, *status); + auto report = WebUIReport(dropped_report, /*is_debug_report=*/false, + /*http_response_code=*/0, *status); for (auto& observer : observers_) { observer->OnReportDropped(report.Clone());
diff --git a/content/browser/attribution_reporting/attribution_internals_handler_impl.h b/content/browser/attribution_reporting/attribution_internals_handler_impl.h index 6c39d56..b87ee9c5 100644 --- a/content/browser/attribution_reporting/attribution_internals_handler_impl.h +++ b/content/browser/attribution_reporting/attribution_internals_handler_impl.h
@@ -26,12 +26,12 @@ // reports being sent or dropped, to the internals WebUI. Owned by // `AttributionInternalsUI`. class AttributionInternalsHandlerImpl - : public mojom::AttributionInternalsHandler, + : public attribution_internals::mojom::Handler, public AttributionObserver { public: AttributionInternalsHandlerImpl( WebUI* web_ui, - mojo::PendingReceiver<mojom::AttributionInternalsHandler> receiver); + mojo::PendingReceiver<attribution_internals::mojom::Handler> receiver); AttributionInternalsHandlerImpl( const AttributionInternalsHandlerImpl& other) = delete; AttributionInternalsHandlerImpl& operator=( @@ -44,28 +44,28 @@ // mojom::AttributionInternalsHandler: void IsAttributionReportingEnabled( - mojom::AttributionInternalsHandler::IsAttributionReportingEnabledCallback - callback) override; + attribution_internals::mojom::Handler:: + IsAttributionReportingEnabledCallback callback) override; void GetActiveSources( - mojom::AttributionInternalsHandler::GetActiveSourcesCallback callback) + attribution_internals::mojom::Handler::GetActiveSourcesCallback callback) override; - void GetReports( - AttributionReport::ReportType report_type, - mojom::AttributionInternalsHandler::GetReportsCallback callback) override; + void GetReports(AttributionReport::ReportType report_type, + attribution_internals::mojom::Handler::GetReportsCallback + callback) override; void SendEventLevelReports( const std::vector<AttributionReport::EventLevelData::Id>& ids, - mojom::AttributionInternalsHandler::SendEventLevelReportsCallback + attribution_internals::mojom::Handler::SendEventLevelReportsCallback callback) override; void SendAggregatableAttributionReports( const std::vector<AttributionReport::AggregatableAttributionData::Id>& ids, - mojom::AttributionInternalsHandler:: + attribution_internals::mojom::Handler:: SendAggregatableAttributionReportsCallback callback) override; - void ClearStorage(mojom::AttributionInternalsHandler::ClearStorageCallback + void ClearStorage(attribution_internals::mojom::Handler::ClearStorageCallback callback) override; void AddObserver( - mojo::PendingRemote<mojom::AttributionInternalsObserver> observer, - mojom::AttributionInternalsHandler::AddObserverCallback callback) + mojo::PendingRemote<attribution_internals::mojom::Observer> observer, + attribution_internals::mojom::Handler::AddObserverCallback callback) override; void SetAttributionManagerProviderForTesting( @@ -90,9 +90,9 @@ raw_ptr<WebUI> web_ui_; std::unique_ptr<AttributionManagerProvider> manager_provider_; - mojo::Receiver<mojom::AttributionInternalsHandler> receiver_; + mojo::Receiver<attribution_internals::mojom::Handler> receiver_; - mojo::RemoteSet<mojom::AttributionInternalsObserver> observers_; + mojo::RemoteSet<attribution_internals::mojom::Observer> observers_; base::ScopedObservation<AttributionManager, AttributionObserver> manager_observation_{this};
diff --git a/content/browser/attribution_reporting/attribution_internals_mojom_traits.cc b/content/browser/attribution_reporting/attribution_internals_mojom_traits.cc index f24efdb6..987a075 100644 --- a/content/browser/attribution_reporting/attribution_internals_mojom_traits.cc +++ b/content/browser/attribution_reporting/attribution_internals_mojom_traits.cc
@@ -7,9 +7,9 @@ namespace mojo { // static -bool StructTraits<content::mojom::AttributionReportEventLevelIDDataView, +bool StructTraits<attribution_internals::mojom::EventLevelReportIDDataView, content::AttributionReport::EventLevelData::Id>:: - Read(content::mojom::AttributionReportEventLevelIDDataView data, + Read(attribution_internals::mojom::EventLevelReportIDDataView data, content::AttributionReport::EventLevelData::Id* out) { *out = content::AttributionReport::EventLevelData::Id(data.value()); return true; @@ -17,11 +17,11 @@ // static bool StructTraits< - content::mojom::AttributionReportAggregatableAttributionIDDataView, + attribution_internals::mojom::AggregatableAttributionReportIDDataView, content::AttributionReport::AggregatableAttributionData::Id>:: - Read( - content::mojom::AttributionReportAggregatableAttributionIDDataView data, - content::AttributionReport::AggregatableAttributionData::Id* out) { + Read(attribution_internals::mojom::AggregatableAttributionReportIDDataView + data, + content::AttributionReport::AggregatableAttributionData::Id* out) { *out = content::AttributionReport::AggregatableAttributionData::Id(data.value()); return true;
diff --git a/content/browser/attribution_reporting/attribution_internals_mojom_traits.h b/content/browser/attribution_reporting/attribution_internals_mojom_traits.h index b71a570..46e48e3 100644 --- a/content/browser/attribution_reporting/attribution_internals_mojom_traits.h +++ b/content/browser/attribution_reporting/attribution_internals_mojom_traits.h
@@ -16,26 +16,26 @@ namespace mojo { template <> -class EnumTraits<content::mojom::AttributionSourceType, +class EnumTraits<attribution_internals::mojom::SourceType, content::AttributionSourceType> { public: - static content::mojom::AttributionSourceType ToMojom( + static attribution_internals::mojom::SourceType ToMojom( content::AttributionSourceType input) { switch (input) { case content::AttributionSourceType::kNavigation: - return content::mojom::AttributionSourceType::kNavigation; + return attribution_internals::mojom::SourceType::kNavigation; case content::AttributionSourceType::kEvent: - return content::mojom::AttributionSourceType::kEvent; + return attribution_internals::mojom::SourceType::kEvent; } } - static bool FromMojom(content::mojom::AttributionSourceType input, + static bool FromMojom(attribution_internals::mojom::SourceType input, content::AttributionSourceType* out) { switch (input) { - case content::mojom::AttributionSourceType::kNavigation: + case attribution_internals::mojom::SourceType::kNavigation: *out = content::AttributionSourceType::kNavigation; break; - case content::mojom::AttributionSourceType::kEvent: + case attribution_internals::mojom::SourceType::kEvent: *out = content::AttributionSourceType::kEvent; break; } @@ -45,26 +45,27 @@ }; template <> -class EnumTraits<content::mojom::AttributionReportType, +class EnumTraits<attribution_internals::mojom::ReportType, content::AttributionReport::ReportType> { public: - static content::mojom::AttributionReportType ToMojom( + static attribution_internals::mojom::ReportType ToMojom( content::AttributionReport::ReportType input) { switch (input) { case content::AttributionReport::ReportType::kEventLevel: - return content::mojom::AttributionReportType::kEventLevel; + return attribution_internals::mojom::ReportType::kEventLevel; case content::AttributionReport::ReportType::kAggregatableAttribution: - return content::mojom::AttributionReportType::kAggregatableAttribution; + return attribution_internals::mojom::ReportType:: + kAggregatableAttribution; } } - static bool FromMojom(content::mojom::AttributionReportType input, + static bool FromMojom(attribution_internals::mojom::ReportType input, content::AttributionReport::ReportType* out) { switch (input) { - case content::mojom::AttributionReportType::kEventLevel: + case attribution_internals::mojom::ReportType::kEventLevel: *out = content::AttributionReport::ReportType::kEventLevel; break; - case content::mojom::AttributionReportType::kAggregatableAttribution: + case attribution_internals::mojom::ReportType::kAggregatableAttribution: *out = content::AttributionReport::ReportType::kAggregatableAttribution; break; } @@ -74,7 +75,7 @@ }; template <> -class StructTraits<content::mojom::AttributionReportEventLevelIDDataView, +class StructTraits<attribution_internals::mojom::EventLevelReportIDDataView, content::AttributionReport::EventLevelData::Id> { public: static int64_t value( @@ -82,13 +83,14 @@ return *id; } - static bool Read(content::mojom::AttributionReportEventLevelIDDataView data, - content::AttributionReport::EventLevelData::Id* out); + static bool Read( + attribution_internals::mojom::EventLevelReportIDDataView data, + content::AttributionReport::EventLevelData::Id* out); }; template <> class StructTraits< - content::mojom::AttributionReportAggregatableAttributionIDDataView, + attribution_internals::mojom::AggregatableAttributionReportIDDataView, content::AttributionReport::AggregatableAttributionData::Id> { public: static int64_t value( @@ -97,7 +99,8 @@ } static bool Read( - content::mojom::AttributionReportAggregatableAttributionIDDataView data, + attribution_internals::mojom::AggregatableAttributionReportIDDataView + data, content::AttributionReport::AggregatableAttributionData::Id* out); };
diff --git a/content/browser/attribution_reporting/attribution_internals_ui.cc b/content/browser/attribution_reporting/attribution_internals_ui.cc index 8cc623a5..2cd72ebc 100644 --- a/content/browser/attribution_reporting/attribution_internals_ui.cc +++ b/content/browser/attribution_reporting/attribution_internals_ui.cc
@@ -50,7 +50,7 @@ } void AttributionInternalsUI::BindInterface( - mojo::PendingReceiver<mojom::AttributionInternalsHandler> receiver) { + mojo::PendingReceiver<attribution_internals::mojom::Handler> receiver) { ui_handler_ = std::make_unique<AttributionInternalsHandlerImpl>( web_ui(), std::move(receiver)); }
diff --git a/content/browser/attribution_reporting/attribution_internals_ui.h b/content/browser/attribution_reporting/attribution_internals_ui.h index 08ceed0..0c2c5767 100644 --- a/content/browser/attribution_reporting/attribution_internals_ui.h +++ b/content/browser/attribution_reporting/attribution_internals_ui.h
@@ -32,7 +32,7 @@ void WebUIRenderFrameCreated(RenderFrameHost* render_frame_host) override; void BindInterface( - mojo::PendingReceiver<mojom::AttributionInternalsHandler> receiver); + mojo::PendingReceiver<attribution_internals::mojom::Handler> receiver); void SetAttributionManagerProviderForTesting( std::unique_ptr<AttributionManagerProvider> manager_provider);
diff --git a/content/browser/blob_storage/OWNERS b/content/browser/blob_storage/OWNERS index b4c97d6..7700ef11 100644 --- a/content/browser/blob_storage/OWNERS +++ b/content/browser/blob_storage/OWNERS
@@ -1,6 +1,6 @@ # Primary -dmurph@chromium.org -mek@chromium.org +asully@chromium.org # Secondary -pwnall@chromium.org +ayui@chromium.org +dmurph@chromium.org
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc index b9246597..ddca8c81 100644 --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc
@@ -269,7 +269,7 @@ void BindAttributionInternalsHandler( RenderFrameHost* host, - mojo::PendingReceiver<mojom::AttributionInternalsHandler> receiver) { + mojo::PendingReceiver<attribution_internals::mojom::Handler> receiver) { WebUI* web_ui = host->GetWebUI(); // Performs a safe downcast to the concrete AttributionInternalsUI subclass. @@ -1139,7 +1139,7 @@ map->Add<device::mojom::VRService>( base::BindRepeating(&EmptyBinderForFrame<device::mojom::VRService>)); #endif - map->Add<mojom::AttributionInternalsHandler>( + map->Add<attribution_internals::mojom::Handler>( base::BindRepeating(&BindAttributionInternalsHandler)); map->Add<mojom::PrerenderInternalsHandler>( base::BindRepeating(&BindPrerenderInternalsHandler));
diff --git a/content/browser/buckets/OWNERS b/content/browser/buckets/OWNERS index e07d1012..0c26f8d 100644 --- a/content/browser/buckets/OWNERS +++ b/content/browser/buckets/OWNERS
@@ -2,5 +2,4 @@ ayui@chromium.org # Secondary -mek@chromium.org -pwnall@chromium.org +asully@chromium.org
diff --git a/content/browser/cache_storage/OWNERS b/content/browser/cache_storage/OWNERS index 8025c05..1b73d82 100644 --- a/content/browser/cache_storage/OWNERS +++ b/content/browser/cache_storage/OWNERS
@@ -5,5 +5,3 @@ ayui@chromium.org jkarlin@chromium.org jsbell@chromium.org -mek@chromium.org -pwnall@chromium.org
diff --git a/content/browser/compute_pressure/OWNERS b/content/browser/compute_pressure/OWNERS index af6d84b..0a79f2c 100644 --- a/content/browser/compute_pressure/OWNERS +++ b/content/browser/compute_pressure/OWNERS
@@ -1,7 +1,5 @@ # Primary -pwnall@chromium.org raphael.kubo.da.costa@intel.com # Secondary jsbell@chromium.org -mek@chromium.org
diff --git a/content/browser/cookie_store/OWNERS b/content/browser/cookie_store/OWNERS index d301388..0500833 100644 --- a/content/browser/cookie_store/OWNERS +++ b/content/browser/cookie_store/OWNERS
@@ -2,6 +2,5 @@ ayui@chromium.org # Secondary -mek@chromium.org -pwnall@chromium.org +asully@chromium.org jsbell@chromium.org
diff --git a/content/browser/dom_storage/OWNERS b/content/browser/dom_storage/OWNERS index 4b14e93..f676cf59 100644 --- a/content/browser/dom_storage/OWNERS +++ b/content/browser/dom_storage/OWNERS
@@ -1,8 +1,8 @@ # Primary -dmurph@chromium.org -mek@chromium.org +ayui@chromium.org # Secondary arichiv@chromium.org +asully@chromium.org +dmurph@chromium.org jsbell@chromium.org -pwnall@chromium.org
diff --git a/content/browser/file_system/OWNERS b/content/browser/file_system/OWNERS index 69b0639..9a9500fe 100644 --- a/content/browser/file_system/OWNERS +++ b/content/browser/file_system/OWNERS
@@ -1,5 +1,8 @@ +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org jsbell@chromium.org -mek@chromium.org -pwnall@chromium.org jianli@chromium.org nhiroki@chromium.org
diff --git a/content/browser/file_system_access/OWNERS b/content/browser/file_system_access/OWNERS index 5f3c1c3..d42011e 100644 --- a/content/browser/file_system_access/OWNERS +++ b/content/browser/file_system_access/OWNERS
@@ -1,3 +1,5 @@ +# Primary asully@chromium.org -mek@chromium.org -pwnall@chromium.org + +# Secondary +ayui@chromium.org
diff --git a/content/browser/font_access/OWNERS b/content/browser/font_access/OWNERS index 8d602dc..49d68bb 100644 --- a/content/browser/font_access/OWNERS +++ b/content/browser/font_access/OWNERS
@@ -1,5 +1,5 @@ # Primary -pwnall@chromium.org +jsbell@chromium.org # Secondary -jsbell@chromium.org +ayui@chromium.org
diff --git a/content/browser/indexed_db/OWNERS b/content/browser/indexed_db/OWNERS index f3d19e37..efaba6d9 100644 --- a/content/browser/indexed_db/OWNERS +++ b/content/browser/indexed_db/OWNERS
@@ -1,10 +1,9 @@ # Primary -mek@chromium.org +ayui@chromium.org # Secondary arichiv@chromium.org -ayui@chromium.org +asully@chromium.org cmp@chromium.org dmurph@chromium.org jsbell@chromium.org -pwnall@chromium.org
diff --git a/content/browser/loader/navigation_url_loader_unittest.cc b/content/browser/loader/navigation_url_loader_unittest.cc index 11ae46c..a3358bee 100644 --- a/content/browser/loader/navigation_url_loader_unittest.cc +++ b/content/browser/loader/navigation_url_loader_unittest.cc
@@ -132,8 +132,7 @@ browser_context_.get(), storage_partition, std::move(request_info), nullptr, nullptr, nullptr, delegate, NavigationURLLoader::LoaderType::kRegular, mojo::NullRemote(), - storage_partition->CreateURLLoaderNetworkObserverForNavigationRequest( - frame_tree_node_id), + /* url_loader_network_observer */ mojo::NullRemote(), /*devtools_observer=*/mojo::NullRemote()); }
diff --git a/content/browser/locks/OWNERS b/content/browser/locks/OWNERS index 26aae8f8e..2aff00a 100644 --- a/content/browser/locks/OWNERS +++ b/content/browser/locks/OWNERS
@@ -1,4 +1,7 @@ +# Primary jsbell@chromium.org -mek@chromium.org -pwnall@chromium.org + +# Secondary +asully@chromium.org +ayui@chromium.org wanderview@chromium.org
diff --git a/content/browser/native_io/OWNERS b/content/browser/native_io/OWNERS index 1d2e05e..565fba10 100644 --- a/content/browser/native_io/OWNERS +++ b/content/browser/native_io/OWNERS
@@ -1,3 +1,6 @@ -mek@chromium.org -pwnall@chromium.org +# Primary mkwst@chromium.org + +# Secondary +asully@chromium.org +ayui@chromium.org
diff --git a/content/browser/navigation_or_document_handle.cc b/content/browser/navigation_or_document_handle.cc new file mode 100644 index 0000000..bd0a6b8 --- /dev/null +++ b/content/browser/navigation_or_document_handle.cc
@@ -0,0 +1,76 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/browser/navigation_or_document_handle.h" + +#include "content/browser/renderer_host/navigation_request.h" +#include "content/browser/renderer_host/render_frame_host_impl.h" +#include "content/browser/web_contents/web_contents_impl.h" + +namespace content { + +scoped_refptr<NavigationOrDocumentHandle> +NavigationOrDocumentHandle::CreateForDocument( + GlobalRenderFrameHostId render_frame_host_id) { + return base::WrapRefCounted( + new NavigationOrDocumentHandle(render_frame_host_id)); +} + +scoped_refptr<NavigationOrDocumentHandle> +NavigationOrDocumentHandle::CreateForNavigation( + NavigationRequest& navigation_request) { + return base::WrapRefCounted( + new NavigationOrDocumentHandle(navigation_request)); +} + +NavigationOrDocumentHandle::NavigationOrDocumentHandle( + GlobalRenderFrameHostId render_frame_host_id) { + auto* render_frame_host_impl = + RenderFrameHostImpl::FromID(render_frame_host_id); + if (render_frame_host_impl) + render_frame_host_ = render_frame_host_impl->GetWeakPtr(); +} + +NavigationOrDocumentHandle::NavigationOrDocumentHandle( + NavigationRequest& navigation_request) + : navigation_request_(navigation_request.GetWeakPtr()) {} + +NavigationOrDocumentHandle::~NavigationOrDocumentHandle() = default; + +NavigationRequest* NavigationOrDocumentHandle::GetNavigationRequest() const { + return navigation_request_ ? navigation_request_.get() : nullptr; +} + +RenderFrameHost* NavigationOrDocumentHandle::GetDocument() const { + return render_frame_host_.get(); +} + +WebContents* NavigationOrDocumentHandle::GetWebContents() const { + if (auto* navigation_request = GetNavigationRequest()) { + return WebContentsImpl::FromFrameTreeNode( + navigation_request->frame_tree_node()); + } else if (auto* rfh = GetDocument()) { + return WebContents::FromRenderFrameHost(rfh); + } + return nullptr; +} + +bool NavigationOrDocumentHandle::IsInPrimaryMainFrame() const { + auto* navigation_request = GetNavigationRequest(); + if (navigation_request) + return navigation_request->IsInPrimaryMainFrame(); + auto* render_frame_host = GetDocument(); + if (render_frame_host) + return render_frame_host->IsInPrimaryMainFrame(); + return false; +} + +void NavigationOrDocumentHandle::OnNavigationCommitted( + NavigationRequest& navigation_request) { + DCHECK_EQ(navigation_request_->GetNavigationId(), + navigation_request.GetNavigationId()); + render_frame_host_ = navigation_request.GetRenderFrameHost()->GetWeakPtr(); +} + +} // namespace content
diff --git a/content/browser/navigation_or_document_handle.h b/content/browser/navigation_or_document_handle.h new file mode 100644 index 0000000..1a9921f9 --- /dev/null +++ b/content/browser/navigation_or_document_handle.h
@@ -0,0 +1,67 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_BROWSER_NAVIGATION_OR_DOCUMENT_HANDLE_H_ +#define CONTENT_BROWSER_NAVIGATION_OR_DOCUMENT_HANDLE_H_ + +#include "base/memory/ref_counted.h" +#include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" +#include "content/public/browser/global_routing_id.h" +#include "content/public/browser/weak_document_ptr.h" + +namespace content { + +class WebContents; +class NavigationRequest; +class RenderFrameHostImpl; + +// This handle allows the user to attribute events to a navigation and a +// document, supporting a seamless transfer from a navigation to a committed +// document. Typically this is needed when processing events which are racing +// against the navigation (e.g. notifications from the network service). +class NavigationOrDocumentHandle + : public base::RefCounted<NavigationOrDocumentHandle> { + public: + static scoped_refptr<NavigationOrDocumentHandle> CreateForDocument( + GlobalRenderFrameHostId render_frame_host_id); + + static scoped_refptr<NavigationOrDocumentHandle> CreateForNavigation( + NavigationRequest& navigation_request); + + // Returns NavigationRequest associated with this instance. + // One of GetNavigationRequest()/GetDocument() would be non-null + // depending on the state of the navigation unless they are destroyed. + NavigationRequest* GetNavigationRequest() const; + + // Returns RenderFrameHost associated with this instance. + RenderFrameHost* GetDocument() const; + + WebContents* GetWebContents() const; + + bool IsInPrimaryMainFrame() const; + + // Called when the navigation is committed. This is used to update + // `render_frame_host_` before the navigation request is destroyed. + void OnNavigationCommitted(NavigationRequest& navigation_request); + + private: + friend class base::RefCounted<NavigationOrDocumentHandle>; + + explicit NavigationOrDocumentHandle( + GlobalRenderFrameHostId render_frame_host_id); + explicit NavigationOrDocumentHandle(NavigationRequest& navigation_request); + ~NavigationOrDocumentHandle(); + + // Is set when this is created for a navigation request. Can be null after the + // navigation is committed. + base::WeakPtr<NavigationRequest> navigation_request_; + // Is set when this is created for a document or after a navigation is + // committed. + base::WeakPtr<RenderFrameHostImpl> render_frame_host_; +}; + +} // namespace content + +#endif // CONTENT_BROWSER_NAVIGATION_OR_DOCUMENT_HANDLE_H_
diff --git a/content/browser/renderer_host/input/touch_action_browsertest.cc b/content/browser/renderer_host/input/touch_action_browsertest.cc index 19c6fdf..3fc55d7 100644 --- a/content/browser/renderer_host/input/touch_action_browsertest.cc +++ b/content/browser/renderer_host/input/touch_action_browsertest.cc
@@ -14,7 +14,6 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "base/test/bind.h" -#include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h" #include "content/browser/renderer_host/input/synthetic_gesture.h" @@ -838,7 +837,6 @@ BasicCursorControl) { if (!::features::IsSwipeToMoveCursorEnabled()) return; - base::HistogramTester histograms; LoadURL(kContentEditableDataURL.c_str()); EXPECT_EQ(32, @@ -857,10 +855,6 @@ EXPECT_EQ(anchor_offset, focus_offset); EXPECT_GT(32, anchor_offset); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - true, 1); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - false, 0); } // Perform a horizontal swipe over an editable element from right to left (the @@ -871,7 +865,6 @@ NoCursorControlForHorizontalScrollable) { if (!::features::IsSwipeToMoveCursorEnabled()) return; - base::HistogramTester histograms; LoadURL(kContentEditableHorizontalScrollableDataURL.c_str()); EXPECT_EQ(32, @@ -892,10 +885,6 @@ EXPECT_EQ(32, anchor_offset); EXPECT_LT(0.f, ExecuteScriptAndExtractDouble( "document.getElementById('scroller').scrollLeft")); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - true, 0); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - false, 1); } // Perform a horizontal swipe over an editable element from right to left @@ -931,7 +920,6 @@ CursorControlOnInput) { if (!::features::IsSwipeToMoveCursorEnabled()) return; - base::HistogramTester histograms; // input size larger than the text size, not horizontally scrollable. LoadURL(base::StringPrintf(kInputTagCursorControl.c_str(), 40).c_str()); @@ -949,10 +937,6 @@ EXPECT_EQ(selection_start, selection_end); EXPECT_GT(32, selection_start); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - true, 1); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - false, 0); } // Perform a horizontal swipe over an horizontal scrollable input element from @@ -961,7 +945,6 @@ NoCursorControlOnHorizontalScrollableInput) { if (!::features::IsSwipeToMoveCursorEnabled()) return; - base::HistogramTester histograms; // Make the input size smaller than the text size, so it horizontally // scrollable. LoadURL(base::StringPrintf(kInputTagCursorControl.c_str(), 20).c_str()); @@ -980,10 +963,6 @@ EXPECT_EQ(selection_start, selection_end); EXPECT_EQ(32, selection_start); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - true, 0); - histograms.ExpectBucketCount("Blink.Input.GestureScrollBeginAsCursorControl", - false, 1); } } // namespace content
diff --git a/content/browser/renderer_host/input/touch_action_filter.cc b/content/browser/renderer_host/input/touch_action_filter.cc index a7e18765..0468ab64 100644 --- a/content/browser/renderer_host/input/touch_action_filter.cc +++ b/content/browser/renderer_host/input/touch_action_filter.cc
@@ -9,7 +9,6 @@ #include "base/check_op.h" #include "base/debug/crash_logging.h" #include "base/debug/dump_without_crashing.h" -#include "base/metrics/histogram_macros.h" #include "base/notreached.h" #include "base/strings/string_number_conversions.h" #include "base/trace_event/trace_event.h" @@ -117,8 +116,6 @@ FilterGestureEventResult res; if (!drop_scroll_events_) { SetCursorControlIfNecessary(gesture_event, touch_action); - UMA_HISTOGRAM_BOOLEAN("Blink.Input.GestureScrollBeginAsCursorControl", - gesture_event->data.scroll_begin.cursor_control); res = FilterGestureEventResult::kFilterGestureEventAllowed; } else if (active_touch_action_.has_value()) { res = FilterGestureEventResult::kFilterGestureEventFiltered;
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index 49b4e94..a7bda4f1 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc
@@ -43,6 +43,7 @@ #include "content/browser/loader/navigation_early_hints_manager.h" #include "content/browser/loader/navigation_url_loader.h" #include "content/browser/loader/object_navigation_fallback_body_loader.h" +#include "content/browser/navigation_or_document_handle.h" #include "content/browser/net/cross_origin_embedder_policy_reporter.h" #include "content/browser/net/cross_origin_opener_policy_reporter.h" #include "content/browser/network_service_instance_impl.h" @@ -1455,6 +1456,8 @@ if (initiator_rfh) initiator_document_ = initiator_rfh->GetWeakDocumentPtr(); } + navigation_or_document_handle_ = + NavigationOrDocumentHandle::CreateForNavigation(*this); policy_container_navigation_bundle_.emplace( GetParentFrame(), @@ -4096,8 +4099,7 @@ std::move(prefetched_signed_exchange_cache_), this, loader_type, CreateCookieAccessObserver(), static_cast<StoragePartitionImpl*>(partition) - ->CreateURLLoaderNetworkObserverForNavigationRequest( - frame_tree_node_->frame_tree_node_id()), + ->CreateURLLoaderNetworkObserverForNavigationRequest(*this), NetworkServiceDevToolsObserver::MakeSelfOwned(frame_tree_node_), std::move(cached_response_head), std::move(interceptor)); DCHECK(!render_frame_host_); @@ -5803,6 +5805,7 @@ EnterChildTraceEvent("DidCommitNavigation", this); SetState(DID_COMMIT); } + navigation_or_document_handle_->OnNavigationCommitted(*this); StopCommitTimeout();
diff --git a/content/browser/renderer_host/navigation_request.h b/content/browser/renderer_host/navigation_request.h index be13eec..e1b5bf5 100644 --- a/content/browser/renderer_host/navigation_request.h +++ b/content/browser/renderer_host/navigation_request.h
@@ -940,6 +940,11 @@ // BrowsingInstance swap. Used only in tests. bool force_new_browsing_instance() { return force_new_browsing_instance_; } + const scoped_refptr<NavigationOrDocumentHandle>& + navigation_or_document_handle() { + return navigation_or_document_handle_; + } + private: friend class NavigationRequestTest; @@ -2019,6 +2024,8 @@ // reset. bool force_new_browsing_instance_ = false; + scoped_refptr<NavigationOrDocumentHandle> navigation_or_document_handle_; + base::WeakPtrFactory<NavigationRequest> weak_factory_{this}; };
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 9451b0d..bc4c88b 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc
@@ -80,6 +80,7 @@ #include "content/browser/manifest/manifest_manager_host.h" #include "content/browser/media/media_interface_proxy.h" #include "content/browser/media/webaudio/audio_context_manager_impl.h" +#include "content/browser/navigation_or_document_handle.h" #include "content/browser/navigation_subresource_loader_params.h" #include "content/browser/net/cross_origin_embedder_policy_reporter.h" #include "content/browser/net/cross_origin_opener_policy_reporter.h" @@ -4477,6 +4478,15 @@ std::move(navigation_request); } +const scoped_refptr<NavigationOrDocumentHandle>& +RenderFrameHostImpl::GetNavigationOrDocumentHandle() { + if (!document_associated_data_->navigation_or_document_handle) { + document_associated_data_->navigation_or_document_handle = + NavigationOrDocumentHandle::CreateForDocument(GetGlobalId()); + } + return document_associated_data_->navigation_or_document_handle; +} + void RenderFrameHostImpl::Unload(RenderFrameProxyHost* proxy, bool is_loading) { // The end of this event is in OnUnloadACK when the RenderFrame has completed // the operation and sends back an IPC message.
diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/browser/renderer_host/render_frame_host_impl.h index 92ffc5d4..b3d6060 100644 --- a/content/browser/renderer_host/render_frame_host_impl.h +++ b/content/browser/renderer_host/render_frame_host_impl.h
@@ -868,6 +868,9 @@ void SetNavigationRequest( std::unique_ptr<NavigationRequest> navigation_request); + const scoped_refptr<NavigationOrDocumentHandle>& + GetNavigationOrDocumentHandle(); + // Tells the renderer that this RenderFrame is being replaced with one in a // different renderer process. It should run its unload handler and move to // a blank document. If |proxy| is not null, it should also create a @@ -4018,6 +4021,10 @@ // allowed to delete itself directly. std::vector<internal::DocumentServiceBase*> services; + // This handle supports a seamless transfer from a navigation to a committed + // document. + scoped_refptr<NavigationOrDocumentHandle> navigation_or_document_handle; + // Produces weak pointers to the hosting RenderFrameHostImpl. This is // invalidated whenever DocumentAssociatedData is destroyed, due to // RenderFrameHost deletion or cross-document navigation.
diff --git a/content/browser/resources/attribution_reporting/attribution_internals.js b/content/browser/resources/attribution_reporting/attribution_internals.js index 9f75580c..4fe9e25 100644 --- a/content/browser/resources/attribution_reporting/attribution_internals.js +++ b/content/browser/resources/attribution_reporting/attribution_internals.js
@@ -7,7 +7,7 @@ import {$, getRequiredElement, queryRequiredElement} from 'chrome://resources/js/util.m.js'; import {Origin} from 'chrome://resources/mojo/url/mojom/origin.mojom-webui.js'; -import {AttributionInternalsHandler, AttributionInternalsHandlerRemote, AttributionInternalsObserverInterface, AttributionInternalsObserverReceiver, AttributionReportAggregatableAttributionID, AttributionReportEventLevelID, AttributionReportType, AttributionSourceType, WebUIAttributionReport, WebUIAttributionReport_Status, WebUIAttributionSource, WebUIAttributionSource_Attributability} from './attribution_internals.mojom-webui.js'; +import {Handler as AttributionInternalsHandler, HandlerRemote as AttributionInternalsHandlerRemote, ObserverInterface, ObserverReceiver, AggregatableAttributionReportID, EventLevelReportID, ReportType, SourceType, WebUIReport, WebUIReport_Status, WebUISource, WebUISource_Attributability} from './attribution_internals.mojom-webui.js'; /** * @template T @@ -454,7 +454,7 @@ class Source { /** - * @param {!WebUIAttributionSource} mojo + * @param {!WebUISource} mojo */ constructor(mojo) { this.sourceEventId = mojo.sourceEventId; @@ -541,7 +541,7 @@ */ class Report extends Selectable { /** - * @param {!WebUIAttributionReport} mojo + * @param {!WebUIReport} mojo * @param {ID} id */ constructor(mojo, id) { @@ -555,7 +555,7 @@ // Only pending reports are selectable. if (this.id === null || - mojo.status !== WebUIAttributionReport_Status.kPending) { + mojo.status !== WebUIReport_Status.kPending) { this.input.disabled = true; } @@ -563,57 +563,57 @@ '/.well-known/attribution-reporting/debug/') >= 0; switch (mojo.status) { - case WebUIAttributionReport_Status.kSent: + case WebUIReport_Status.kSent: this.status = `Sent: HTTP ${mojo.httpResponseCode}`; this.httpResponseCode = mojo.httpResponseCode; break; - case WebUIAttributionReport_Status.kPending: + case WebUIReport_Status.kPending: this.status = 'Pending'; break; - case WebUIAttributionReport_Status.kDroppedDueToExcessiveAttributions: + case WebUIReport_Status.kDroppedDueToExcessiveAttributions: this.status = 'Dropped due to excessive attributions'; break; - case WebUIAttributionReport_Status.kDroppedDueToExcessiveReportingOrigins: + case WebUIReport_Status.kDroppedDueToExcessiveReportingOrigins: this.status = 'Dropped due to excessive reporting origins'; break; - case WebUIAttributionReport_Status.kDroppedDueToLowPriority: + case WebUIReport_Status.kDroppedDueToLowPriority: this.status = 'Dropped due to low priority'; break; - case WebUIAttributionReport_Status.kDroppedForNoise: + case WebUIReport_Status.kDroppedForNoise: this.status = 'Dropped for noise'; break; - case WebUIAttributionReport_Status.kDeduplicated: + case WebUIReport_Status.kDeduplicated: this.status = 'Deduplicated'; break; - case WebUIAttributionReport_Status.kNoReportCapacityForDestinationSite: + case WebUIReport_Status.kNoReportCapacityForDestinationSite: this.status = 'No report capacity for destination site'; break; - case WebUIAttributionReport_Status.kInternalError: + case WebUIReport_Status.kInternalError: this.status = 'Internal error'; break; - case WebUIAttributionReport_Status.kProhibitedByBrowserPolicy: + case WebUIReport_Status.kProhibitedByBrowserPolicy: this.status = 'Prohibited by browser policy'; break; - case WebUIAttributionReport_Status.kNetworkError: + case WebUIReport_Status.kNetworkError: this.status = 'Network error'; break; - case WebUIAttributionReport_Status.kNoMatchingSourceFilterData: + case WebUIReport_Status.kNoMatchingSourceFilterData: this.status = 'Dropped due to no matching source filter data'; break; - case WebUIAttributionReport_Status.kFailedToAssemble: + case WebUIReport_Status.kFailedToAssemble: this.status = 'Dropped due to assembly failure'; break; - case WebUIAttributionReport_Status.kInsufficientAggregatableBudget: + case WebUIReport_Status.kInsufficientAggregatableBudget: this.status = 'Dropped due to insufficient aggregatable budget'; break; } } } -/** @extends {Report<!AttributionReportEventLevelID>} */ +/** @extends {Report<!EventLevelReportID>} */ class EventLevelReport extends Report { /** - * @param {!WebUIAttributionReport} mojo + * @param {!WebUIReport} mojo */ constructor(mojo) { super(mojo, mojo.data.eventLevelData.id); @@ -623,10 +623,10 @@ } } -/** @extends {Report<!AttributionReportAggregatableAttributionID>} */ +/** @extends {Report<!AggregatableAttributionReportID>} */ class AggregatableAttributionReport extends Report { /** - * @param {!WebUIAttributionReport} mojo + * @param {!WebUIReport} mojo */ constructor(mojo) { super(mojo, mojo.data.aggregatableAttributionData.id); @@ -740,7 +740,7 @@ } } -/** @extends {ReportTableModel<!AttributionReportEventLevelID>} */ +/** @extends {ReportTableModel<!EventLevelReportID>} */ class EventLevelReportTableModel extends ReportTableModel { /** * @param {!Element} showDebugReportsContainer @@ -765,7 +765,7 @@ } } -/** @extends {ReportTableModel<!AttributionReportAggregatableAttributionID>} */ +/** @extends {ReportTableModel<!AggregatableAttributionReportID>} */ class AggregatableAttributionReportTableModel extends ReportTableModel { /** * @param {!Element} showDebugReportsContainer @@ -825,15 +825,15 @@ } /** - * Converts a mojo AttributionSourceType into a user-readable string. - * @param {AttributionSourceType} sourceType Source type to convert + * Converts a mojo SourceType into a user-readable string. + * @param {SourceType} sourceType Source type to convert * @return {string} */ function SourceTypeToText(sourceType) { switch (sourceType) { - case AttributionSourceType.kNavigation: + case SourceType.kNavigation: return 'Navigation'; - case AttributionSourceType.kEvent: + case SourceType.kEvent: return 'Event'; default: return sourceType.toString(); @@ -842,28 +842,28 @@ /** * Converts a mojo Attributability into a user-readable string. - * @param {WebUIAttributionSource_Attributability} attributability + * @param {WebUISource_Attributability} attributability * Attributability to convert * @return {string} */ function AttributabilityToText(attributability) { switch (attributability) { - case WebUIAttributionSource_Attributability.kAttributable: + case WebUISource_Attributability.kAttributable: return 'Attributable'; - case WebUIAttributionSource_Attributability.kNoised: + case WebUISource_Attributability.kNoised: return 'Unattributable: noised'; - case WebUIAttributionSource_Attributability.kReplacedByNewerSource: + case WebUISource_Attributability.kReplacedByNewerSource: return 'Unattributable: replaced by newer source'; - case WebUIAttributionSource_Attributability.kReachedEventLevelAttributionLimit: + case WebUISource_Attributability.kReachedEventLevelAttributionLimit: return 'Attributable: reached event-level attribution limit'; - case WebUIAttributionSource_Attributability.kInternalError: + case WebUISource_Attributability.kInternalError: return 'Rejected: internal error'; - case WebUIAttributionSource_Attributability.kInsufficientSourceCapacity: + case WebUISource_Attributability.kInsufficientSourceCapacity: return 'Rejected: insufficient source capacity'; - case WebUIAttributionSource_Attributability + case WebUISource_Attributability .kInsufficientUniqueDestinationCapacity: return 'Rejected: insufficient unique destination capacity'; - case WebUIAttributionSource_Attributability.kExcessiveReportingOrigins: + case WebUISource_Attributability.kExcessiveReportingOrigins: return 'Rejected: excessive reporting origins'; default: return attributability.toString(); @@ -891,8 +891,8 @@ }); updateSources(); - updateReports(AttributionReportType.kEventLevel); - updateReports(AttributionReportType.kAggregatableAttribution); + updateReports(ReportType.kEventLevel); + updateReports(ReportType.kAggregatableAttribution); } function updateSources() { @@ -903,18 +903,18 @@ } /** - * @param {!AttributionReportType} reportType + * @param {!ReportType} reportType */ function updateReports(reportType) { pageHandler.getReports(reportType).then((response) => { switch (reportType) { - case AttributionReportType.kEventLevel: + case ReportType.kEventLevel: eventLevelReportTableModel.setStoredReports( response.reports .filter((mojo) => mojo.data.eventLevelData !== undefined) .map((mojo) => new EventLevelReport(mojo))); break; - case AttributionReportType.kAggregatableAttribution: + case ReportType.kAggregatableAttribution: aggregatableAttributionReportTableModel.setStoredReports( response.reports .filter( @@ -983,7 +983,7 @@ } /** - * @param {!WebUIAttributionReport} mojo + * @param {!WebUIReport} mojo */ function addSentOrDroppedReport(mojo) { if (mojo.data.eventLevelData !== undefined) { @@ -995,7 +995,7 @@ } } -/** @implements {AttributionInternalsObserverInterface} */ +/** @implements {ObserverInterface} */ class Observer { /** @override */ onSourcesChanged() { @@ -1060,7 +1060,7 @@ getRequiredElement('aggregatable-report-table-wrapper'), aggregatableAttributionReportTableModel); - const receiver = new AttributionInternalsObserverReceiver(new Observer()); + const receiver = new ObserverReceiver(new Observer()); pageHandler.addObserver(receiver.$.bindNewPipeAndPassRemote()); updatePageData();
diff --git a/content/browser/screen_enumeration/OWNERS b/content/browser/screen_enumeration/OWNERS index 7bc43361..0d5ee7a6 100644 --- a/content/browser/screen_enumeration/OWNERS +++ b/content/browser/screen_enumeration/OWNERS
@@ -2,4 +2,4 @@ msw@chromium.org # Secondary -pwnall@chromium.org +jsbell@chromium.org
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc index 376fd8d4..a37a90c 100644 --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc
@@ -73,6 +73,7 @@ #include "content/browser/loader/prefetch_url_loader_service.h" #include "content/browser/locks/lock_manager.h" #include "content/browser/native_io/native_io_context_impl.h" +#include "content/browser/navigation_or_document_handle.h" #include "content/browser/network_context_client_base_impl.h" #include "content/browser/notifications/platform_notification_context_impl.h" #include "content/browser/payments/payment_app_context_impl.h" @@ -80,6 +81,7 @@ #include "content/browser/push_messaging/push_messaging_context.h" #include "content/browser/quota/quota_context.h" #include "content/browser/renderer_host/frame_tree_node.h" +#include "content/browser/renderer_host/navigation_request.h" #include "content/browser/service_worker/service_worker_container_host.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" #include "content/browser/shared_storage/shared_storage_worklet_host_manager.h" @@ -434,16 +436,9 @@ // Returns the WebContents corresponding to `context`. WebContents* GetWebContents( StoragePartitionImpl::URLLoaderNetworkContext context) { - switch (context.type()) { - case Type::kRenderFrameHostContext: { - return WebContents::FromRenderFrameHost( - RenderFrameHostImpl::FromID(context.render_frame_host_id())); - } - case Type::kNavigationRequestContext: - return WebContents::FromFrameTreeNodeId(context.frame_tree_node_id()); - } - NOTREACHED(); - return nullptr; + if (!context.navigation_or_document()) + return nullptr; + return context.navigation_or_document()->GetWebContents(); } // LoginHandlerDelegate manages HTTP auth. It is self-owning and deletes itself @@ -568,16 +563,11 @@ // Returns true if the request is the primary main frame navigation. bool IsPrimaryMainFrameRequest( - StoragePartitionImpl::URLLoaderNetworkContext context) { + const StoragePartitionImpl::URLLoaderNetworkContext& context) { if (!context.IsNavigationRequestContext()) return false; - auto* frame_tree_node = - FrameTreeNode::GloballyFindByID(context.frame_tree_node_id()); - // TODO(1254377): Consider replacing FrameTree::Type with the type on the - // FrameTreeNode. - return frame_tree_node && frame_tree_node->IsMainFrame() && - frame_tree_node->frame_tree()->type() == FrameTree::Type::kPrimary; + return context.navigation_or_document()->IsInPrimaryMainFrame(); } // This class lives on the UI thread. It is self-owned and will delete itself @@ -655,27 +645,26 @@ client_cert_responder->CancelRequest(); } -// Cancels prerendering if `frame_tree_node_id` is in a prerendered frame tree, -// using `final_status` as the cancellation reason. Returns true if cancelled. -bool CancelIfPrerendering(int frame_tree_node_id, - PrerenderHost::FinalStatus final_status) { - auto* frame_tree_node = FrameTreeNode::GloballyFindByID(frame_tree_node_id); - if (!frame_tree_node) - return false; - auto* web_contents = WebContentsImpl::FromFrameTreeNode(frame_tree_node); - return web_contents->CancelPrerendering(frame_tree_node, final_status); -} - -// Cancels prerendering if `render_frame_host_id` is in a prerendered frame +// Cancels prerendering if `navigation_or_document` is in a prerendered frame // tree, using `final_status` as the cancellation reason. Returns true if // cancelled. -bool CancelIfPrerendering(GlobalRenderFrameHostId render_frame_host_id, +bool CancelIfPrerendering(NavigationOrDocumentHandle* navigation_or_document, PrerenderHost::FinalStatus final_status) { - auto* render_frame_host_impl = - RenderFrameHostImpl::FromID(render_frame_host_id); - if (!render_frame_host_impl) + FrameTreeNode* frame_tree_node = nullptr; + // `navigation_or_document` can be null for `kServiceWorkerContext`. + if (!navigation_or_document) return false; - return render_frame_host_impl->CancelPrerendering(final_status); + auto* navigation_request = navigation_or_document->GetNavigationRequest(); + if (navigation_request) + frame_tree_node = navigation_request->frame_tree_node(); + auto* render_frame_host = navigation_or_document->GetDocument(); + if (render_frame_host) + frame_tree_node = FrameTreeNode::From(render_frame_host); + if (!frame_tree_node) + return false; + + auto* web_contents = WebContentsImpl::FromFrameTreeNode(frame_tree_node); + return web_contents->CancelPrerendering(frame_tree_node, final_status); } void OnCertificateRequestedContinuation( @@ -1807,13 +1796,14 @@ render_frame_host_impl->IsInPrimaryMainFrame(); } } else { - // Overwrite the context; set `type` to kNavigationRequestContext - // which indicates that `frame_tree_node_id` is actually a - // FrameTreeNode ID. + // Overwrite the context; set `type` to kNavigationRequestContext. // TODO(https://crbug.com/1239554): Optimize locating logic. - context = URLLoaderNetworkContext::CreateForNavigation( + int frame_tree_node_id = container_host->GetFrameTreeNodeIdForOngoingNavigation( - base::PassKey<StoragePartitionImpl>())); + base::PassKey<StoragePartitionImpl>()); + context = URLLoaderNetworkContext::CreateForNavigation( + *(FrameTreeNode::GloballyFindByID(frame_tree_node_id) + ->navigation_request())); } } } @@ -1822,14 +1812,8 @@ // If the request is for a prerendering page, prerendering should be cancelled // because the embedder may show UI for auth requests, and it's unsuitable for // a hidden page. - if (context.IsNavigationRequestContext()) { - if (CancelIfPrerendering(context.frame_tree_node_id(), - PrerenderHost::FinalStatus::kLoginAuthRequested)) { - return; - } - } else if (CancelIfPrerendering( - context.render_frame_host_id(), - PrerenderHost::FinalStatus::kLoginAuthRequested)) { + if (CancelIfPrerendering(context.navigation_or_document(), + PrerenderHost::FinalStatus::kLoginAuthRequested)) { return; } @@ -1838,15 +1822,17 @@ auto web_contents_getter = base::BindRepeating(GetWebContents, context); int process_id; switch (context.type()) { - case URLLoaderNetworkContext::Type::kRenderFrameHostContext: - process_id = context.render_frame_host_id().child_id; + case URLLoaderNetworkContext::Type::kRenderFrameHostContext: { + auto* render_frame_host = context.navigation_or_document()->GetDocument(); + DCHECK(render_frame_host); + process_id = render_frame_host->GetGlobalId().child_id; break; + } case URLLoaderNetworkContext::Type::kNavigationRequestContext: + case URLLoaderNetworkContext::Type::kServiceWorkerContext: { process_id = network::mojom::kBrowserProcessId; break; - default: - NOTREACHED(); - break; + } } OnAuthRequiredContinuation( process_id, request_id, url, *is_primary_main_frame, first_auth_attempt, @@ -1882,14 +1868,14 @@ context = URLLoaderNetworkContext::CreateForRenderFrameHost( render_frame_host_id); } else { - // Overwrite the render_frame_host_id; set - // `render_frame_host_id.child_id` to kBrowserProcessId which - // indicates that `render_frame_host_id.frame_routing_id` is actually - // a FrameTreeNode ID. + // Overwrite the context; set `type` to kNavigationRequestContext. // TODO(https://crbug.com/1239554): Optimize locating logic. - context = URLLoaderNetworkContext::CreateForNavigation( + int frame_tree_node_id = container_host->GetFrameTreeNodeIdForOngoingNavigation( - base::PassKey<StoragePartitionImpl>())); + base::PassKey<StoragePartitionImpl>()); + context = URLLoaderNetworkContext::CreateForNavigation( + *(FrameTreeNode::GloballyFindByID(frame_tree_node_id) + ->navigation_request())); } } } @@ -1898,16 +1884,8 @@ // If the request is for a prerendering page, prerendering should be cancelled // because the embedder may show a dialog and ask users to select client // certificates, and it's unsuitable for a hidden page. - if (context.IsNavigationRequestContext()) { - if (CancelIfPrerendering( - context.frame_tree_node_id(), - PrerenderHost::FinalStatus::kClientCertRequested)) { - CallCancelRequest(std::move(cert_responder)); - return; - } - } else if (CancelIfPrerendering( - context.render_frame_host_id(), - PrerenderHost::FinalStatus::kClientCertRequested)) { + if (CancelIfPrerendering(context.navigation_or_document(), + PrerenderHost::FinalStatus::kClientCertRequested)) { CallCancelRequest(std::move(cert_responder)); return; } @@ -1926,33 +1904,13 @@ URLLoaderNetworkContext context = url_loader_network_observers_.current_context(); - if (context.IsNavigationRequestContext()) { - // The remote end of this URLLoaderNetworkServiceObserver pipe was created - // for NavigationRequest, see - // `CreateURLLoaderNetworkObserverForNavigationRequest`. - - // Cancel this request and the prerendering if the request is for a - // prerendering page, because prerendering pages are invisble and browser - // cannot show errors on invisible pages. - if (CancelIfPrerendering( - context.frame_tree_node_id(), - PrerenderHost::FinalStatus::kSslCertificateError)) { - std::move(response).Run(net_error); - return; - } - } else { - // The remote end of this URLLoaderNetworkServiceObserver pipe was created - // for Frame, see `CreateURLLoaderNetworkObserverForFrame`. - - // Cancel this request and the prerendering if the request is for a - // prerendering page, because prerendering pages are invisble and browser - // cannot show errors on invisible pages. - if (CancelIfPrerendering( - context.render_frame_host_id(), - PrerenderHost::FinalStatus::kSslCertificateError)) { - std::move(response).Run(net_error); - return; - } + // Cancel this request and the prerendering if the request is for a + // prerendering page, because prerendering pages are invisible and browser + // cannot show errors on invisible pages. + if (CancelIfPrerendering(context.navigation_or_document(), + PrerenderHost::FinalStatus::kSslCertificateError)) { + std::move(response).Run(net_error); + return; } SSLErrorDelegate* delegate = @@ -1981,11 +1939,19 @@ int64_t sent_bytes) { URLLoaderNetworkContext context = url_loader_network_observers_.current_context(); + // `navigation_or_document()` can be null for `kServiceWorkerContext`. + auto* render_frame_host = + context.navigation_or_document() + ? context.navigation_or_document()->GetDocument() + : nullptr; // It can pass empty GlobalRenderFrameHostId() when the context type is - // `kNavigationRequestContext`. + // not `kRenderFrameHostContext`. + GlobalRenderFrameHostId render_frame_host_id = + render_frame_host ? render_frame_host->GetGlobalId() + : GlobalRenderFrameHostId(); GetContentClient()->browser()->OnNetworkServiceDataUseUpdate( - context.render_frame_host_id(), network_traffic_annotation_id_hash, - recv_bytes, sent_bytes); + render_frame_host_id, network_traffic_annotation_id_hash, recv_bytes, + sent_bytes); } void StoragePartitionImpl::Clone( @@ -2009,11 +1975,11 @@ mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> StoragePartitionImpl::CreateURLLoaderNetworkObserverForNavigationRequest( - int frame_tree_id) { + NavigationRequest& navigation_request) { mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> remote; url_loader_network_observers_.Add( this, remote.InitWithNewPipeAndPassReceiver(), - URLLoaderNetworkContext::CreateForNavigation(frame_tree_id)); + URLLoaderNetworkContext::CreateForNavigation(navigation_request)); return remote; } @@ -2022,8 +1988,7 @@ mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> remote; url_loader_network_observers_.Add( this, remote.InitWithNewPipeAndPassReceiver(), - URLLoaderNetworkContext::CreateForNavigation( - RenderFrameHost::kNoFrameTreeNodeId)); + URLLoaderNetworkContext::CreateForServiceWorker()); return remote; } @@ -3012,11 +2977,30 @@ StoragePartitionImpl::URLLoaderNetworkContext::URLLoaderNetworkContext( URLLoaderNetworkContext::Type type, - GlobalRenderFrameHostId render_frame_host_id, - int frame_tree_node_id) - : type_(type), - render_frame_host_id_(render_frame_host_id), - frame_tree_node_id_(frame_tree_node_id) {} + GlobalRenderFrameHostId render_frame_host_id) + : type_(type) { + // `render_frame_host_id` can be invalid for `kServiceWorkerContext`. + if (!render_frame_host_id) + return; + auto* render_frame_host = RenderFrameHostImpl::FromID(render_frame_host_id); + if (!render_frame_host) + return; + + navigation_or_document_ = render_frame_host->GetNavigationOrDocumentHandle(); +} + +StoragePartitionImpl::URLLoaderNetworkContext::URLLoaderNetworkContext( + NavigationRequest& navigation_request) + : type_(Type::kNavigationRequestContext) { + navigation_or_document_ = navigation_request.navigation_or_document_handle(); +} + +StoragePartitionImpl::URLLoaderNetworkContext::URLLoaderNetworkContext( + const URLLoaderNetworkContext& other) = default; + +StoragePartitionImpl::URLLoaderNetworkContext& +StoragePartitionImpl::URLLoaderNetworkContext::operator=( + const URLLoaderNetworkContext& other) = default; StoragePartitionImpl::URLLoaderNetworkContext::~URLLoaderNetworkContext() = default; @@ -3024,21 +3008,26 @@ StoragePartitionImpl::URLLoaderNetworkContext StoragePartitionImpl::URLLoaderNetworkContext::CreateForRenderFrameHost( GlobalRenderFrameHostId render_frame_host_id) { - return URLLoaderNetworkContext( + return StoragePartitionImpl::URLLoaderNetworkContext( URLLoaderNetworkContext::Type::kRenderFrameHostContext, - render_frame_host_id, MSG_ROUTING_NONE); + render_frame_host_id); } StoragePartitionImpl::URLLoaderNetworkContext StoragePartitionImpl::URLLoaderNetworkContext::CreateForNavigation( - int frame_tree_node_id) { - return URLLoaderNetworkContext( - URLLoaderNetworkContext::Type::kNavigationRequestContext, - GlobalRenderFrameHostId(), frame_tree_node_id); + NavigationRequest& navigation_request) { + return StoragePartitionImpl::URLLoaderNetworkContext(navigation_request); } -bool StoragePartitionImpl::URLLoaderNetworkContext:: - IsNavigationRequestContext() { +StoragePartitionImpl::URLLoaderNetworkContext +StoragePartitionImpl::URLLoaderNetworkContext::CreateForServiceWorker() { + return StoragePartitionImpl::URLLoaderNetworkContext( + URLLoaderNetworkContext::Type::kServiceWorkerContext, + GlobalRenderFrameHostId()); +} + +bool StoragePartitionImpl::URLLoaderNetworkContext::IsNavigationRequestContext() + const { return type_ == URLLoaderNetworkContext::Type::kNavigationRequestContext; }
diff --git a/content/browser/storage_partition_impl.h b/content/browser/storage_partition_impl.h index 21d8dd5..3c8dcc7 100644 --- a/content/browser/storage_partition_impl.h +++ b/content/browser/storage_partition_impl.h
@@ -15,6 +15,8 @@ #include "base/files/file_path.h" #include "base/gtest_prod_util.h" #include "base/memory/raw_ptr.h" +#include "base/memory/ref_counted.h" +#include "base/memory/scoped_refptr.h" #include "base/memory/weak_ptr.h" #include "base/observer_list.h" #include "build/build_config.h" @@ -91,6 +93,7 @@ class QuotaContext; class SharedStorageWorkletHostManager; class SharedWorkerServiceImpl; +class NavigationOrDocumentHandle; class CONTENT_EXPORT StoragePartitionImpl : public StoragePartition, @@ -162,7 +165,7 @@ int routing_id) override; mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> CreateURLLoaderNetworkObserverForNavigationRequest( - int frame_tree_id) override; + NavigationRequest& navigation_request) override; storage::QuotaManager* GetQuotaManager() override; BackgroundSyncContextImpl* GetBackgroundSyncContext() override; storage::FileSystemContext* GetFileSystemContext() override; @@ -430,42 +433,51 @@ class URLLoaderNetworkContext { public: enum class Type { - // A network context for a RenderFrameHost. kRenderFrameHostContext, - // A network context for a navigation request or a service worker. kNavigationRequestContext, + kServiceWorkerContext, }; ~URLLoaderNetworkContext(); + // Allow copy and assign. + URLLoaderNetworkContext(const URLLoaderNetworkContext& other); + URLLoaderNetworkContext& operator=(const URLLoaderNetworkContext& other); + // Creates a URLLoaderNetworkContext for the render frame host. - static URLLoaderNetworkContext CreateForRenderFrameHost( + static StoragePartitionImpl::URLLoaderNetworkContext + CreateForRenderFrameHost( GlobalRenderFrameHostId global_render_frame_host_id); // Creates a URLLoaderNetworkContext for the navigation request. - static URLLoaderNetworkContext CreateForNavigation(int frame_tree_node_id); + static StoragePartitionImpl::URLLoaderNetworkContext CreateForNavigation( + NavigationRequest& navigation_request); + + // Creates a URLLoaderNetworkContext for the service worker. + static StoragePartitionImpl::URLLoaderNetworkContext + CreateForServiceWorker(); + + // Used when `type` is `kRenderFrameHostContext` or + // `kNavigationRequestContext`. + URLLoaderNetworkContext( + URLLoaderNetworkContext::Type type, + GlobalRenderFrameHostId global_render_frame_host_id); + + // Used when `type` is `kNavigationRequestContext`. + explicit URLLoaderNetworkContext(NavigationRequest& navigation_request); // Returns true if `type` is `kNavigationRequestContext`. - bool IsNavigationRequestContext(); + bool IsNavigationRequestContext() const; Type type() const { return type_; } - GlobalRenderFrameHostId render_frame_host_id() const { - return render_frame_host_id_; + NavigationOrDocumentHandle* navigation_or_document() const { + return navigation_or_document_.get(); } - int frame_tree_node_id() const { return frame_tree_node_id_; } - private: - URLLoaderNetworkContext(URLLoaderNetworkContext::Type type, - GlobalRenderFrameHostId global_render_frame_host_id, - int frame_tree_node_id); - Type type_; - // Used for kRenderFrameHostContext. - GlobalRenderFrameHostId render_frame_host_id_; - // Used for kNavigationRequestContext. - int frame_tree_node_id_; + scoped_refptr<NavigationOrDocumentHandle> navigation_or_document_; }; private:
diff --git a/content/public/browser/storage_partition.h b/content/public/browser/storage_partition.h index ea403e6e..c540150a 100644 --- a/content/public/browser/storage_partition.h +++ b/content/public/browser/storage_partition.h
@@ -75,6 +75,7 @@ class ServiceWorkerContext; class SharedWorkerService; class ZoomLevelDelegate; +class NavigationRequest; // Defines what persistent state a child process can access. // @@ -129,7 +130,7 @@ virtual mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> CreateURLLoaderNetworkObserverForNavigationRequest( - int frame_tree_node_id) = 0; + NavigationRequest& navigation_request) = 0; virtual storage::QuotaManager* GetQuotaManager() = 0; virtual BackgroundSyncContext* GetBackgroundSyncContext() = 0;
diff --git a/content/public/test/attribution_simulator.h b/content/public/test/attribution_simulator.h index 7b3f288..83d1b26 100644 --- a/content/public/test/attribution_simulator.h +++ b/content/public/test/attribution_simulator.h
@@ -48,6 +48,13 @@ AttributionReportTimeFormat report_time_format = AttributionReportTimeFormat::kSecondsSinceUnixEpoch; + + // If true, removes the `shared_info`, `aggregation_service_payloads` and + // `source_registration_time` fields from aggregatable reports before output. + // + // These fields normally encode a random GUID or the absolute time and + // therefore are sources of nondeterminism in the output. + bool remove_assembled_report = false; }; // Simulates the Attribution Reporting API for a single user on sources and
diff --git a/content/public/test/test_storage_partition.cc b/content/public/test/test_storage_partition.cc index ee6b865..03671024 100644 --- a/content/public/test/test_storage_partition.cc +++ b/content/public/test/test_storage_partition.cc
@@ -61,7 +61,7 @@ mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> TestStoragePartition::CreateURLLoaderNetworkObserverForNavigationRequest( - int frame_tree_id) { + NavigationRequest& navigation_request) { return mojo::NullRemote(); }
diff --git a/content/public/test/test_storage_partition.h b/content/public/test/test_storage_partition.h index ee02b9e..c705b63 100644 --- a/content/public/test/test_storage_partition.h +++ b/content/public/test/test_storage_partition.h
@@ -82,7 +82,7 @@ mojo::PendingRemote<network::mojom::URLLoaderNetworkServiceObserver> CreateURLLoaderNetworkObserverForNavigationRequest( - int frame_tree_id) override; + NavigationRequest& navigation_request) override; void set_quota_manager(storage::QuotaManager* manager) { quota_manager_ = manager;
diff --git a/content/renderer/media/media_factory.cc b/content/renderer/media/media_factory.cc index 65c8a52..36310a3d 100644 --- a/content/renderer/media/media_factory.cc +++ b/content/renderer/media/media_factory.cc
@@ -451,7 +451,7 @@ base::WeakPtr<media::MediaObserver> media_observer; auto factory_selector = CreateRendererFactorySelector( media_log.get(), url, render_frame_->GetRenderFrameMediaPlaybackOptions(), - GetDecoderFactory(), + GetDecoderFactory().get(), std::make_unique<blink::RemotePlaybackClientWrapperImpl>(client), &media_observer); @@ -796,33 +796,20 @@ return media_player_delegate_; } -media::DecoderFactory* MediaFactory::GetDecoderFactory() { +base::WeakPtr<media::DecoderFactory> MediaFactory::GetDecoderFactory() { if (!decoder_factory_) { + std::unique_ptr<media::DecoderFactory> external_decoder_factory; #if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) || BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER) media::mojom::InterfaceFactory* const interface_factory = GetMediaInterfaceFactory(); -#else - media::mojom::InterfaceFactory* const interface_factory = nullptr; -#endif - decoder_factory_ = CreateDecoderFactory(interface_factory); - } - - return decoder_factory_.get(); -} - -// static -std::unique_ptr<media::DefaultDecoderFactory> -MediaFactory::CreateDecoderFactory( - media::mojom::InterfaceFactory* interface_factory) { - std::unique_ptr<media::DecoderFactory> external_decoder_factory; -#if BUILDFLAG(ENABLE_MOJO_AUDIO_DECODER) || BUILDFLAG(ENABLE_MOJO_VIDEO_DECODER) - if (interface_factory) { external_decoder_factory = std::make_unique<media::MojoDecoderFactory>(interface_factory); - } #endif - return std::make_unique<media::DefaultDecoderFactory>( - std::move(external_decoder_factory)); + decoder_factory_ = std::make_unique<media::DefaultDecoderFactory>( + std::move(external_decoder_factory)); + } + + return decoder_factory_->GetWeakPtr(); } #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
diff --git a/content/renderer/media/media_factory.h b/content/renderer/media/media_factory.h index 06993b1..17b2dc1 100644 --- a/content/renderer/media/media_factory.h +++ b/content/renderer/media/media_factory.h
@@ -107,18 +107,8 @@ // client whose lifetime is tied to this Factory (same as the RenderFrame). blink::WebEncryptedMediaClient* EncryptedMediaClient(); - // Helper function so that RenderThreadImpl can create a DecoderFactory for - // WebRTC. Ideally, it would ask per-frame for a decoder factory, but that - // requires changing quite a bit about WebRTC initialization. - // - // TODO(crbug.com/1157149): RenderThreadImpl should not own these. Instead, - // ownership should be per-frame. In that case, this doesn't need to be here; - // RenderFrameImpl already has as whole MediaFactory instance. We'd just need - // to expose an instance method to get the decoder factory. - // - // `interface_factory` must outlive the returned DecoderFactory. - static std::unique_ptr<media::DefaultDecoderFactory> CreateDecoderFactory( - media::mojom::InterfaceFactory* interface_factory); + // Returns `DecoderFactory`, which can be used to created decoders in WebRTC. + base::WeakPtr<media::DecoderFactory> GetDecoderFactory(); private: std::unique_ptr<media::RendererFactorySelector> CreateRendererFactorySelector( @@ -143,8 +133,6 @@ // |media_player_delegate_| is NULL, one is created. media::RendererWebMediaPlayerDelegate* GetWebMediaPlayerDelegate(); - media::DecoderFactory* GetDecoderFactory(); - #if BUILDFLAG(ENABLE_MEDIA_REMOTING) media::mojom::RemoterFactory* GetRemoterFactory(); #endif
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index b30fa0d..448e5e6e 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -6206,6 +6206,10 @@ return frame_->Top()->GetSecurityOrigin(); } +base::WeakPtr<media::DecoderFactory> RenderFrameImpl::GetMediaDecoderFactory() { + return media_factory_.GetDecoderFactory(); +} + gfx::RectF RenderFrameImpl::ElementBoundsInWindow( const blink::WebElement& element) { return gfx::RectF(GetLocalRootWebFrameWidget()->BlinkSpaceToEnclosedDIPs(
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 20fa109..d8ffccc 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -757,6 +757,8 @@ send_content_state_immediately_ = value; } + base::WeakPtr<media::DecoderFactory> GetMediaDecoderFactory(); + protected: explicit RenderFrameImpl(CreateParams params);
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc index 4d443ca..6ee1859 100644 --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc
@@ -85,7 +85,6 @@ #include "content/renderer/effective_connection_type_helper.h" #include "content/renderer/media/gpu/gpu_video_accelerator_factories_impl.h" #include "content/renderer/media/media_factory.h" -#include "content/renderer/media/media_interface_factory.h" #include "content/renderer/media/render_media_client.h" #include "content/renderer/net_info_helper.h" #include "content/renderer/render_frame_proxy.h" @@ -1148,30 +1147,6 @@ return gpu_factories_.back().get(); } -media::DecoderFactory* RenderThreadImpl::GetMediaDecoderFactory() { - DCHECK(IsMainThread()); - - // Note that we don't reset this, ever. We instantiate it once and never reset - // it, even if the gpu process restarts. - if (media_decoder_factory_) - return media_decoder_factory_.get(); - - // MediaInterfaceFactory guarantees that the media::InterfaceFactory is - // accessed from the current (main) thread. - mojo::PendingRemote<media::mojom::InterfaceFactory> interface_factory; - BindHostReceiver(interface_factory.InitWithNewPipeAndPassReceiver()); - media_interface_factory_ = std::make_unique<MediaInterfaceFactory>( - base::ThreadTaskRunnerHandle::Get(), std::move(interface_factory)); - // TODO(liberato): Should destruction of `media_decoder_factory_` be posted - // to the media thread? I don't think it's needed, since it's owned by us - // rather than tied to a particular frame. Calls into it might happen on - // the media thread, but we own the media thread. - media_decoder_factory_ = - MediaFactory::CreateDecoderFactory(media_interface_factory_.get()); - - return media_decoder_factory_.get(); -} - scoped_refptr<viz::RasterContextProvider> RenderThreadImpl::GetVideoFrameCompositorContextProvider( scoped_refptr<viz::RasterContextProvider> unwanted_context_provider) {
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h index 5b4c46dea..6926885b 100644 --- a/content/renderer/render_thread_impl.h +++ b/content/renderer/render_thread_impl.h
@@ -80,7 +80,6 @@ } namespace media { -class DecoderFactory; class GpuVideoAcceleratorFactories; } @@ -98,7 +97,6 @@ class AgentSchedulingGroup; class CategorizedWorkerPool; class GpuVideoAcceleratorFactoriesImpl; -class MediaInterfaceFactory; class RenderFrameImpl; class RenderThreadObserver; class RendererBlinkPlatformImpl; @@ -300,7 +298,6 @@ SharedCompositorWorkerContextProvider(); media::GpuVideoAcceleratorFactories* GetGpuFactories(); - media::DecoderFactory* GetMediaDecoderFactory(); scoped_refptr<viz::ContextProviderCommandBuffer> SharedMainThreadContextProvider(); @@ -531,10 +528,6 @@ // NOTE(dcastagna): At worst this accumulates a few bytes per context lost. std::vector<std::unique_ptr<GpuVideoAcceleratorFactoriesImpl>> gpu_factories_; - // Utility classes to allow WebRTC to create video decoders. - std::unique_ptr<MediaInterfaceFactory> media_interface_factory_; - std::unique_ptr<media::DecoderFactory> media_decoder_factory_; - // Thread for running multimedia operations (e.g., video decoding). std::unique_ptr<base::Thread> media_thread_;
diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer/renderer_blink_platform_impl.cc index ec8318c00..dbde070 100644 --- a/content/renderer/renderer_blink_platform_impl.cc +++ b/content/renderer/renderer_blink_platform_impl.cc
@@ -1069,10 +1069,12 @@ return render_thread->GetMediaThreadTaskRunner(); } -media::DecoderFactory* RendererBlinkPlatformImpl::GetMediaDecoderFactory() { - auto* render_thread = RenderThreadImpl::current(); - DCHECK(!!render_thread); - return render_thread->GetMediaDecoderFactory(); +base::WeakPtr<media::DecoderFactory> +RendererBlinkPlatformImpl::GetMediaDecoderFactory() { + blink::WebLocalFrame* const web_frame = + blink::WebLocalFrame::FrameForCurrentContext(); + RenderFrameImpl* render_frame = RenderFrameImpl::FromWebFrame(web_frame); + return render_frame->GetMediaDecoderFactory(); } void RendererBlinkPlatformImpl::SetRenderingColorSpace(
diff --git a/content/renderer/renderer_blink_platform_impl.h b/content/renderer/renderer_blink_platform_impl.h index 8cbfe0a..e7d0d3e7 100644 --- a/content/renderer/renderer_blink_platform_impl.h +++ b/content/renderer/renderer_blink_platform_impl.h
@@ -248,7 +248,7 @@ bool is_on_worker) override; media::GpuVideoAcceleratorFactories* GetGpuFactories() override; scoped_refptr<base::SingleThreadTaskRunner> MediaThreadTaskRunner() override; - media::DecoderFactory* GetMediaDecoderFactory() override; + base::WeakPtr<media::DecoderFactory> GetMediaDecoderFactory() override; void SetRenderingColorSpace(const gfx::ColorSpace& color_space) override; gfx::ColorSpace GetRenderingColorSpace() const override; void SetActiveURL(const blink::WebURL& url,
diff --git a/content/test/attribution_simulator_impl.cc b/content/test/attribution_simulator_impl.cc index 0e66469..412f39b 100644 --- a/content/test/attribution_simulator_impl.cc +++ b/content/test/attribution_simulator_impl.cc
@@ -10,6 +10,7 @@ #include <utility> #include <vector> +#include "base/check.h" #include "base/files/file_path.h" #include "base/memory/raw_ptr.h" #include "base/ranges/algorithm.h" @@ -20,6 +21,9 @@ #include "base/time/time.h" #include "base/time/time_to_iso8601.h" #include "base/values.h" +#include "content/browser/aggregation_service/aggregation_service_features.h" +#include "content/browser/aggregation_service/aggregation_service_impl.h" +#include "content/browser/aggregation_service/aggregation_service_test_utils.h" #include "content/browser/attribution_reporting/attribution_cookie_checker.h" #include "content/browser/attribution_reporting/attribution_default_random_generator.h" #include "content/browser/attribution_reporting/attribution_insecure_random_generator.h" @@ -84,15 +88,21 @@ class SentReportAccumulator : public AttributionReportSender { public: - SentReportAccumulator(base::Value::ListStorage& reports, - base::Value::ListStorage& debug_reports, + SentReportAccumulator(base::Value::ListStorage& event_level_reports, + base::Value::ListStorage& debug_event_level_reports, + base::Value::ListStorage& aggregatable_reports, + base::Value::ListStorage& debug_aggregatable_reports, bool remove_report_ids, - AttributionReportTimeFormat report_time_format) + AttributionReportTimeFormat report_time_format, + bool remove_assembled_report) : time_origin_(base::Time::Now()), remove_report_ids_(remove_report_ids), report_time_format_(report_time_format), - reports_(reports), - debug_reports_(debug_reports) {} + remove_assembled_report_(remove_assembled_report), + event_level_reports_(event_level_reports), + debug_event_level_reports_(debug_event_level_reports), + aggregatable_reports_(aggregatable_reports), + debug_aggregatable_reports_(debug_aggregatable_reports) {} ~SentReportAccumulator() override = default; @@ -107,16 +117,18 @@ void SendReport(AttributionReport report, bool is_debug_report, ReportSentCallback sent_callback) override { - // TODO(linnan): Support aggregatable reports in the simulator. - if (!absl::holds_alternative<AttributionReport::EventLevelData>( - report.data())) { - return; - } - base::Value report_body = report.ReportBody(); if (remove_report_ids_) report_body.RemoveKey("report_id"); + if (remove_assembled_report_ && + absl::holds_alternative<AttributionReport::AggregatableAttributionData>( + report.data())) { + report_body.RemoveKey("shared_info"); + report_body.RemoveKey("aggregation_service_payloads"); + report_body.RemoveKey("source_registration_time"); + } + base::DictionaryValue value; value.SetKey("report", std::move(report_body)); value.SetStringKey("report_url", report.ReportURL(is_debug_report).spec()); @@ -134,17 +146,45 @@ break; } + base::Value::ListStorage* reports; + base::DictionaryValue test_info; - test_info.SetBoolKey("randomized_trigger", - report.attribution_info().source.attribution_logic() == - StoredSource::AttributionLogic::kFalsely); + if (absl::holds_alternative<AttributionReport::EventLevelData>( + report.data())) { + test_info.SetBoolKey( + "randomized_trigger", + report.attribution_info().source.attribution_logic() == + StoredSource::AttributionLogic::kFalsely); + + reports = + is_debug_report ? &debug_event_level_reports_ : &event_level_reports_; + } else { + auto* aggregatable_data = + absl::get_if<AttributionReport::AggregatableAttributionData>( + &report.data()); + DCHECK(aggregatable_data); + auto list = std::make_unique<base::ListValue>(); + for (const auto& contribution : aggregatable_data->contributions) { + auto dict = std::make_unique<base::DictionaryValue>(); + // TODO(linnan): Replacing with 128-bit value string. + dict->SetString( + "key_high_bits", + base::NumberToString(absl::Uint128High64(contribution.key()))); + dict->SetString( + "key_low_bits", + base::NumberToString(absl::Uint128Low64(contribution.key()))); + dict->SetString("value", base::NumberToString(contribution.value())); + + list->Append(std::move(dict)); + } + test_info.SetList("histograms", std::move(list)); + + reports = is_debug_report ? &debug_aggregatable_reports_ + : &aggregatable_reports_; + } value.SetKey("test_info", std::move(test_info)); - if (is_debug_report) { - debug_reports_.push_back(std::move(value)); - } else { - reports_.push_back(std::move(value)); - } + reports->push_back(std::move(value)); std::move(sent_callback) .Run(std::move(report), SendResult(SendResult::Status::kSent, @@ -154,8 +194,11 @@ const base::Time time_origin_; const bool remove_report_ids_; const AttributionReportTimeFormat report_time_format_; - base::Value::ListStorage& reports_; - base::Value::ListStorage& debug_reports_; + const bool remove_assembled_report_; + base::Value::ListStorage& event_level_reports_; + base::Value::ListStorage& debug_event_level_reports_; + base::Value::ListStorage& aggregatable_reports_; + base::Value::ListStorage& debug_aggregatable_reports_; }; // Registers sources and triggers in the `AttributionManagerImpl` and records @@ -227,13 +270,13 @@ // TODO(linnan): Support aggregatable reports in the simulator. - std::stringstream reason; + std::stringstream event_level_reason; switch (result.event_level_status()) { case AttributionTrigger::EventLevelResult::kSuccess: case AttributionTrigger::EventLevelResult::kSuccessDroppedLowerPriority: // TODO(apaseltiner): Consider surfacing reports dropped due to // prioritization. - return; + break; case AttributionTrigger::EventLevelResult::kInternalError: case AttributionTrigger::EventLevelResult:: kNoCapacityForConversionDestination: @@ -244,12 +287,45 @@ case AttributionTrigger::EventLevelResult::kDroppedForNoise: case AttributionTrigger::EventLevelResult::kExcessiveReportingOrigins: case AttributionTrigger::EventLevelResult::kNoMatchingSourceFilterData: - reason << result.event_level_status(); + event_level_reason << result.event_level_status(); break; } + std::stringstream aggregatable_reason; + switch (result.aggregatable_status()) { + case AttributionTrigger::AggregatableResult::kSuccess: + case AttributionTrigger::AggregatableResult::kNotRegistered: + break; + case AttributionTrigger::AggregatableResult::kInternalError: + case AttributionTrigger::AggregatableResult:: + kNoCapacityForConversionDestination: + case AttributionTrigger::AggregatableResult::kNoMatchingImpressions: + case AttributionTrigger::AggregatableResult::kExcessiveAttributions: + case AttributionTrigger::AggregatableResult::kExcessiveReportingOrigins: + case AttributionTrigger::AggregatableResult::kInsufficientBudget: + case AttributionTrigger::AggregatableResult::kNoMatchingSourceFilterData: + case AttributionTrigger::AggregatableResult::kNoHistograms: + aggregatable_reason << result.aggregatable_status(); + break; + } + + std::string event_level_reason_str = event_level_reason.str(); + std::string aggregatable_reason_str = aggregatable_reason.str(); + + if (event_level_reason_str.empty() && aggregatable_reason_str.empty()) + return; + base::DictionaryValue dict; - dict.SetStringKey("reason", reason.str()); + if (!event_level_reason_str.empty()) { + dict.SetStringKey("event_level_reason", + std::move(event_level_reason_str)); + } + + if (!aggregatable_reason_str.empty()) { + dict.SetStringKey("aggregatable_reason", + std::move(aggregatable_reason_str)); + } + dict.SetKey("trigger", std::move(input_value)); rejected_triggers_.push_back(std::move(dict)); @@ -299,8 +375,13 @@ rng = std::make_unique<AttributionDefaultRandomGenerator>(); } - base::Value::ListStorage reports; - base::Value::ListStorage debug_reports; + base::Value::ListStorage event_level_reports; + base::Value::ListStorage debug_event_level_reports; + base::Value::ListStorage aggregatable_reports; + base::Value::ListStorage debug_aggregatable_reports; + + auto* storage_partition = static_cast<StoragePartitionImpl*>( + browser_context.GetDefaultStoragePartition()); auto manager = AttributionManagerImpl::CreateForTesting( user_data_directory, @@ -309,46 +390,58 @@ options.noise_mode, options.delay_mode, std::move(rng), options.randomized_response_rates), std::make_unique<AlwaysSetCookieChecker>(), - std::make_unique<SentReportAccumulator>(reports, debug_reports, - options.remove_report_ids, - options.report_time_format), - static_cast<StoragePartitionImpl*>( - browser_context.GetDefaultStoragePartition())); + std::make_unique<SentReportAccumulator>( + event_level_reports, debug_event_level_reports, aggregatable_reports, + debug_aggregatable_reports, options.remove_report_ids, + options.report_time_format, options.remove_assembled_report), + storage_partition); base::Value::ListStorage rejected_sources; base::Value::ListStorage rejected_triggers; AttributionEventHandler handler(manager.get(), rejected_sources, rejected_triggers); + storage_partition->GetAggregationService()->SetPublicKeysForTesting( + GURL(kPrivacySandboxAggregationServiceTrustedServerUrlParam.Get()), + PublicKeyset({aggregation_service::GenerateKey().public_key}, + /*fetch_time=*/base::Time::Now(), + /*expiry_time=*/base::Time::Max())); + for (auto& event : *events) { task_environment.FastForwardBy(GetEventTime(event) - base::Time::Now()); handler.Handle(std::move(event)); } - absl::optional<base::Time> last_report_time; + std::vector<AttributionReport> pending_reports = + GetAttributionReportsForTesting(manager.get(), + /*max_report_time=*/base::Time::Max()); - base::RunLoop loop; - manager->GetPendingReportsForInternalUse( - AttributionReport::ReportType::kEventLevel, - base::BindLambdaForTesting([&](std::vector<AttributionReport> reports) { - if (!reports.empty()) { - last_report_time = base::ranges::max(reports, /*comp=*/{}, - &AttributionReport::report_time) - .report_time(); - } - - loop.Quit(); - })); - - loop.Run(); - if (last_report_time.has_value()) - task_environment.FastForwardBy(*last_report_time - base::Time::Now()); + if (!pending_reports.empty()) { + base::Time last_report_time = + base::ranges::max(pending_reports, /*comp=*/{}, + &AttributionReport::report_time) + .report_time(); + task_environment.FastForwardBy(last_report_time - base::Time::Now()); + } base::Value output(base::Value::Type::DICTIONARY); - output.SetKey("reports", base::Value(std::move(reports))); + output.SetKey("event_level_reports", + base::Value(std::move(event_level_reports))); - if (!debug_reports.empty()) - output.SetKey("debug_reports", base::Value(std::move(debug_reports))); + if (!debug_event_level_reports.empty()) { + output.SetKey("debug_event_level_reports", + base::Value(std::move(debug_event_level_reports))); + } + + if (!aggregatable_reports.empty()) { + output.SetKey("aggregatable_reports", + base::Value(std::move(aggregatable_reports))); + } + + if (!debug_aggregatable_reports.empty()) { + output.SetKey("debug_aggregatable_reports", + base::Value(std::move(debug_aggregatable_reports))); + } if (!rejected_sources.empty()) output.SetKey("rejected_sources", base::Value(std::move(rejected_sources)));
diff --git a/content/test/attribution_simulator_impl_unittest.cc b/content/test/attribution_simulator_impl_unittest.cc index fd298b7d..332c9b20 100644 --- a/content/test/attribution_simulator_impl_unittest.cc +++ b/content/test/attribution_simulator_impl_unittest.cc
@@ -119,6 +119,7 @@ .delay_mode = AttributionDelayMode::kDefault, .remove_report_ids = true, .report_time_format = AttributionReportTimeFormat::kSecondsSinceUnixEpoch, + .remove_assembled_report = true, }; const base::FilePath options_path = OptionsPath(input_path);
diff --git a/content/test/data/attribution_reporting/simulator/basic.output.json b/content/test/data/attribution_reporting/simulator/basic.output.json index 1a71e61..4d0d387a 100644 --- a/content/test/data/attribution_reporting/simulator/basic.output.json +++ b/content/test/data/attribution_reporting/simulator/basic.output.json
@@ -1,5 +1,5 @@ { - "reports": [ + "event_level_reports": [ { "report": { "attribution_destination": "https://d.test",
diff --git a/content/test/data/attribution_reporting/simulator/basic_aggregatable.input.json b/content/test/data/attribution_reporting/simulator/basic_aggregatable.input.json new file mode 100644 index 0000000..dc05435b --- /dev/null +++ b/content/test/data/attribution_reporting/simulator/basic_aggregatable.input.json
@@ -0,0 +1,45 @@ +{ + "sources": [ + { + "source_time": 1643235573, + "source_origin": "https://s.test", + "reporting_origin": "https://r.test", + "source_type": "navigation", + "registration_config": { + "destination": "https://d.test", + "source_event_id": "123", + "aggregatable_source": [ + { + "key_id": "a", + "key_piece": "0x159" + } + ] + } + } + ], + "triggers": [ + { + "trigger_time": 1643235574, + "reporting_origin": "https://r.test", + "destination": "https://d.test", + "registration_config": { + "event_triggers": [ + { + "trigger_data": "7" + } + ], + "aggregatable_trigger": { + "trigger_data": [ + { + "source_keys": ["a"], + "key_piece": "0x400" + } + ], + "values": { + "a": 123 + } + } + } + } + ] +}
diff --git a/content/test/data/attribution_reporting/simulator/basic_aggregatable.options.json b/content/test/data/attribution_reporting/simulator/basic_aggregatable.options.json new file mode 100644 index 0000000..86c7850 --- /dev/null +++ b/content/test/data/attribution_reporting/simulator/basic_aggregatable.options.json
@@ -0,0 +1,3 @@ +{ + "noise_seed": "0x3" +}
diff --git a/content/test/data/attribution_reporting/simulator/basic_aggregatable.output.json b/content/test/data/attribution_reporting/simulator/basic_aggregatable.output.json new file mode 100644 index 0000000..8ac228c8 --- /dev/null +++ b/content/test/data/attribution_reporting/simulator/basic_aggregatable.output.json
@@ -0,0 +1,37 @@ +{ + "aggregatable_reports": [ + { + "report": { + "attribution_destination": "https://d.test", + "source_site": "https://s.test" + }, + "report_time": 1643235574, + "report_url": "https://r.test/.well-known/attribution-reporting/report-aggregate-attribution", + "test_info": { + "histograms": [ + { + "key_high_bits": "0", + "key_low_bits": "1369", + "value": "123" + } + ] + } + } + ], + "event_level_reports": [ + { + "report": { + "attribution_destination": "https://d.test", + "randomized_trigger_rate": 0.0024, + "source_event_id": "123", + "source_type": "navigation", + "trigger_data": "7" + }, + "report_time": 1643408373, + "report_url": "https://r.test/.well-known/attribution-reporting/report-event-attribution", + "test_info": { + "randomized_trigger": false + } + } + ] +}
diff --git a/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json b/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json index 07bc823..9e4a88e 100644 --- a/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json +++ b/content/test/data/attribution_reporting/simulator/basic_iso8601.output.json
@@ -1,5 +1,5 @@ { - "reports": [ + "event_level_reports": [ { "report": { "attribution_destination": "https://d.test",
diff --git a/content/test/data/attribution_reporting/simulator/debug.output.json b/content/test/data/attribution_reporting/simulator/debug.output.json index 0fa81a9..8edee0f 100644 --- a/content/test/data/attribution_reporting/simulator/debug.output.json +++ b/content/test/data/attribution_reporting/simulator/debug.output.json
@@ -1,5 +1,5 @@ { - "debug_reports": [ + "debug_event_level_reports": [ { "report": { "attribution_destination": "https://d.test", @@ -17,7 +17,7 @@ } } ], - "reports": [ + "event_level_reports": [ { "report": { "attribution_destination": "https://d.test",
diff --git a/content/test/data/attribution_reporting/simulator/no_delay.output.json b/content/test/data/attribution_reporting/simulator/no_delay.output.json index cd5708f3..7f12aa6 100644 --- a/content/test/data/attribution_reporting/simulator/no_delay.output.json +++ b/content/test/data/attribution_reporting/simulator/no_delay.output.json
@@ -1,5 +1,5 @@ { - "reports": [ + "event_level_reports": [ { "report": { "attribution_destination": "https://d.test",
diff --git a/content/test/data/attribution_reporting/simulator/noise_seed.output.json b/content/test/data/attribution_reporting/simulator/noise_seed.output.json index ea2d500..6deb449 100644 --- a/content/test/data/attribution_reporting/simulator/noise_seed.output.json +++ b/content/test/data/attribution_reporting/simulator/noise_seed.output.json
@@ -1,5 +1,5 @@ { - "reports": [ + "event_level_reports": [ { "report": { "attribution_destination": "https://d.test",
diff --git a/content/test/data/attribution_reporting/simulator/rejected_triggers.input.json b/content/test/data/attribution_reporting/simulator/rejected_triggers.input.json index dbbfaeee3..ae1817b 100644 --- a/content/test/data/attribution_reporting/simulator/rejected_triggers.input.json +++ b/content/test/data/attribution_reporting/simulator/rejected_triggers.input.json
@@ -7,7 +7,13 @@ "source_type": "navigation", "registration_config": { "destination": "https://d.test", - "source_event_id": "123" + "source_event_id": "123", + "aggregatable_source": [ + { + "key_id": "a", + "key_piece": "0x159" + } + ] } } ], @@ -85,7 +91,18 @@ { "trigger_data": "6" } - ] + ], + "aggregatable_trigger": { + "trigger_data": [ + { + "source_keys": ["a"], + "key_piece": "0x400" + } + ], + "values": { + "b": 123 + } + } } } ]
diff --git a/content/test/data/attribution_reporting/simulator/rejected_triggers.output.json b/content/test/data/attribution_reporting/simulator/rejected_triggers.output.json index 7e06fe0..c729fd0 100644 --- a/content/test/data/attribution_reporting/simulator/rejected_triggers.output.json +++ b/content/test/data/attribution_reporting/simulator/rejected_triggers.output.json
@@ -1,7 +1,7 @@ { "rejected_triggers": [ { - "reason": "noMatchingSources", + "event_level_reason": "noMatchingSources", "trigger": { "trigger_time": 1643235572, "reporting_origin": "https://r.test", @@ -12,11 +12,11 @@ "trigger_data": "1" } ] - } + } } }, { - "reason": "deduplicated", + "event_level_reason": "deduplicated", "trigger": { "trigger_time": 1643235575, "reporting_origin": "https://r.test", @@ -32,7 +32,8 @@ } }, { - "reason": "priorityTooLow", + "aggregatable_reason": "noHistograms", + "event_level_reason": "priorityTooLow", "trigger": { "trigger_time": 1643235578, "reporting_origin": "https://r.test", @@ -42,12 +43,23 @@ { "trigger_data": "6" } - ] + ], + "aggregatable_trigger": { + "trigger_data": [ + { + "source_keys": ["a"], + "key_piece": "0x400" + } + ], + "values": { + "b": 123 + } + } } } } ], - "reports": [ + "event_level_reports": [ { "report": { "attribution_destination": "https://d.test",
diff --git a/docs/windows_build_instructions.md b/docs/windows_build_instructions.md index 59aac88..efe2d5b 100644 --- a/docs/windows_build_instructions.md +++ b/docs/windows_build_instructions.md
@@ -51,7 +51,7 @@ --includeRecommended ``` --You must have the version 10.0.19041 or higher [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/) +-You must have the version 10.0.20348.0 or higher [Windows 10 SDK](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/) installed. This can be installed separately or by checking the appropriate box in the Visual Studio Installer.
diff --git a/extensions/common/api/_manifest_features.json b/extensions/common/api/_manifest_features.json index 0ef75ed..fb94bdc 100644 --- a/extensions/common/api/_manifest_features.json +++ b/extensions/common/api/_manifest_features.json
@@ -309,6 +309,11 @@ "extension", "legacy_packaged_app", "hosted_app", "platform_app" ] }, + "optional_host_permissions": { + "channel": "stable", + "extension_types": ["extension"], + "min_manifest_version": 3 + }, "options_ui": { "channel": "stable", "extension_types": ["extension", "legacy_packaged_app"]
diff --git a/extensions/common/manifest_constants.cc b/extensions/common/manifest_constants.cc index e0a17070..21996653 100644 --- a/extensions/common/manifest_constants.cc +++ b/extensions/common/manifest_constants.cc
@@ -99,6 +99,7 @@ const char kNativelyConnectable[] = "natively_connectable"; const char kOfflineEnabled[] = "offline_enabled"; const char kOmniboxKeyword[] = "omnibox.keyword"; +const char kOptionalHostPermissions[] = "optional_host_permissions"; const char kOptionalPermissions[] = "optional_permissions"; const char kOptionsPage[] = "options_page"; const char kOptionsUI[] = "options_ui"; @@ -391,9 +392,8 @@ "Invalid value for overriding homepage url: '[*]'."; const char kInvalidHomepageURL[] = "Invalid value for homepage url: '[*]'."; -const char kInvalidHostPermission[] = - "Invalid value for 'host_permissions[*]'."; -const char kInvalidHostPermissions[] = "Invalid value for 'host_permissions'."; +const char kInvalidHostPermission[] = "Invalid value for '*[*]'."; +const char kInvalidHostPermissions[] = "Invalid value for '*'."; const char kInvalidIconKey[] = "Invalid key in icons: \"*\"."; const char kInvalidIconPath[] = "Invalid value for 'icons[\"*\"]'.";
diff --git a/extensions/common/manifest_constants.h b/extensions/common/manifest_constants.h index 8c44b49..b9ac0fb5 100644 --- a/extensions/common/manifest_constants.h +++ b/extensions/common/manifest_constants.h
@@ -103,6 +103,7 @@ extern const char kNativelyConnectable[]; extern const char kOfflineEnabled[]; extern const char kOmniboxKeyword[]; +extern const char kOptionalHostPermissions[]; extern const char kOptionalPermissions[]; extern const char kOptionsPage[]; extern const char kOptionsUI[];
diff --git a/extensions/common/manifest_handlers/permissions_parser.cc b/extensions/common/manifest_handlers/permissions_parser.cc index 9e3ca3e..d1052e3 100644 --- a/extensions/common/manifest_handlers/permissions_parser.cc +++ b/extensions/common/manifest_handlers/permissions_parser.cc
@@ -87,17 +87,18 @@ return true; } -// Parses hosts from the |keys::kHostPermissions| key in the extension's -// manifest into |hosts|. +// Parses hosts from `key` in the extension's manifest into |hosts|. bool ParseHostsFromJSON(Extension* extension, + const char* key, std::vector<std::string>* hosts, std::u16string* error) { - if (!extension->manifest()->FindKey(keys::kHostPermissions)) + if (!extension->manifest()->FindKey(key)) return true; const base::Value* permissions = nullptr; - if (!extension->manifest()->GetList(keys::kHostPermissions, &permissions)) { - *error = base::UTF8ToUTF16(errors::kInvalidHostPermissions); + if (!extension->manifest()->GetList(key, &permissions)) { + *error = ErrorUtils::FormatErrorMessageUTF16( + errors::kInvalidHostPermissions, key); return false; } @@ -108,7 +109,7 @@ hosts->push_back(list_view[i].GetString()); } else { *error = ErrorUtils::FormatErrorMessageUTF16( - errors::kInvalidHostPermission, base::NumberToString(i)); + errors::kInvalidHostPermission, key, base::NumberToString(i)); return false; } } @@ -359,6 +360,9 @@ URLPatternSet* optional_host_permissions) { URLPatternSet new_optional_host_permissions; std::vector<InstallWarning> install_warnings; + const char* key = extension->manifest_version() >= 3 + ? keys::kOptionalHostPermissions + : keys::kOptionalPermissions; for (const URLPattern& host_permission : *optional_host_permissions) { if (required_host_permissions.ContainsPattern(host_permission)) { @@ -369,7 +373,7 @@ ErrorUtils::FormatErrorMessage( manifest_errors::kPermissionMarkedOptionalAndRequired, host_permission.GetAsString()), - keys::kOptionalPermissions); + key); } else { new_optional_host_permissions.AddPattern(host_permission); } @@ -406,24 +410,35 @@ return false; } + initial_optional_permissions_ = std::make_unique<InitialPermissions>(); + if (!ParseHelper(extension, keys::kOptionalPermissions, + &initial_optional_permissions_->api_permissions, + &initial_optional_permissions_->host_permissions, error)) { + return false; + } + if (extension->manifest_version() >= 3) { std::vector<std::string> manifest_hosts; - if (!ParseHostsFromJSON(extension, &manifest_hosts, error)) + std::vector<std::string> manifest_optional_hosts; + if (!ParseHostsFromJSON(extension, keys::kHostPermissions, &manifest_hosts, + error)) { return false; + } + + if (!ParseHostsFromJSON(extension, keys::kOptionalHostPermissions, + &manifest_optional_hosts, error)) { + return false; + } // TODO(kelvinjiang): Remove the dependency for |api_permissions| here. ParseHostPermissions(extension, keys::kHostPermissions, manifest_hosts, initial_required_permissions_->api_permissions, &initial_required_permissions_->host_permissions); - } - initial_optional_permissions_ = std::make_unique<InitialPermissions>(); - if (!ParseHelper(extension, - keys::kOptionalPermissions, - &initial_optional_permissions_->api_permissions, - &initial_optional_permissions_->host_permissions, - error)) { - return false; + ParseHostPermissions(extension, keys::kOptionalHostPermissions, + manifest_optional_hosts, + initial_optional_permissions_->api_permissions, + &initial_optional_permissions_->host_permissions); } // Remove and add install warnings for specified optional API permissions
diff --git a/gpu/command_buffer/service/webgpu_decoder_impl.cc b/gpu/command_buffer/service/webgpu_decoder_impl.cc index acf08fa..8ae6e760 100644 --- a/gpu/command_buffer/service/webgpu_decoder_impl.cc +++ b/gpu/command_buffer/service/webgpu_decoder_impl.cc
@@ -1061,7 +1061,7 @@ DCHECK_LT(static_cast<size_t>(requested_adapter_index), dawn_adapters_.size()); - WGPUDeviceDescriptor device_descriptor; + WGPUDeviceDescriptor device_descriptor = {}; // We need to request internal usage to be able to do operations with internal // methods that would need specific usages.
diff --git a/gpu/config/gpu_info_collector.h b/gpu/config/gpu_info_collector.h index c59c7bf..a589192 100644 --- a/gpu/config/gpu_info_collector.h +++ b/gpu/config/gpu_info_collector.h
@@ -26,35 +26,6 @@ } namespace gpu { - -#if BUILDFLAG(IS_WIN) -// TODO(magchen@): Remove D3D_FEATURE_LEVEL_CHROMIUM and -// D3D_SHADER_MODEL_CHROMIUM and use D3D_FEATURE_LEVEL directly once the Windows -// Kits is updated from version 19041 to a newer version 20170 or later. -// D3D_FEATURE_LEVEL is defined in -// third_party\depot_tools\win_toolchain\vs_files\ 20d5f2553f\Windows -// Kits\10\Include\10.0.19041.0\um\d3dcommon.h - -// This is a temporary solution for adding D3D_FEATURE_LEVEL_12_2 to D3D12 API. -// Do not use enum D3D_FEATURE_LEVEL_CHROMIUM for D3D11 now. The support for -// D3D_FEATURE_LEVEL_12_2 has not been surfaced through D3D11 API. - -typedef enum D3D_FEATURE_LEVEL_CHROMIUM { - D3D12_FEATURE_LEVEL_1_0_CORE = 0x1000, - D3D12_FEATURE_LEVEL_9_1 = 0x9100, - D3D12_FEATURE_LEVEL_9_2 = 0x9200, - D3D12_FEATURE_LEVEL_9_3 = 0x9300, - D3D12_FEATURE_LEVEL_10_0 = 0xa000, - D3D12_FEATURE_LEVEL_10_1 = 0xa100, - D3D12_FEATURE_LEVEL_11_0 = 0xb000, - D3D12_FEATURE_LEVEL_11_1 = 0xb100, - D3D12_FEATURE_LEVEL_12_0 = 0xc000, - D3D12_FEATURE_LEVEL_12_1 = 0xc100, - D3D12_FEATURE_LEVEL_12_2 = 0xc200, -} D3D_FEATURE_LEVEL_CHROMIUM; - -#endif // BUILDFLAG(IS_WIN) - // Collects basic GPU info without creating a GL/DirectX context (and without // the danger of crashing), including vendor_id and device_id. // This is called at browser process startup time.
diff --git a/gpu/config/gpu_info_collector_win.cc b/gpu/config/gpu_info_collector_win.cc index f871480..4a24a9fb 100644 --- a/gpu/config/gpu_info_collector_win.cc +++ b/gpu/config/gpu_info_collector_win.cc
@@ -42,18 +42,6 @@ namespace { -// TODO(magchen@): Remove PFN_D3D12_CREATE_DEVICE_CHROMIUM and use -// PFN_D3D12_CREATE_DEVICE from d3d12.h directly once the Windows toolchain is -// updated. - -// Declaration for D3D12CreateDevice() with D3D_FEATURE_LEVEL_12_2 support in -// D3D_FEATURE_LEVEL_CHROMIUM. -typedef HRESULT(WINAPI* PFN_D3D12_CREATE_DEVICE_CHROMIUM)( - _In_opt_ IUnknown*, - D3D_FEATURE_LEVEL_CHROMIUM, - _In_ REFIID, - _COM_Outptr_opt_ void**); - // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // This should match enum D3D12FeatureLevel in @@ -73,15 +61,15 @@ switch (d3d_feature_level) { case 0: return D3D12FeatureLevel::kD3DFeatureLevelUnknown; - case D3D12_FEATURE_LEVEL_12_0: + case D3D_FEATURE_LEVEL_12_0: return D3D12FeatureLevel::kD3DFeatureLevel_12_0; - case D3D12_FEATURE_LEVEL_12_1: + case D3D_FEATURE_LEVEL_12_1: return D3D12FeatureLevel::kD3DFeatureLevel_12_1; - case D3D12_FEATURE_LEVEL_12_2: + case D3D_FEATURE_LEVEL_12_2: return D3D12FeatureLevel::kD3DFeatureLevel_12_2; - case D3D12_FEATURE_LEVEL_11_0: + case D3D_FEATURE_LEVEL_11_0: return D3D12FeatureLevel::kD3DFeatureLevel_11_0; - case D3D12_FEATURE_LEVEL_11_1: + case D3D_FEATURE_LEVEL_11_1: return D3D12FeatureLevel::kD3DFeatureLevel_11_1; default: NOTREACHED(); @@ -347,13 +335,12 @@ return; // The order of feature levels to attempt to create in D3D CreateDevice - const D3D_FEATURE_LEVEL_CHROMIUM feature_levels[] = { - D3D12_FEATURE_LEVEL_12_2, D3D12_FEATURE_LEVEL_12_1, - D3D12_FEATURE_LEVEL_12_0, D3D12_FEATURE_LEVEL_11_1, - D3D12_FEATURE_LEVEL_11_0}; + const D3D_FEATURE_LEVEL feature_levels[] = { + D3D_FEATURE_LEVEL_12_2, D3D_FEATURE_LEVEL_12_1, D3D_FEATURE_LEVEL_12_0, + D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0}; - PFN_D3D12_CREATE_DEVICE_CHROMIUM D3D12CreateDevice = - reinterpret_cast<PFN_D3D12_CREATE_DEVICE_CHROMIUM>( + PFN_D3D12_CREATE_DEVICE D3D12CreateDevice = + reinterpret_cast<PFN_D3D12_CREATE_DEVICE>( d3d12_library.GetFunctionPointer("D3D12CreateDevice")); Microsoft::WRL::ComPtr<ID3D12Device> d3d12_device; if (D3D12CreateDevice) {
diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc index 31765b07..3820717 100644 --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc
@@ -78,7 +78,8 @@ k11_1 = 10, k12_0 = 11, k12_1 = 12, - kMaxValue = k12_1, + k12_2 = 13, + kMaxValue = k12_2, }; inline D3D11FeatureLevel ConvertToHistogramD3D11FeatureLevel( @@ -104,6 +105,8 @@ return D3D11FeatureLevel::k12_0; case D3D_FEATURE_LEVEL_12_1: return D3D11FeatureLevel::k12_1; + case D3D_FEATURE_LEVEL_12_2: + return D3D11FeatureLevel::k12_2; default: NOTREACHED(); return D3D11FeatureLevel::kUnknown;
diff --git a/gpu/ipc/common/device_perf_info.mojom b/gpu/ipc/common/device_perf_info.mojom index de7b958..54f3606 100644 --- a/gpu/ipc/common/device_perf_info.mojom +++ b/gpu/ipc/common/device_perf_info.mojom
@@ -16,6 +16,7 @@ k11_1, k12_0, k12_1, + k12_2, }; // Corresponds to |gpu::HasDisceretGpu| in "gpu/config/device_perf_info.h"
diff --git a/gpu/ipc/common/device_perf_info_mojom_traits.cc b/gpu/ipc/common/device_perf_info_mojom_traits.cc index 0300de1..eed53f4 100644 --- a/gpu/ipc/common/device_perf_info_mojom_traits.cc +++ b/gpu/ipc/common/device_perf_info_mojom_traits.cc
@@ -34,6 +34,8 @@ return gpu::mojom::Direct3DFeatureLevel::k12_0; case D3D_FEATURE_LEVEL_12_1: return gpu::mojom::Direct3DFeatureLevel::k12_1; + case D3D_FEATURE_LEVEL_12_2: + return gpu::mojom::Direct3DFeatureLevel::k12_2; } NOTREACHED() << "Invalid D3D_FEATURE_LEVEL:" << d3d_feature_level; return gpu::mojom::Direct3DFeatureLevel::k1_0_Core; @@ -74,6 +76,9 @@ case gpu::mojom::Direct3DFeatureLevel::k12_1: *out = D3D_FEATURE_LEVEL_12_1; return true; + case gpu::mojom::Direct3DFeatureLevel::k12_2: + *out = D3D_FEATURE_LEVEL_12_2; + return true; } NOTREACHED() << "Invalid D3D_FEATURE_LEVEL: " << input; return false;
diff --git a/ios/chrome/browser/resources/Settings.bundle/Experimental.plist b/ios/chrome/browser/resources/Settings.bundle/Experimental.plist index 04cab36..3840d10 100644 --- a/ios/chrome/browser/resources/Settings.bundle/Experimental.plist +++ b/ios/chrome/browser/resources/Settings.bundle/Experimental.plist
@@ -34,6 +34,16 @@ </dict> <dict> <key>Type</key> + <string>PSToggleSwitchSpecifier</string> + <key>Title</key> + <string>Reset First Follow</string> + <key>Key</key> + <string>ResetFirstFollow</string> + <key>DefaultValue</key> + <false/> + </dict> + <dict> + <key>Type</key> <string>PSGroupSpecifier</string> <key>Title</key> <string>UI Settings</string>
diff --git a/ios/chrome/browser/system_flags.h b/ios/chrome/browser/system_flags.h index eff9310..5afa8cf 100644 --- a/ios/chrome/browser/system_flags.h +++ b/ios/chrome/browser/system_flags.h
@@ -44,6 +44,16 @@ // TODO(crbug.com/1189232): Remove after launch. bool ShouldResetNoticeCardOnFeedStart(); +// Returns true if the count of showing the First Follow modal should be reset +// to zero. +// TODO(crbug.com/1312124): Remove after launch. +bool ShouldResetFirstFollowCount(); + +// Should be called after the count has been reset so that the resetting flag +// can be turned off. +// TODO(crbug.com/1312124): Remove after launch. +void DidResetFirstFollowCount(); + // Whether memory debugging tools are enabled. bool IsMemoryDebuggingEnabled();
diff --git a/ios/chrome/browser/system_flags.mm b/ios/chrome/browser/system_flags.mm index 4b641668..1b3fabb4 100644 --- a/ios/chrome/browser/system_flags.mm +++ b/ios/chrome/browser/system_flags.mm
@@ -73,6 +73,14 @@ boolForKey:@"ResetNoticeCard"]; } +bool ShouldResetFirstFollowCount() { + return [[NSUserDefaults standardUserDefaults] boolForKey:@"ResetFirstFollow"]; +} + +void DidResetFirstFollowCount() { + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"ResetFirstFollow"]; +} + bool IsMemoryDebuggingEnabled() { // Always return true for Chromium builds, but check the user default for // official builds because memory debugging should never be enabled on stable.
diff --git a/ios/chrome/browser/ui/ntp/feed_management/BUILD.gn b/ios/chrome/browser/ui/ntp/feed_management/BUILD.gn index a4a059d..38049d11 100644 --- a/ios/chrome/browser/ui/ntp/feed_management/BUILD.gn +++ b/ios/chrome/browser/ui/ntp/feed_management/BUILD.gn
@@ -79,3 +79,21 @@ "//ui/base", ] } + +source_set("eg2_tests") { + configs += [ + "//build/config/compiler:enable_arc", + "//build/config/ios:xctest_config", + ] + testonly = true + sources = [ "feed_management_egtest.mm" ] + deps = [ + "//ios/chrome/app/strings", + "//ios/chrome/browser/ui/authentication:eg_test_support+eg2", + "//ios/chrome/browser/ui/ntp:feature_flags", + "//ios/chrome/test/earl_grey:eg_test_support+eg2", + "//ios/public/provider/chrome/browser/signin:fake_chrome_identity", + "//ios/testing/earl_grey:eg_test_support+eg2", + "//ios/third_party/earl_grey2:test_lib", + ] +}
diff --git a/ios/chrome/browser/ui/ntp/feed_management/feed_management_egtest.mm b/ios/chrome/browser/ui/ntp/feed_management/feed_management_egtest.mm new file mode 100644 index 0000000..00e1bf4 --- /dev/null +++ b/ios/chrome/browser/ui/ntp/feed_management/feed_management_egtest.mm
@@ -0,0 +1,120 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#import <UIKit/UIKit.h> +#import <XCTest/XCTest.h> + +#import "ios/chrome/browser/ui/authentication/signin_earl_grey.h" +#import "ios/chrome/browser/ui/authentication/signin_earl_grey_ui_test_util.h" +#import "ios/chrome/browser/ui/ntp/new_tab_page_feature.h" +#include "ios/chrome/grit/ios_strings.h" +#import "ios/chrome/test/earl_grey/chrome_earl_grey.h" +#import "ios/chrome/test/earl_grey/chrome_matchers.h" +#import "ios/chrome/test/earl_grey/chrome_test_case.h" +#import "ios/public/provider/chrome/browser/signin/fake_chrome_identity.h" +#import "ios/testing/earl_grey/earl_grey_test.h" + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +using chrome_test_util::ButtonWithAccessibilityLabelId; + +namespace { + +// Matcher for the feed header menu button. +id<GREYMatcher> FeedMenuButton() { + return ButtonWithAccessibilityLabelId( + IDS_IOS_DISCOVER_FEED_MENU_ACCESSIBILITY_LABEL); +} +// Matcher for the Turn Off menu item in the feed menu. +id<GREYMatcher> TurnOffFeedMenuItem() { + return ButtonWithAccessibilityLabelId( + IDS_IOS_DISCOVER_FEED_MENU_TURN_OFF_ITEM); +} +// Matcher for the Learn More menu item in the feed menu. +id<GREYMatcher> LearnMoreFeedMenuItem() { + return ButtonWithAccessibilityLabelId( + IDS_IOS_DISCOVER_FEED_MENU_LEARN_MORE_ITEM); +} +// Matcher for the Manage menu item in the feed menu. +id<GREYMatcher> ManageFeedMenuItem() { + return ButtonWithAccessibilityLabelId(IDS_IOS_DISCOVER_FEED_MENU_MANAGE_ITEM); +} + +// Dismisses the feed menu. +void DismissSignOut() { + if ([ChromeEarlGrey isIPadIdiom]) { + // Tap the tools menu to dismiss the popover. + [[EarlGrey selectElementWithMatcher:chrome_test_util::ToolsMenuButton()] + performAction:grey_tap()]; + } else { + [[EarlGrey selectElementWithMatcher:chrome_test_util::CancelButton()] + performAction:grey_tap()]; + } +} + +} // namespace + +@interface FeedManagementTestCase : ChromeTestCase +@end + +@implementation FeedManagementTestCase + +- (AppLaunchConfiguration)appConfigurationForTestCase { + AppLaunchConfiguration config; + config.features_enabled.push_back(kEnableWebChannels); + return config; +} + +- (void)testSignedOutOpenAndCloseFeedMenu { + [[EarlGrey selectElementWithMatcher:FeedMenuButton()] + performAction:grey_tap()]; + + [[EarlGrey selectElementWithMatcher:TurnOffFeedMenuItem()] + assertWithMatcher:grey_notNil()]; + [[EarlGrey selectElementWithMatcher:LearnMoreFeedMenuItem()] + assertWithMatcher:grey_notNil()]; + [[EarlGrey selectElementWithMatcher:ManageFeedMenuItem()] + assertWithMatcher:grey_nil()]; + + DismissSignOut(); +} + +- (void)testSignedInOpenAndCloseFeedMenu { + // Sign into a fake identity. + FakeChromeIdentity* fakeIdentity1 = [FakeChromeIdentity fakeIdentity1]; + [SigninEarlGrey addFakeIdentity:fakeIdentity1]; + [SigninEarlGreyUI signinWithFakeIdentity:fakeIdentity1]; + + [[EarlGrey selectElementWithMatcher:FeedMenuButton()] + performAction:grey_tap()]; + + [[EarlGrey selectElementWithMatcher:ManageFeedMenuItem()] + assertWithMatcher:grey_notNil()]; + [[EarlGrey selectElementWithMatcher:TurnOffFeedMenuItem()] + assertWithMatcher:grey_notNil()]; + [[EarlGrey selectElementWithMatcher:LearnMoreFeedMenuItem()] + assertWithMatcher:grey_notNil()]; + + DismissSignOut(); +} + +- (void)testOpenFeedManagementSurface { + // Sign into a fake identity. + FakeChromeIdentity* fakeIdentity1 = [FakeChromeIdentity fakeIdentity1]; + [SigninEarlGrey addFakeIdentity:fakeIdentity1]; + [SigninEarlGreyUI signinWithFakeIdentity:fakeIdentity1]; + + [[EarlGrey selectElementWithMatcher:FeedMenuButton()] + performAction:grey_tap()]; + [[EarlGrey selectElementWithMatcher:ManageFeedMenuItem()] + performAction:grey_tap()]; + + [[EarlGrey + selectElementWithMatcher:chrome_test_util::NavigationBarDoneButton()] + performAction:grey_tap()]; +} + +@end
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm index f16de7e..9fd5d34b 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_egtest.mm
@@ -154,8 +154,9 @@ } // Returns a matcher for the scrim view on the tab search. -id<GREYMatcher> SearchScrim() { - return grey_accessibilityID(kTabGridScrimIdentifier); +id<GREYMatcher> VisibleSearchScrim() { + return grey_allOf(grey_accessibilityID(kTabGridScrimIdentifier), + grey_sufficientlyVisible(), nil); } // Returns a matcher for the search bar text field containing |searchText|. @@ -1534,19 +1535,19 @@ performAction:grey_tap()]; // Upon entry, the search bar is empty. Verify that scrim is visible. - [[EarlGrey selectElementWithMatcher:SearchScrim()] + [[EarlGrey selectElementWithMatcher:VisibleSearchScrim()] assertWithMatcher:grey_notNil()]; // Searching with any query should render scrim invisible. [[EarlGrey selectElementWithMatcher:TabGridSearchBar()] performAction:grey_typeText(@"text")]; - [[EarlGrey selectElementWithMatcher:SearchScrim()] + [[EarlGrey selectElementWithMatcher:VisibleSearchScrim()] assertWithMatcher:grey_nil()]; // Clearing search bar text should render scrim visible again. [[EarlGrey selectElementWithMatcher:TabGridSearchBar()] performAction:grey_clearText()]; - [[EarlGrey selectElementWithMatcher:SearchScrim()] + [[EarlGrey selectElementWithMatcher:VisibleSearchScrim()] assertWithMatcher:grey_notNil()]; // Cancel search mode. @@ -1554,7 +1555,7 @@ performAction:grey_tap()]; // Verify that scrim is not visible anymore. - [[EarlGrey selectElementWithMatcher:SearchScrim()] + [[EarlGrey selectElementWithMatcher:VisibleSearchScrim()] assertWithMatcher:grey_nil()]; } @@ -1569,11 +1570,12 @@ performAction:grey_tap()]; // Tap on scrim. - [[EarlGrey selectElementWithMatcher:SearchScrim()] performAction:grey_tap()]; + [[EarlGrey selectElementWithMatcher:VisibleSearchScrim()] + performAction:grey_tap()]; // Verify that search mode is exit, scrim not visible, and transition to // normal mode was successful. - [[EarlGrey selectElementWithMatcher:SearchScrim()] + [[EarlGrey selectElementWithMatcher:VisibleSearchScrim()] assertWithMatcher:grey_nil()]; [[EarlGrey selectElementWithMatcher:TabGridNormalModePageControl()] assertWithMatcher:grey_notNil()];
diff --git a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm index b4910d7..7ea3f67 100644 --- a/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm +++ b/ios/chrome/browser/ui/tab_switcher/tab_grid/tab_grid_view_controller.mm
@@ -181,6 +181,8 @@ @property(nonatomic, assign) TabGridPageConfiguration pageConfiguration; // If the scrim view is being presented. @property(nonatomic, assign) BOOL isScrimDisplayed; +// Wether there is a search being performed in the tab grid or not. +@property(nonatomic, assign) BOOL isPerformingSearch; // Pan gesture for when the search results view is scrolled during the search // mode. @property(nonatomic, strong) UIPanGestureRecognizer* searchResultPanRecognizer; @@ -1838,7 +1840,8 @@ - (void)setupSearchUI { self.scrimView = [[UIControl alloc] init]; - self.scrimView.backgroundColor = [UIColor colorNamed:kScrimBackgroundColor]; + self.scrimView.backgroundColor = + [UIColor colorNamed:kDarkerScrimBackgroundColor]; self.scrimView.translatesAutoresizingMaskIntoConstraints = NO; self.scrimView.accessibilityIdentifier = kTabGridScrimIdentifier; [self.scrimView addTarget:self @@ -1855,13 +1858,11 @@ // Shows scrim overlay. - (void)showScrim { - if (self.isScrimDisplayed) { - return; - } - self.scrimView.alpha = 0.0f; - [self.scrollContentView addSubview:self.scrimView]; - AddSameConstraints(self.scrimView, self.view.superview); + if (!self.scrimView.superview) { + [self.scrollContentView addSubview:self.scrimView]; + AddSameConstraints(self.scrimView, self.view.superview); + } self.currentPageViewController.accessibilityElementsHidden = YES; __weak __typeof(self) weakSelf = self; [UIView animateWithDuration:0.2 @@ -1869,32 +1870,37 @@ TabGridViewController* strongSelf = weakSelf; if (!strongSelf) return; + strongSelf.scrimView.hidden = NO; strongSelf.scrimView.alpha = 1.0f; [strongSelf.view layoutIfNeeded]; } completion:^(BOOL finished) { - weakSelf.isScrimDisplayed = YES; - }]; -} - -// Hides scrim overlay. -- (void)hideScrim { - if (!self.isScrimDisplayed) { - return; - } - - __weak TabGridViewController* weakSelf = self; - [UIView animateWithDuration:0.2 - animations:^{ - weakSelf.scrimView.alpha = 0.0f; - } - completion:^(BOOL finished) { TabGridViewController* strongSelf = weakSelf; if (!strongSelf) return; - [strongSelf.scrimView removeFromSuperview]; + strongSelf.isScrimDisplayed = (strongSelf.scrimView.alpha > 0); + strongSelf.currentPageViewController.accessibilityElementsHidden = YES; + }]; +} + +// Hides scrim overlay. +- (void)hideScrim { + __weak TabGridViewController* weakSelf = self; + [UIView animateWithDuration:0.2 + animations:^{ + TabGridViewController* strongSelf = weakSelf; + if (!strongSelf) + return; + + strongSelf.scrimView.alpha = 0.0f; + strongSelf.scrimView.hidden = YES; + } + completion:^(BOOL finished) { + TabGridViewController* strongSelf = weakSelf; + if (!strongSelf) + return; strongSelf.currentPageViewController.accessibilityElementsHidden = NO; - strongSelf.isScrimDisplayed = NO; + strongSelf.isScrimDisplayed = (strongSelf.scrimView.alpha > 0); }]; } @@ -1961,11 +1967,15 @@ } - (void)updateScrimVisibilityForText:(NSString*)searchText { - if (_tabGridMode == TabGridModeSearch && searchText.length == 0) { + if (_tabGridMode != TabGridModeSearch) + return; + if (searchText.length == 0) { + self.isPerformingSearch = NO; [self showScrim]; - } else { - // If no results have been presented yet, then hide the scrim to present the - // results. + } else if (!self.isPerformingSearch) { + self.isPerformingSearch = YES; + // If no results have been presented yet, then hide the scrim to present + // the results. [self hideScrim]; } }
diff --git a/ios/chrome/common/ui/colors/resources/BUILD.gn b/ios/chrome/common/ui/colors/resources/BUILD.gn index 48c86ed..109f314d 100644 --- a/ios/chrome/common/ui/colors/resources/BUILD.gn +++ b/ios/chrome/common/ui/colors/resources/BUILD.gn
@@ -12,6 +12,7 @@ ":blue_color", ":blue_halo_color", ":close_button_color", + ":darker_scrim_background_color", ":disabled_tint_color", ":favicon_background_color", ":green_50_color", @@ -156,6 +157,10 @@ sources = [ "scrim_background_color.colorset/Contents.json" ] } +colorset("darker_scrim_background_color") { + sources = [ "darker_scrim_background_color.colorset/Contents.json" ] +} + colorset("separator_color") { sources = [ "separator_color.colorset/Contents.json" ] }
diff --git a/ios/chrome/common/ui/colors/resources/darker_scrim_background_color.colorset/Contents.json b/ios/chrome/common/ui/colors/resources/darker_scrim_background_color.colorset/Contents.json new file mode 100644 index 0000000..bbcb508 --- /dev/null +++ b/ios/chrome/common/ui/colors/resources/darker_scrim_background_color.colorset/Contents.json
@@ -0,0 +1,20 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + }, + "colors" : [ + { + "idiom" : "universal", + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "0.600", + "red" : "0x00", + "green" : "0x00", + "blue" : "0x00" + } + } + } + ] +}
diff --git a/ios/chrome/common/ui/colors/semantic_color_names.h b/ios/chrome/common/ui/colors/semantic_color_names.h index 9a9159c6..7432ba5e 100644 --- a/ios/chrome/common/ui/colors/semantic_color_names.h +++ b/ios/chrome/common/ui/colors/semantic_color_names.h
@@ -28,6 +28,7 @@ // Primary background color. extern NSString* const kPrimaryBackgroundColor; extern NSString* const kScrimBackgroundColor; +extern NSString* const kDarkerScrimBackgroundColor; // Secondary background color. extern NSString* const kSecondaryBackgroundColor; extern NSString* const kSeparatorColor;
diff --git a/ios/chrome/common/ui/colors/semantic_color_names.mm b/ios/chrome/common/ui/colors/semantic_color_names.mm index 00d74df..f38940a 100644 --- a/ios/chrome/common/ui/colors/semantic_color_names.mm +++ b/ios/chrome/common/ui/colors/semantic_color_names.mm
@@ -22,6 +22,7 @@ NSString* const kPlaceholderImageTintColor = @"placeholder_image_tint_color"; NSString* const kPrimaryBackgroundColor = @"primary_background_color"; NSString* const kScrimBackgroundColor = @"scrim_background_color"; +NSString* const kDarkerScrimBackgroundColor = @"darker_scrim_background_color"; NSString* const kSecondaryBackgroundColor = @"secondary_background_color"; NSString* const kSeparatorColor = @"separator_color"; NSString* const kSolidButtonTextColor = @"solid_button_text_color";
diff --git a/ios/chrome/test/earl_grey2/BUILD.gn b/ios/chrome/test/earl_grey2/BUILD.gn index c8d79aa..2d84c76 100644 --- a/ios/chrome/test/earl_grey2/BUILD.gn +++ b/ios/chrome/test/earl_grey2/BUILD.gn
@@ -165,6 +165,7 @@ "//ios/chrome/browser/ui/keyboard:eg2_tests", "//ios/chrome/browser/ui/link_to_text:eg2_tests", "//ios/chrome/browser/ui/ntp:eg2_tests", + "//ios/chrome/browser/ui/ntp/feed_management:eg2_tests", "//ios/chrome/browser/ui/omnibox:eg2_tests", "//ios/chrome/browser/ui/omnibox/popup:eg2_tests", "//ios/chrome/browser/ui/open_in:eg2_tests",
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 index bbd28b5..0e72190 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -46bf1e2f8e3728d9df62bb048bfa9d906799e58f \ No newline at end of file +ee7531d93e37545b1f10feb50c6e6d4c6eb054e4 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 index 8933308..b720900 100644 --- a/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -9f2b4ec105ae8c1f6aabce593a209bfbd66ccee5 \ No newline at end of file +633e97e64072327862372480632b699b981e515d \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 index 7b5f22e9..a4f1243 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -d2fdf216e19e46424cc5dd0b60cfdd5362756b52 \ No newline at end of file +e44f48a3e4c8e8bd6a5787ad72b07e483cb59a6c \ No newline at end of file
diff --git a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 index 695e3732..e8ce3fa1 100644 --- a/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/chrome_sso_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -1b14b83695148bacc294e288663c5c5b39a257e9 \ No newline at end of file +e93e04a2198777fa55a0ff43293e65b1db59ea79 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 index a80c79d2..90337cd 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -13ffd12b7c4fbebace477dfefdaa6b3f193c26cd \ No newline at end of file +00aa3924a9ae521e775ef51b54dfb3059f60177e \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 index 96a61a7..3de54387 100644 --- a/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_dogfood_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -1de46d67384909d694c590a22de1a97510d21904 \ No newline at end of file +278b1db442ed04e67475e7548da69ce29d9ac43a \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 index 0923312..28357c4 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -2e4908c0167e2e11d8a6d4a2e97ad361a492d675 \ No newline at end of file +afb529137a2fed1d675d41c0a0688e2085f203fb \ No newline at end of file
diff --git a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 index b5289bc..5ed1716 100644 --- a/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/remoting_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -9536b3417829739ec786849ed73af66baba256db \ No newline at end of file +5343565e406380c94f8775597115c43648625120 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 index fbf5f53b..cca28d1 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.ios.zip.sha1
@@ -1 +1 @@ -01cf5c89f0a9d13b4fe6d7ac46e455def7709cdb \ No newline at end of file +002e0a3d79fd318ef8a0614b9fc3432cc5e916a3 \ No newline at end of file
diff --git a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 index 1c1d8d4..e196109c 100644 --- a/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1 +++ b/ios/google_internal/frameworks/web_view_shell_internal_dynamic_framework.iossimulator.zip.sha1
@@ -1 +1 @@ -bd6c240f80c7c4049454eb56c471ad1ba629adce \ No newline at end of file +d6342adfd231de0279eebe9ffa7d0f1f41a29253 \ No newline at end of file
diff --git a/media/audio/win/audio_low_latency_input_win.cc b/media/audio/win/audio_low_latency_input_win.cc index 408a7c4..8390c811 100644 --- a/media/audio/win/audio_low_latency_input_win.cc +++ b/media/audio/win/audio_low_latency_input_win.cc
@@ -191,6 +191,8 @@ return "SpeakerCompensation"; case ABI::Windows::Media::Effects::AudioEffectType_DynamicRangeCompression: return "DynamicRangeCompression"; + case ABI::Windows::Media::Effects::AudioEffectType_FarFieldBeamForming: + return "FarFieldBeamForming"; } return "Unknown"; }
diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc index e4fc3f46..9b1ad9f 100644 --- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc +++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -74,7 +74,7 @@ codec_context->sample_fmt = AV_SAMPLE_FMT_NONE; } - codec_context->channels = config.channel_count; + codec_context->ch_layout.nb_channels = config.channel_count; codec_context->sample_rate = config.samples_per_second; if (config.extra_data) { @@ -124,8 +124,8 @@ case cdm::kAudioFormatPlanarS16: case cdm::kAudioFormatPlanarF32: { const int decoded_size_per_channel = - decoded_audio_size / av_frame.channels; - for (int i = 0; i < av_frame.channels; ++i) { + decoded_audio_size / av_frame.ch_layout.nb_channels; + for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) { memcpy(output_buffer, av_frame.extended_data[i], decoded_size_per_channel); output_buffer += decoded_size_per_channel; @@ -185,13 +185,14 @@ // Success! decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get()); samples_per_second_ = config.samples_per_second; - bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8; + bytes_per_frame_ = + codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8; output_timestamp_helper_ = std::make_unique<AudioTimestampHelper>(config.samples_per_second); is_initialized_ = true; // Store initial values to guard against midstream configuration changes. - channels_ = codec_context_->channels; + channels_ = codec_context_->ch_layout.nb_channels; av_sample_format_ = codec_context_->sample_fmt; return true; @@ -291,17 +292,19 @@ for (auto& frame : audio_frames) { int decoded_audio_size = 0; if (frame->sample_rate != samples_per_second_ || - frame->channels != channels_ || frame->format != av_sample_format_) { + frame->ch_layout.nb_channels != channels_ || + frame->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!" << " Sample Rate: " << frame->sample_rate << " vs " - << samples_per_second_ << ", Channels: " << frame->channels - << " vs " << channels_ << ", Sample Format: " << frame->format - << " vs " << av_sample_format_; + << samples_per_second_ + << ", Channels: " << frame->ch_layout.nb_channels << " vs " + << channels_ << ", Sample Format: " << frame->format << " vs " + << av_sample_format_; return cdm::kDecodeError; } decoded_audio_size = av_samples_get_buffer_size( - nullptr, codec_context_->channels, frame->nb_samples, + nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, codec_context_->sample_fmt, 1); if (!decoded_audio_size) continue; @@ -320,9 +323,9 @@ size_t* total_size, std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames, AVFrame* frame) { - *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels, - frame->nb_samples, - codec_context_->sample_fmt, 1); + *total_size += av_samples_get_buffer_size( + nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, + codec_context_->sample_fmt, 1); audio_frames->emplace_back(av_frame_clone(frame)); return true; }
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc index 87ca896..76f03d66 100644 --- a/media/ffmpeg/ffmpeg_common.cc +++ b/media/ffmpeg/ffmpeg_common.cc
@@ -345,10 +345,11 @@ codec_context->sample_fmt, codec_context->codec_id); ChannelLayout channel_layout = - codec_context->channels > 8 + codec_context->ch_layout.nb_channels > 8 ? CHANNEL_LAYOUT_DISCRETE - : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, - codec_context->channels); + : ChannelLayoutToChromeChannelLayout( + codec_context->ch_layout.u.mask, + codec_context->ch_layout.nb_channels); int sample_rate = codec_context->sample_rate; switch (codec) { @@ -401,7 +402,7 @@ extra_data, encryption_scheme, seek_preroll, codec_context->delay); if (channel_layout == CHANNEL_LAYOUT_DISCRETE) - config->SetChannelsForDiscrete(codec_context->channels); + config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels); #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO) // These are bitstream formats unknown to ffmpeg, so they don't have @@ -470,7 +471,7 @@ // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses // said information to decode. - codec_context->channels = config.channels(); + codec_context->ch_layout.nb_channels = config.channels(); codec_context->sample_rate = config.samples_per_second(); if (config.extra_data().empty()) {
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc index 5f257bd..e1be5aa 100644 --- a/media/filters/audio_file_reader.cc +++ b/media/filters/audio_file_reader.cc
@@ -113,14 +113,15 @@ // Verify the channel layout is supported by Chrome. Acts as a sanity check // against invalid files. See http://crbug.com/171962 - if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout, - codec_context_->channels) == + if (ChannelLayoutToChromeChannelLayout( + codec_context_->ch_layout.u.mask, + codec_context_->ch_layout.nb_channels) == CHANNEL_LAYOUT_UNSUPPORTED) { return false; } // Store initial values to guard against midstream configuration changes. - channels_ = codec_context_->channels; + channels_ = codec_context_->ch_layout.nb_channels; audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id); sample_rate_ = codec_context_->sample_rate; av_sample_format_ = codec_context_->sample_fmt; @@ -223,7 +224,7 @@ if (frames_read < 0) return false; - const int channels = frame->channels; + const int channels = frame->ch_layout.nb_channels; if (frame->sample_rate != sample_rate_ || channels != channels_ || frame->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!"
diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc index 2aba792..1f45a50c 100644 --- a/media/filters/audio_file_reader_unittest.cc +++ b/media/filters/audio_file_reader_unittest.cc
@@ -121,11 +121,11 @@ EXPECT_FALSE(reader_->Open()); } - void RunTestFailingDecode(const char* fn) { + void RunTestFailingDecode(const char* fn, int expect_read = 0) { Initialize(fn); EXPECT_TRUE(reader_->Open()); std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets; - EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); + EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); } void RunTestPartialDecode(const char* fn) { @@ -219,7 +219,7 @@ } TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { - RunTestFailingDecode("midstream_config_change.mp3"); + RunTestFailingDecode("midstream_config_change.mp3", 42624); } #endif
diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc index 185819e..69ff508 100644 --- a/media/filters/audio_video_metadata_extractor.cc +++ b/media/filters/audio_video_metadata_extractor.cc
@@ -113,6 +113,15 @@ if (!stream) continue; + void* display_matrix = + av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr); + if (display_matrix) { + rotation_ = VideoTransformation::FromFFmpegDisplayMatrix( + static_cast<int32_t*>(display_matrix)) + .rotation; + info.tags["rotate"] = base::NumberToString(rotation_); + } + // Extract dictionary from streams also. Needed for containers that attach // metadata to contained streams instead the container itself, like OGG. ExtractDictionary(stream->metadata, &info.tags); @@ -255,8 +264,6 @@ if (raw_tags->find(tag->key) == raw_tags->end()) (*raw_tags)[tag->key] = tag->value; - if (ExtractInt(tag, "rotate", &rotation_)) - continue; if (ExtractString(tag, "album", &album_)) continue; if (ExtractString(tag, "artist", &artist_))
diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc index 6f231c8..ca5e5fb 100644 --- a/media/filters/ffmpeg_aac_bitstream_converter.cc +++ b/media/filters/ffmpeg_aac_bitstream_converter.cc
@@ -195,14 +195,15 @@ if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id || audio_profile_ != stream_codec_parameters_->profile || sample_rate_index_ != sample_rate_index || - channel_configuration_ != stream_codec_parameters_->channels || + channel_configuration_ != + stream_codec_parameters_->ch_layout.nb_channels || frame_length_ != header_plus_packet_size) { header_generated_ = GenerateAdtsHeader(stream_codec_parameters_->codec_id, 0, // layer stream_codec_parameters_->profile, sample_rate_index, 0, // private stream - stream_codec_parameters_->channels, + stream_codec_parameters_->ch_layout.nb_channels, 0, // originality 0, // home 0, // copyrighted_stream @@ -214,7 +215,7 @@ codec_ = stream_codec_parameters_->codec_id; audio_profile_ = stream_codec_parameters_->profile; sample_rate_index_ = sample_rate_index; - channel_configuration_ = stream_codec_parameters_->channels; + channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels; frame_length_ = header_plus_packet_size; }
diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc index 1fd4c5c..f59bcd8f 100644 --- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
@@ -34,7 +34,7 @@ memset(&test_parameters_, 0, sizeof(AVCodecParameters)); test_parameters_.codec_id = AV_CODEC_ID_AAC; test_parameters_.profile = FF_PROFILE_AAC_MAIN; - test_parameters_.channels = 2; + test_parameters_.ch_layout.nb_channels = 2; test_parameters_.extradata = extradata_header_; test_parameters_.extradata_size = sizeof(extradata_header_); }
diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc index 6a56c67..4615fdeb 100644 --- a/media/filters/ffmpeg_audio_decoder.cc +++ b/media/filters/ffmpeg_audio_decoder.cc
@@ -28,7 +28,7 @@ // Return the number of channels from the data in |frame|. static inline int DetermineChannels(AVFrame* frame) { - return frame->channels; + return frame->ch_layout.nb_channels; } // Called by FFmpeg's allocation routine to allocate a buffer. Uses @@ -231,7 +231,7 @@ // Translate unsupported into discrete layouts for discrete configurations; // ffmpeg does not have a labeled discrete configuration internally. ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout( - codec_context_->channel_layout, codec_context_->channels); + codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels); if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { channel_layout = CHANNEL_LAYOUT_DISCRETE; @@ -348,11 +348,11 @@ // Success! av_sample_format_ = codec_context_->sample_fmt; - if (codec_context_->channels != config.channels()) { + if (codec_context_->ch_layout.nb_channels != config.channels()) { MEDIA_LOG(ERROR, media_log_) << "Audio configuration specified " << config.channels() << " channels, but FFmpeg thinks the file contains " - << codec_context_->channels << " channels"; + << codec_context_->ch_layout.nb_channels << " channels"; ReleaseFFmpegResources(); state_ = DecoderState::kUninitialized; return false; @@ -403,7 +403,7 @@ if (frame->nb_samples <= 0) return AVERROR(EINVAL); - if (s->channels != channels) { + if (s->ch_layout.nb_channels != channels) { DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count."; return AVERROR(EINVAL); } @@ -436,7 +436,8 @@ ChannelLayout channel_layout = config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE ? CHANNEL_LAYOUT_DISCRETE - : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels); + : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask, + s->ch_layout.nb_channels); if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) { DLOG(ERROR) << "Unsupported channel layout.";
diff --git a/media/formats/hls/parse_status.cc b/media/formats/hls/parse_status.cc index c583fdd..52718c0c 100644 --- a/media/formats/hls/parse_status.cc +++ b/media/formats/hls/parse_status.cc
@@ -21,6 +21,7 @@ PARSE_STATUS_CODE_CASE(kFailedToParseDecimalInteger); PARSE_STATUS_CODE_CASE(kFailedToParseDecimalFloatingPoint); PARSE_STATUS_CODE_CASE(kFailedToParseSignedDecimalFloatingPoint); + PARSE_STATUS_CODE_CASE(kFailedToParseQuotedString); PARSE_STATUS_CODE_CASE(kInvalidPlaylistVersion); PARSE_STATUS_CODE_CASE(kMalformedAttributeList); PARSE_STATUS_CODE_CASE(kAttributeListHasDuplicateNames);
diff --git a/media/formats/hls/parse_status.h b/media/formats/hls/parse_status.h index b4dbf83..1a44fb7 100644 --- a/media/formats/hls/parse_status.h +++ b/media/formats/hls/parse_status.h
@@ -18,6 +18,7 @@ kFailedToParseDecimalInteger, kFailedToParseDecimalFloatingPoint, kFailedToParseSignedDecimalFloatingPoint, + kFailedToParseQuotedString, kInvalidPlaylistVersion, kMalformedAttributeList, kAttributeListHasDuplicateNames,
diff --git a/media/formats/hls/playlist_common.h b/media/formats/hls/playlist_common.h index 18ff9c8..811559b 100644 --- a/media/formats/hls/playlist_common.h +++ b/media/formats/hls/playlist_common.h
@@ -20,7 +20,12 @@ absl::optional<XVersionTag> version_tag; absl::optional<XIndependentSegmentsTag> independent_segments_tag; + // The dictionary for variables defined in the current playlist. VariableDictionary variable_dict; + + // The dictionary of variables defined in the parent playlist. This may remain + // null if there is no parent playlist (in the case of a multivariant + // playlist, or a media playlist without other variants). VariableDictionary* parent_variable_dict = nullptr; // Returns the version specified by `version_tag`, or the default version if
diff --git a/media/formats/hls/source_string.h b/media/formats/hls/source_string.h index 99c6698..e550a640 100644 --- a/media/formats/hls/source_string.h +++ b/media/formats/hls/source_string.h
@@ -47,6 +47,8 @@ bool Empty() const { return str_.empty(); } + size_t Size() const { return str_.size(); } + SourceString Substr(size_t pos = 0, size_t count = base::StringPiece::npos) const;
diff --git a/media/formats/hls/tags.cc b/media/formats/hls/tags.cc index 7c5f546..1fdb6c5 100644 --- a/media/formats/hls/tags.cc +++ b/media/formats/hls/tags.cc
@@ -25,26 +25,6 @@ return T{}; } -// Quoted strings in EXT-X-DEFINE tags are unique in that they aren't subject to -// variable substitution. To simplify things, we define a special quoted-string -// extraction function here. -ParseStatus::Or<SourceString> ParseXDefineTagQuotedString( - SourceString source_str) { - if (source_str.Str().size() < 2) { - return ParseStatusCode::kMalformedTag; - } - - if (*source_str.Str().begin() != '"') { - return ParseStatusCode::kMalformedTag; - } - - if (*source_str.Str().rbegin() != '"') { - return ParseStatusCode::kMalformedTag; - } - - return source_str.Substr(1, source_str.Str().size() - 2); -} - // Attributes expected in `EXT-X-DEFINE` tag contents. // These must remain sorted alphabetically. enum class XDefineTagAttribute { @@ -210,7 +190,12 @@ } ParseStatus::Or<XDefineTag> XDefineTag::Parse(TagItem tag) { - // Parse the attribute-list + DCHECK(tag.name == ToTagName(XDefineTag::kName)); + + // Parse the attribute-list. + // Quoted strings in EXT-X-DEFINE tags are unique in that they aren't subject + // to variable substitution. For that reason, we use the + // `ParseQuotedStringWithoutSubstitution` function here. TypedAttributeMap<XDefineTagAttribute> map; types::AttributeListIterator iter(tag.content); auto result = map.FillUntilError(&iter); @@ -227,9 +212,9 @@ } if (map.HasValue(XDefineTagAttribute::kName)) { - auto var_name = - ParseXDefineTagQuotedString(map.GetValue(XDefineTagAttribute::kName)) - .MapValue(types::VariableName::Parse); + auto var_name = types::ParseQuotedStringWithoutSubstitution( + map.GetValue(XDefineTagAttribute::kName)) + .MapValue(types::VariableName::Parse); if (var_name.has_error()) { return ParseStatus(ParseStatusCode::kMalformedTag) .AddCause(std::move(var_name).error()); @@ -240,8 +225,8 @@ return ParseStatusCode::kMalformedTag; } - auto value = - ParseXDefineTagQuotedString(map.GetValue(XDefineTagAttribute::kValue)); + auto value = types::ParseQuotedStringWithoutSubstitution( + map.GetValue(XDefineTagAttribute::kValue)); if (value.has_error()) { return ParseStatus(ParseStatusCode::kMalformedTag); } @@ -251,9 +236,9 @@ } if (map.HasValue(XDefineTagAttribute::kImport)) { - auto var_name = - ParseXDefineTagQuotedString(map.GetValue(XDefineTagAttribute::kImport)) - .MapValue(types::VariableName::Parse); + auto var_name = types::ParseQuotedStringWithoutSubstitution( + map.GetValue(XDefineTagAttribute::kImport)) + .MapValue(types::VariableName::Parse); if (var_name.has_error()) { return ParseStatus(ParseStatusCode::kMalformedTag) .AddCause(std::move(var_name).error());
diff --git a/media/formats/hls/types.cc b/media/formats/hls/types.cc index 4a1cf86..dafc688 100644 --- a/media/formats/hls/types.cc +++ b/media/formats/hls/types.cc
@@ -199,6 +199,31 @@ return result; } +ParseStatus::Or<base::StringPiece> ParseQuotedString( + SourceString source_str, + const VariableDictionary& variable_dict, + VariableDictionary::SubstitutionBuffer& sub_buffer) { + return ParseQuotedStringWithoutSubstitution(source_str) + .MapValue([&variable_dict, &sub_buffer](auto str) { + return variable_dict.Resolve(str, sub_buffer); + }); +} + +ParseStatus::Or<SourceString> ParseQuotedStringWithoutSubstitution( + SourceString source_str) { + if (source_str.Size() < 2) { + return ParseStatusCode::kFailedToParseQuotedString; + } + if (*source_str.Str().begin() != '"') { + return ParseStatusCode::kFailedToParseQuotedString; + } + if (*source_str.Str().rbegin() != '"') { + return ParseStatusCode::kFailedToParseQuotedString; + } + + return source_str.Substr(1, source_str.Size() - 2); +} + AttributeListIterator::AttributeListIterator(SourceString content) : remaining_content_(content) {}
diff --git a/media/formats/hls/types.h b/media/formats/hls/types.h index df57700..d615e25 100644 --- a/media/formats/hls/types.h +++ b/media/formats/hls/types.h
@@ -9,6 +9,7 @@ #include "base/containers/span.h" #include "media/formats/hls/parse_status.h" #include "media/formats/hls/source_string.h" +#include "media/formats/hls/variable_dictionary.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace media::hls::types { @@ -29,6 +30,20 @@ ParseStatus::Or<SignedDecimalFloatingPoint> MEDIA_EXPORT ParseSignedDecimalFloatingPoint(SourceString source_str); +// Parses a string surrounded by double-quotes ("), returning the inner string. +// These appear in the context of attribute-lists, and are subject to variable +// substitution. `sub_buffer` must outlive the returned string. +ParseStatus::Or<base::StringPiece> MEDIA_EXPORT +ParseQuotedString(SourceString source_str, + const VariableDictionary& variable_dict, + VariableDictionary::SubstitutionBuffer& sub_buffer); + +// Parses a string surrounded by double-quotes ("), returning the interior +// string. These appear in the context of attribute-lists, however certain tags +// disallow variable substitution so this function exists to serve those. +ParseStatus::Or<SourceString> MEDIA_EXPORT +ParseQuotedStringWithoutSubstitution(SourceString source_str); + // Provides an iterator-style interface over attribute-lists. // Since the number of attributes expected in an attribute-list for a tag varies // (most have 2-4, the highest has 15), rather than prescribing a specific data
diff --git a/media/formats/hls/types_unittest.cc b/media/formats/hls/types_unittest.cc index 6711505..b79551e 100644 --- a/media/formats/hls/types_unittest.cc +++ b/media/formats/hls/types_unittest.cc
@@ -9,6 +9,15 @@ namespace media::hls { +namespace { + +types::VariableName CreateVarName(base::StringPiece name) { + return types::VariableName::Parse(SourceString::CreateForTesting(name)) + .value(); +} + +} // namespace + TEST(HlsFormatParserTest, ParseDecimalIntegerTest) { auto const error_test = [](base::StringPiece input, const base::Location& from = @@ -450,4 +459,100 @@ ok_test("______-___-__---"); } +TEST(HlsFormatParserTest, ParseQuotedStringWithoutSubstitutionTest) { + const auto ok_test = [](base::StringPiece in, + base::StringPiece expected_out) { + auto in_str = SourceString::CreateForTesting(in); + auto out = types::ParseQuotedStringWithoutSubstitution(in_str); + ASSERT_TRUE(out.has_value()); + EXPECT_EQ(std::move(out).value().Str(), expected_out); + }; + + const auto error_test = [](base::StringPiece in) { + auto in_str = SourceString::CreateForTesting(in); + auto out = types::ParseQuotedStringWithoutSubstitution(in_str); + ASSERT_TRUE(out.has_error()); + EXPECT_EQ(std::move(out).error().code(), + ParseStatusCode::kFailedToParseQuotedString); + }; + + // Test some basic examples + ok_test("\"\"", ""); + ok_test("\" \"", " "); + ok_test("\"Hello, world!\"", "Hello, world!"); + + // Interior quotes are not checked by this function + ok_test("\"Hello, \"World!\"\"", "Hello, \"World!\""); + + // Variables are not substituted by this function, and do not trigger an error + ok_test("\"Hello, {$WORLD}\"", "Hello, {$WORLD}"); + + // Single-quoted string is not allowed + error_test("''"); + error_test("' '"); + error_test("'Hello, world!'"); + + // Missing leading/trailing quote is not allowed + error_test("\""); + error_test("\" "); + error_test(" \""); + error_test("\"Hello, world!"); + error_test("Hello, world!\""); + + // Empty string is not allowed + error_test(""); +} + +TEST(HlsFormatParserTest, ParseQuotedStringTest) { + VariableDictionary dict; + EXPECT_TRUE(dict.Insert(CreateVarName("FOO"), "bar")); + EXPECT_TRUE(dict.Insert(CreateVarName("BAZ"), "\"foo\"")); + + const auto ok_test = [&dict](base::StringPiece in, + base::StringPiece expected_out) { + auto in_str = SourceString::CreateForTesting(in); + VariableDictionary::SubstitutionBuffer sub_buffer; + auto out = types::ParseQuotedString(in_str, dict, sub_buffer); + ASSERT_TRUE(out.has_value()); + EXPECT_EQ(std::move(out).value(), expected_out); + }; + + const auto error_test = [&dict](base::StringPiece in, + ParseStatusCode expected_error) { + auto in_str = SourceString::CreateForTesting(in); + VariableDictionary::SubstitutionBuffer sub_buffer; + auto out = types::ParseQuotedString(in_str, dict, sub_buffer); + ASSERT_TRUE(out.has_error()); + EXPECT_EQ(std::move(out).error().code(), expected_error); + }; + + // Test some basic examples + ok_test("\"\"", ""); + ok_test("\" \"", " "); + ok_test("\"Hello, world!\"", "Hello, world!"); + + // Interior quotes are not checked by this function + ok_test("\"Hello, \"World!\"\"", "Hello, \"World!\""); + + // Variables ARE substituted by this function + ok_test("\"Hello, {$FOO}\"", "Hello, bar"); + ok_test("\"Hello, {$BAZ}\"", "Hello, \"foo\""); + error_test("\"Hello, {$foo}\"", ParseStatusCode::kVariableUndefined); + + // Single-quoted string is not allowed + error_test("''", ParseStatusCode::kFailedToParseQuotedString); + error_test("' '", ParseStatusCode::kFailedToParseQuotedString); + error_test("'Hello, world!'", ParseStatusCode::kFailedToParseQuotedString); + + // Missing leading/trailing quote is not allowed + error_test("\"", ParseStatusCode::kFailedToParseQuotedString); + error_test("\" ", ParseStatusCode::kFailedToParseQuotedString); + error_test(" \"", ParseStatusCode::kFailedToParseQuotedString); + error_test("\"Hello, world!", ParseStatusCode::kFailedToParseQuotedString); + error_test("Hello, world!\"", ParseStatusCode::kFailedToParseQuotedString); + + // Empty string is not allowed + error_test("", ParseStatusCode::kFailedToParseQuotedString); +} + } // namespace media::hls
diff --git a/media/formats/hls/variable_dictionary.cc b/media/formats/hls/variable_dictionary.cc index af882c5..ffd513c 100644 --- a/media/formats/hls/variable_dictionary.cc +++ b/media/formats/hls/variable_dictionary.cc
@@ -6,8 +6,8 @@ #include "base/strings/string_piece.h" #include "base/strings/string_util.h" -#include "base/types/pass_key.h" #include "media/formats/hls/parse_status.h" +#include "media/formats/hls/source_string.h" #include "media/formats/hls/types.h" namespace media::hls { @@ -61,8 +61,11 @@ } // namespace VariableDictionary::VariableDictionary() = default; + VariableDictionary::~VariableDictionary() = default; + VariableDictionary::VariableDictionary(VariableDictionary&&) = default; + VariableDictionary& VariableDictionary::operator=(VariableDictionary&&) = default;
diff --git a/media/formats/hls/variable_dictionary.h b/media/formats/hls/variable_dictionary.h index 05b9e1a5..e21e8800 100644 --- a/media/formats/hls/variable_dictionary.h +++ b/media/formats/hls/variable_dictionary.h
@@ -7,13 +7,19 @@ #include <string> +#include "base/strings/string_piece.h" #include "media/base/media_export.h" #include "media/formats/hls/parse_status.h" -#include "media/formats/hls/types.h" #include "third_party/abseil-cpp/absl/types/optional.h" namespace media::hls { +struct SourceString; + +namespace types { +class VariableName; +} + class MEDIA_EXPORT VariableDictionary { public: class SubstitutionBuffer {
diff --git a/media/gpu/windows/d3d11_av1_accelerator.cc b/media/gpu/windows/d3d11_av1_accelerator.cc index 83e66ce..cc74403 100644 --- a/media/gpu/windows/d3d11_av1_accelerator.cc +++ b/media/gpu/windows/d3d11_av1_accelerator.cc
@@ -16,271 +16,6 @@ #include "media/gpu/codec_picture.h" #include "media/gpu/windows/d3d11_picture_buffer.h" -// These are from <dxva.h> in a newer SDK than the one Chrome ships with. They -// should be deleted once Chrome switches to the updated SDK; they have been -// copied from: https://www.microsoft.com/en-us/download/details.aspx?id=101577 -#pragma pack(push, 1) -typedef struct _DXVA_PicEntry_AV1 { - UINT width; - UINT height; - - // Global motion parameters - INT wmmat[6]; - union { - struct { - UCHAR wminvalid : 1; - UCHAR wmtype : 2; - UCHAR Reserved : 5; - }; - UCHAR wGlobalMotionFlags; - }; - - UCHAR Index; - USHORT Reserved16Bits; - -} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1; - -/* AV1 picture parameters structure */ -typedef struct _DXVA_PicParams_AV1 { - UINT width; - UINT height; - - UINT max_width; - UINT max_height; - - UCHAR CurrPicTextureIndex; - UCHAR superres_denom; - UCHAR bitdepth; - UCHAR seq_profile; - - // Tiles: - struct { - UCHAR cols; - UCHAR rows; - USHORT context_update_id; - USHORT widths[64]; - USHORT heights[64]; - } tiles; - - // Coding Tools - union { - struct { - UINT use_128x128_superblock : 1; - UINT intra_edge_filter : 1; - UINT interintra_compound : 1; - UINT masked_compound : 1; - UINT warped_motion : 1; - UINT dual_filter : 1; - UINT jnt_comp : 1; - UINT screen_content_tools : 1; - UINT integer_mv : 1; - UINT cdef : 1; - UINT restoration : 1; - UINT film_grain : 1; - UINT intrabc : 1; - UINT high_precision_mv : 1; - UINT switchable_motion_mode : 1; - UINT filter_intra : 1; - UINT disable_frame_end_update_cdf : 1; - UINT disable_cdf_update : 1; - UINT reference_mode : 1; - UINT skip_mode : 1; - UINT reduced_tx_set : 1; - UINT superres : 1; - UINT tx_mode : 2; - UINT use_ref_frame_mvs : 1; - UINT enable_ref_frame_mvs : 1; - UINT reference_frame_update : 1; - UINT Reserved : 5; - }; - UINT32 CodingParamToolFlags; - } coding; - - // Format & Picture Info flags - union { - struct { - UCHAR frame_type : 2; - UCHAR show_frame : 1; - UCHAR showable_frame : 1; - UCHAR subsampling_x : 1; - UCHAR subsampling_y : 1; - UCHAR mono_chrome : 1; - UCHAR Reserved : 1; - }; - UCHAR FormatAndPictureInfoFlags; - } format; - - // References - UCHAR primary_ref_frame; - UCHAR order_hint; - UCHAR order_hint_bits; - - DXVA_PicEntry_AV1 frame_refs[7]; - UCHAR RefFrameMapTextureIndex[8]; - - // Loop filter parameters - struct { - UCHAR filter_level[2]; - UCHAR filter_level_u; - UCHAR filter_level_v; - - UCHAR sharpness_level; - union { - struct { - UCHAR mode_ref_delta_enabled : 1; - UCHAR mode_ref_delta_update : 1; - UCHAR delta_lf_multi : 1; - UCHAR delta_lf_present : 1; - UCHAR Reserved : 4; - }; - UCHAR ControlFlags; - } DUMMYUNIONNAME; - CHAR ref_deltas[8]; - CHAR mode_deltas[2]; - UCHAR delta_lf_res; - UCHAR frame_restoration_type[3]; - USHORT log2_restoration_unit_size[3]; - UINT16 Reserved16Bits; - } loop_filter; - - // Quantization - struct { - union { - struct { - UCHAR delta_q_present : 1; - UCHAR delta_q_res : 2; - UCHAR Reserved : 5; - }; - UCHAR ControlFlags; - } DUMMYUNIONNAME; - - UCHAR base_qindex; - CHAR y_dc_delta_q; - CHAR u_dc_delta_q; - CHAR v_dc_delta_q; - CHAR u_ac_delta_q; - CHAR v_ac_delta_q; - // using_qmatrix: - UCHAR qm_y; - UCHAR qm_u; - UCHAR qm_v; - UINT16 Reserved16Bits; - } quantization; - - // Cdef parameters - struct { - union { - struct { - UCHAR damping : 2; - UCHAR bits : 2; - UCHAR Reserved : 4; - }; - UCHAR ControlFlags; - } DUMMYUNIONNAME; - - union { - struct { - UCHAR primary : 6; - UCHAR secondary : 2; - }; - UCHAR combined; - } y_strengths[8]; - - union { - struct { - UCHAR primary : 6; - UCHAR secondary : 2; - }; - UCHAR combined; - } uv_strengths[8]; - - } cdef; - - UCHAR interp_filter; - - // Segmentation - struct { - union { - struct { - UCHAR enabled : 1; - UCHAR update_map : 1; - UCHAR update_data : 1; - UCHAR temporal_update : 1; - UCHAR Reserved : 4; - }; - UCHAR ControlFlags; - } DUMMYUNIONNAME; - UCHAR Reserved24Bits[3]; - - union { - struct { - UCHAR alt_q : 1; - UCHAR alt_lf_y_v : 1; - UCHAR alt_lf_y_h : 1; - UCHAR alt_lf_u : 1; - UCHAR alt_lf_v : 1; - UCHAR ref_frame : 1; - UCHAR skip : 1; - UCHAR globalmv : 1; - }; - UCHAR mask; - } feature_mask[8]; - - SHORT feature_data[8][8]; - - } segmentation; - - struct { - union { - struct { - USHORT apply_grain : 1; - USHORT scaling_shift_minus8 : 2; - USHORT chroma_scaling_from_luma : 1; - USHORT ar_coeff_lag : 2; - USHORT ar_coeff_shift_minus6 : 2; - USHORT grain_scale_shift : 2; - USHORT overlap_flag : 1; - USHORT clip_to_restricted_range : 1; - USHORT matrix_coeff_is_identity : 1; - USHORT Reserved : 3; - }; - USHORT ControlFlags; - } DUMMYUNIONNAME; - - USHORT grain_seed; - UCHAR scaling_points_y[14][2]; - UCHAR num_y_points; - UCHAR scaling_points_cb[10][2]; - UCHAR num_cb_points; - UCHAR scaling_points_cr[10][2]; - UCHAR num_cr_points; - UCHAR ar_coeffs_y[24]; - UCHAR ar_coeffs_cb[25]; - UCHAR ar_coeffs_cr[25]; - UCHAR cb_mult; - UCHAR cb_luma_mult; - UCHAR cr_mult; - UCHAR cr_luma_mult; - UCHAR Reserved8Bits; - SHORT cb_offset; - SHORT cr_offset; - } film_grain; - - UINT Reserved32Bits; - UINT StatusReportFeedbackNumber; -} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1; - -typedef struct _DXVA_Tile_AV1 { - UINT DataOffset; - UINT DataSize; - USHORT row; - USHORT column; - USHORT Reserved16Bits; - UCHAR anchor_frame; - UCHAR Reserved8Bits; -} DXVA_Tile_AV1, *LPDXVA_Tile_AV1; -#pragma pack(pop) - namespace media { using DecodeStatus = AV1Decoder::AV1Accelerator::Status;
diff --git a/media/renderers/default_decoder_factory.cc b/media/renderers/default_decoder_factory.cc index f077e56..430ec53 100644 --- a/media/renderers/default_decoder_factory.cc +++ b/media/renderers/default_decoder_factory.cc
@@ -203,6 +203,10 @@ #endif } +base::WeakPtr<DecoderFactory> DefaultDecoderFactory::GetWeakPtr() { + return weak_factory_.GetWeakPtr(); +} + void DefaultDecoderFactory::Shutdown() { base::AutoLock auto_lock(shutdown_lock_); external_decoder_factory_.reset();
diff --git a/media/renderers/default_decoder_factory.h b/media/renderers/default_decoder_factory.h index d38d06a..d738f48 100644 --- a/media/renderers/default_decoder_factory.h +++ b/media/renderers/default_decoder_factory.h
@@ -7,6 +7,7 @@ #include <memory> +#include "base/memory/weak_ptr.h" #include "base/synchronization/lock.h" #include "media/base/decoder_factory.h" #include "media/base/media_export.h" @@ -25,13 +26,12 @@ ~DefaultDecoderFactory() final; + // DecoderFactory implementation. void CreateAudioDecoders( scoped_refptr<base::SequencedTaskRunner> task_runner, MediaLog* media_log, std::vector<std::unique_ptr<AudioDecoder>>* audio_decoders) final; - SupportedVideoDecoderConfigs GetSupportedVideoDecoderConfigsForWebRTC() final; - void CreateVideoDecoders( scoped_refptr<base::SequencedTaskRunner> task_runner, GpuVideoAcceleratorFactories* gpu_factories, @@ -44,12 +44,16 @@ // vended on other threads. void Shutdown(); + base::WeakPtr<DecoderFactory> GetWeakPtr(); + private: base::Lock shutdown_lock_; bool is_shutdown_ GUARDED_BY(shutdown_lock_) = false; std::unique_ptr<DecoderFactory> external_decoder_factory_ GUARDED_BY(shutdown_lock_); + + base::WeakPtrFactory<DefaultDecoderFactory> weak_factory_{this}; }; } // namespace media
diff --git a/net/extras/sqlite/OWNERS b/net/extras/sqlite/OWNERS index b364c82b..f0bb2c05 100644 --- a/net/extras/sqlite/OWNERS +++ b/net/extras/sqlite/OWNERS
@@ -1,5 +1,8 @@ -pwnall@chromium.org -mek@chromium.org +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org per-file sqlite_persistent_cookie_store*=file://net/cookies/OWNERS per-file sqlite_persistent_reporting_and_nel_store*=file://net/reporting/OWNERS
diff --git a/sandbox/win/src/process_mitigations.h b/sandbox/win/src/process_mitigations.h index c9a0ee0..d418c51f 100644 --- a/sandbox/win/src/process_mitigations.h +++ b/sandbox/win/src/process_mitigations.h
@@ -11,23 +11,6 @@ #include "sandbox/win/src/security_level.h" -// This will be defined in an upcoming Windows SDK release -#ifndef COMPONENT_KTM - -#define COMPONENT_KTM 0x01 -#define COMPONENT_VALID_FLAGS (COMPONENT_KTM) -#define ProcThreadAttributeComponentFilter 26 - -typedef struct _COMPONENT_FILTER { - ULONG ComponentFlags; -} COMPONENT_FILTER, *PCOMPONENT_FILTER; - -#define PROC_THREAD_ATTRIBUTE_COMPONENT_FILTER \ - ProcThreadAttributeValue(ProcThreadAttributeComponentFilter, FALSE, TRUE, \ - FALSE) - -#endif // COMPONENT_KTM - namespace sandbox { // Sets the mitigation policy for the current process, ignoring any settings
diff --git a/sql/OWNERS b/sql/OWNERS index 42ca6f9..cb6a287 100644 --- a/sql/OWNERS +++ b/sql/OWNERS
@@ -5,5 +5,3 @@ # Secondary: ayui@chromium.org -mek@chromium.org -pwnall@chromium.org
diff --git a/storage/OWNERS b/storage/OWNERS index 79b8072..16d75f83 100644 --- a/storage/OWNERS +++ b/storage/OWNERS
@@ -1,5 +1,9 @@ set noparent + +# Primary +ayui@chromium.org + +# Secondary +asully@chromium.org dmurph@chromium.org jsbell@chromium.org -pwnall@chromium.org -mek@chromium.org
diff --git a/storage/browser/database/OWNERS b/storage/browser/database/OWNERS index dd55f95..e674dc93 100644 --- a/storage/browser/database/OWNERS +++ b/storage/browser/database/OWNERS
@@ -1,5 +1,5 @@ # Primary -pwnall@chromium.org +asully@chromium.org # Seconday -mek@chromium.org +ayui@chromium.org
diff --git a/storage/browser/quota/OWNERS b/storage/browser/quota/OWNERS index a1f98d7e..2d495dc6 100644 --- a/storage/browser/quota/OWNERS +++ b/storage/browser/quota/OWNERS
@@ -2,10 +2,9 @@ ayui@chromium.org # Secondary +asully@chromium.org jarrydg@chromium.org jsbell@chromium.org -mek@chromium.org -pwnall@chromium.org per-file *.mojom=set noparent per-file *.mojom=file://ipc/SECURITY_OWNERS
diff --git a/testing/buildbot/chrome.json b/testing/buildbot/chrome.json index 0c1d742..55036f36 100644 --- a/testing/buildbot/chrome.json +++ b/testing/buildbot/chrome.json
@@ -1834,7 +1834,7 @@ { "args": [], "cros_board": "atlas", - "cros_img": "atlas-release/R99-14469.59.0", + "cros_img": "atlas-release/R100-14526.57.0", "name": "lacros_all_tast_tests_ATLAS_RELEASE_STABLE", "resultdb": { "enable": true, @@ -1894,7 +1894,7 @@ { "args": [], "cros_board": "eve", - "cros_img": "eve-release/R99-14469.58.0", + "cros_img": "eve-release/R100-14526.57.0", "name": "lacros_all_tast_tests_EVE_RELEASE_STABLE", "resultdb": { "enable": true, @@ -2059,7 +2059,7 @@ { "args": [], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R99-14469.59.0", + "cros_img": "jacuzzi-release/R100-14526.57.0", "name": "lacros_all_tast_tests_JACUZZI_RELEASE_STABLE", "resultdb": { "enable": true, @@ -2188,7 +2188,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.ozone_unittests.filter" ], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R99-14469.59.0", + "cros_img": "jacuzzi-release/R100-14526.57.0", "name": "ozone_unittests_JACUZZI_RELEASE_STABLE", "resultdb": { "enable": true, @@ -2316,7 +2316,7 @@ "--test-launcher-filter-file=../../testing/buildbot/filters/lacros-arm.viz_unittests.filter" ], "cros_board": "jacuzzi", - "cros_img": "jacuzzi-release/R99-14469.59.0", + "cros_img": "jacuzzi-release/R100-14526.57.0", "name": "viz_unittests_JACUZZI_RELEASE_STABLE", "resultdb": { "enable": true,
diff --git a/testing/buildbot/chromium.android.fyi.json b/testing/buildbot/chromium.android.fyi.json index f84a24e6..97c8236 100644 --- a/testing/buildbot/chromium.android.fyi.json +++ b/testing/buildbot/chromium.android.fyi.json
@@ -8178,7 +8178,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8262,7 +8262,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8682,7 +8682,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -8766,7 +8766,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index 3559d619..2f06a2dc 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -45929,7 +45929,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46013,7 +46013,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46433,7 +46433,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46517,7 +46517,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -46941,7 +46941,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47025,7 +47025,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47445,7 +47445,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -47529,7 +47529,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48020,7 +48020,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48104,7 +48104,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48524,7 +48524,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -48608,7 +48608,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49099,7 +49099,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49183,7 +49183,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49603,7 +49603,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M100", - "revision": "version:100.0.4896.75" + "revision": "version:100.0.4896.79" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}", @@ -49687,7 +49687,7 @@ { "cipd_package": "chromium/testing/weblayer-x86", "location": "weblayer_instrumentation_test_M101", - "revision": "version:101.0.4951.19" + "revision": "version:101.0.4951.20" }, { "cipd_package": "infra/tools/luci/logdog/butler/${platform}",
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index fd1148e..3611869f 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -5795,7 +5795,7 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "isolate_profile_data": true, @@ -5803,14 +5803,14 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "dimension_sets": [ @@ -5937,7 +5937,7 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "isolate_profile_data": true, @@ -5945,14 +5945,14 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "dimension_sets": [
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index afda841..fb30fc6 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -86115,7 +86115,7 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "isolate_profile_data": true, @@ -86123,14 +86123,14 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -86232,7 +86232,7 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "isolate_profile_data": true, @@ -86240,14 +86240,14 @@ "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -87614,21 +87614,21 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "dimension_sets": [ @@ -87756,21 +87756,21 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "dimension_sets": [ @@ -89311,21 +89311,21 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "dimension_sets": [ @@ -89453,21 +89453,21 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "dimension_sets": [ @@ -90204,21 +90204,21 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com" @@ -90300,21 +90300,21 @@ }, { "args": [ - "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome", + "--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome", "--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter" ], "merge": { "args": [], "script": "//testing/merge_scripts/standard_gtest_merge.py" }, - "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4978.0", + "name": "lacros_chrome_browsertests_run_in_series_Lacros version skew testing ash 102.0.4980.0", "swarming": { "can_use_on_swarming_builders": true, "cipd_packages": [ { "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip", - "location": "lacros_version_skew_tests_v102.0.4978.0", - "revision": "version:102.0.4978.0" + "location": "lacros_version_skew_tests_v102.0.4980.0", + "revision": "version:102.0.4980.0" } ], "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
diff --git a/testing/buildbot/internal.chromeos.fyi.json b/testing/buildbot/internal.chromeos.fyi.json index d8b44a6..1476ec2b 100644 --- a/testing/buildbot/internal.chromeos.fyi.json +++ b/testing/buildbot/internal.chromeos.fyi.json
@@ -1159,7 +1159,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R99-14469.59.0", + "cros_img": "octopus-release/R100-14526.57.0", "name": "lacros_fyi_tast_tests_OCTOPUS_RELEASE_STABLE", "swarming": {}, "tast_expr": "(\"group:mainline\" && \"dep:lacros\" && !informational)", @@ -1200,7 +1200,7 @@ { "args": [], "cros_board": "octopus", - "cros_img": "octopus-release/R99-14469.59.0", + "cros_img": "octopus-release/R100-14526.57.0", "name": "ozone_unittests_OCTOPUS_RELEASE_STABLE", "swarming": {}, "test": "ozone_unittests",
diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl index ea72ab5e..d7a1ab7 100644 --- a/testing/buildbot/variants.pyl +++ b/testing/buildbot/variants.pyl
@@ -28,16 +28,16 @@ }, 'LACROS_VERSION_SKEW_CANARY': { 'args': [ - '--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4978.0/test_ash_chrome', + '--ash-chrome-path-override=../../lacros_version_skew_tests_v102.0.4980.0/test_ash_chrome', '--test-launcher-filter-file=../../testing/buildbot/filters/linux-lacros.lacros_chrome_browsertests.skew.filter', ], - 'identifier': 'Lacros version skew testing ash 102.0.4978.0', + 'identifier': 'Lacros version skew testing ash 102.0.4980.0', 'swarming': { 'cipd_packages': [ { 'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip', - 'location': 'lacros_version_skew_tests_v102.0.4978.0', - 'revision': 'version:102.0.4978.0', + 'location': 'lacros_version_skew_tests_v102.0.4980.0', + 'revision': 'version:102.0.4980.0', }, ], }, @@ -459,7 +459,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M101', - 'revision': 'version:101.0.4951.19', + 'revision': 'version:101.0.4951.20', } ], }, @@ -483,7 +483,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M100', - 'revision': 'version:100.0.4896.75', + 'revision': 'version:100.0.4896.79', } ], }, @@ -603,7 +603,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M101', - 'revision': 'version:101.0.4951.19', + 'revision': 'version:101.0.4951.20', } ], }, @@ -627,7 +627,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M100', - 'revision': 'version:100.0.4896.75', + 'revision': 'version:100.0.4896.79', } ], }, @@ -747,7 +747,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M101', - 'revision': 'version:101.0.4951.19', + 'revision': 'version:101.0.4951.20', } ], }, @@ -771,7 +771,7 @@ { 'cipd_package': 'chromium/testing/weblayer-x86', 'location': 'weblayer_instrumentation_test_M100', - 'revision': 'version:100.0.4896.75', + 'revision': 'version:100.0.4896.79', } ], }, @@ -902,8 +902,8 @@ 'CROS_ATLAS_RELEASE_STABLE': { 'skylab': { 'cros_board': 'atlas', - 'cros_chrome_version': '99.0.4844.94', - 'cros_img': 'atlas-release/R99-14469.59.0', + 'cros_chrome_version': '100.0.4896.64', + 'cros_img': 'atlas-release/R100-14526.57.0', }, 'enabled': True, 'identifier': 'ATLAS_RELEASE_STABLE', @@ -938,8 +938,8 @@ 'CROS_EVE_RELEASE_STABLE': { 'skylab': { 'cros_board': 'eve', - 'cros_chrome_version': '99.0.4844.86', - 'cros_img': 'eve-release/R99-14469.58.0', + 'cros_chrome_version': '100.0.4896.64', + 'cros_img': 'eve-release/R100-14526.57.0', }, 'enabled': True, 'identifier': 'EVE_RELEASE_STABLE', @@ -1019,8 +1019,8 @@ 'CROS_JACUZZI_RELEASE_STABLE': { 'skylab': { 'cros_board': 'jacuzzi', - 'cros_chrome_version': '99.0.4844.94', - 'cros_img': 'jacuzzi-release/R99-14469.59.0', + 'cros_chrome_version': '100.0.4896.64', + 'cros_img': 'jacuzzi-release/R100-14526.57.0', }, 'enabled': True, 'identifier': 'JACUZZI_RELEASE_STABLE', @@ -1064,8 +1064,8 @@ 'CROS_OCTOPUS_RELEASE_STABLE': { 'skylab': { 'cros_board': 'octopus', - 'cros_chrome_version': '99.0.4844.94', - 'cros_img': 'octopus-release/R99-14469.59.0', + 'cros_chrome_version': '100.0.4896.64', + 'cros_img': 'octopus-release/R100-14526.57.0', }, 'enabled': True, 'identifier': 'OCTOPUS_RELEASE_STABLE',
diff --git a/testing/gmock/OWNERS b/testing/gmock/OWNERS index 391c61bc..8a7bec9 100644 --- a/testing/gmock/OWNERS +++ b/testing/gmock/OWNERS
@@ -1,3 +1,3 @@ thakis@chromium.org asully@chromium.org -pwnall@chromium.org +ayui@chromium.org
diff --git a/testing/gtest/OWNERS b/testing/gtest/OWNERS index 391c61bc..8a7bec9 100644 --- a/testing/gtest/OWNERS +++ b/testing/gtest/OWNERS
@@ -1,3 +1,3 @@ thakis@chromium.org asully@chromium.org -pwnall@chromium.org +ayui@chromium.org
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index 874cd502..dac75a3 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -1284,6 +1284,27 @@ ] } ], + "AvoidUnnecessaryBeforeUnloadCheckSync": [ + { + "platforms": [ + "android", + "android_weblayer", + "chromeos", + "chromeos_lacros", + "linux", + "mac", + "windows" + ], + "experiments": [ + { + "name": "Enabled", + "enable_features": [ + "AvoidUnnecessaryBeforeUnloadCheckSync" + ] + } + ] + } + ], "BackForwardCache": [ { "platforms": [ @@ -2912,7 +2933,10 @@ ], "experiments": [ { - "name": "Enabled_M100", + "name": "Enabled_MovementThreshold_6_20220328", + "params": { + "DragAndDropMovementThresholdDipParam": "6" + }, "enable_features": [ "ContextMenuPopupStyle", "TouchDragAndContextMenu"
diff --git a/third_party/blink/public/common/storage_key/OWNERS b/third_party/blink/public/common/storage_key/OWNERS index 6c184647..0150cd605 100644 --- a/third_party/blink/public/common/storage_key/OWNERS +++ b/third_party/blink/public/common/storage_key/OWNERS
@@ -1,12 +1,12 @@ file://storage/OWNERS # Primary: -mek@chromium.org +ayui@chromium.org # Secondary: arichiv@chromium.org +asully@chromium.org bingler@chromium.org -pwnall@chromium.org wanderview@chromium.org per-file *_mojom_traits*.*=set noparent
diff --git a/third_party/blink/public/platform/platform.h b/third_party/blink/public/platform/platform.h index b68c90f1..0825226 100644 --- a/third_party/blink/public/platform/platform.h +++ b/third_party/blink/public/platform/platform.h
@@ -813,7 +813,9 @@ return nullptr; } - virtual media::DecoderFactory* GetMediaDecoderFactory() { return nullptr; } + virtual base::WeakPtr<media::DecoderFactory> GetMediaDecoderFactory() { + return nullptr; + } virtual void SetRenderingColorSpace(const gfx::ColorSpace& color_space) {}
diff --git a/third_party/blink/renderer/core/clipboard/OWNERS b/third_party/blink/renderer/core/clipboard/OWNERS index e0898d3..8ea13e2 100644 --- a/third_party/blink/renderer/core/clipboard/OWNERS +++ b/third_party/blink/renderer/core/clipboard/OWNERS
@@ -1,6 +1,6 @@ # Primary: -mek@chromium.org +asully@chromium.org # Secondary: dcheng@chromium.org -pwnall@chromium.org +ayui@chromium.org
diff --git a/third_party/blink/renderer/core/fileapi/OWNERS b/third_party/blink/renderer/core/fileapi/OWNERS index fa93d10..8617e22 100644 --- a/third_party/blink/renderer/core/fileapi/OWNERS +++ b/third_party/blink/renderer/core/fileapi/OWNERS
@@ -1,3 +1,6 @@ +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org jsbell@chromium.org -mek@chromium.org -pwnall@chromium.org
diff --git a/third_party/blink/renderer/core/html/html_link_element.cc b/third_party/blink/renderer/core/html/html_link_element.cc index 35b48d5..4303595 100644 --- a/third_party/blink/renderer/core/html/html_link_element.cc +++ b/third_party/blink/renderer/core/html/html_link_element.cc
@@ -334,11 +334,6 @@ DispatchEvent(*Event::Create(event_type_names::kError)); } -scoped_refptr<base::SingleThreadTaskRunner> -HTMLLinkElement::GetLoadingTaskRunner() { - return GetDocument().GetTaskRunner(TaskType::kNetworking); -} - bool HTMLLinkElement::SheetLoaded() { DCHECK(GetLinkStyle()); return GetLinkStyle()->SheetLoaded();
diff --git a/third_party/blink/renderer/core/html/html_link_element.h b/third_party/blink/renderer/core/html/html_link_element.h index 905e62f..60e6e15 100644 --- a/third_party/blink/renderer/core/html/html_link_element.h +++ b/third_party/blink/renderer/core/html/html_link_element.h
@@ -157,7 +157,6 @@ // From LinkLoaderClient void LinkLoaded() override; void LinkLoadingErrored() override; - scoped_refptr<base::SingleThreadTaskRunner> GetLoadingTaskRunner() override; Member<LinkResource> link_; Member<LinkLoader> link_loader_;
diff --git a/third_party/blink/renderer/core/loader/link_loader_client.h b/third_party/blink/renderer/core/loader/link_loader_client.h index d5d1716..bdc7db4 100644 --- a/third_party/blink/renderer/core/loader/link_loader_client.h +++ b/third_party/blink/renderer/core/loader/link_loader_client.h
@@ -50,10 +50,6 @@ // There is no notification for cancellation. virtual bool IsLinkCreatedByParser() = 0; - - // TODO(xiaochengh): Remove this unused function. - virtual scoped_refptr<base::SingleThreadTaskRunner> - GetLoadingTaskRunner() = 0; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/loader/link_loader_test.cc b/third_party/blink/renderer/core/loader/link_loader_test.cc index 4a80375..3b952c2b 100644 --- a/third_party/blink/renderer/core/loader/link_loader_test.cc +++ b/third_party/blink/renderer/core/loader/link_loader_test.cc
@@ -53,10 +53,6 @@ void LinkLoaded() override {} void LinkLoadingErrored() override {} - scoped_refptr<base::SingleThreadTaskRunner> GetLoadingTaskRunner() override { - return Thread::Current()->GetTaskRunner(); - } - private: const bool should_load_; };
diff --git a/third_party/blink/renderer/core/paint/box_border_painter.cc b/third_party/blink/renderer/core/paint/box_border_painter.cc index 99446bb..916128b2 100644 --- a/third_party/blink/renderer/core/paint/box_border_painter.cc +++ b/third_party/blink/renderer/core/paint/box_border_painter.cc
@@ -922,12 +922,10 @@ const ComputedStyle& style, const PhysicalRect& border_rect, int width, - int inner_outset_x, - int inner_outset_y) + const LayoutRectOutsets& inner_outsets) : context_(context), border_rect_(border_rect), - outer_outset_x_(inner_outset_x + width), - outer_outset_y_(inner_outset_y + width), + outer_outsets_(inner_outsets + LayoutUnit(width)), style_(style), bleed_avoidance_(kBackgroundBleedNone), sides_to_include_(PhysicalBoxSides()), @@ -949,15 +947,11 @@ ComputeBorderProperties(); outer_ = RoundedBorderGeometry::PixelSnappedRoundedBorderWithOutsets( - style, border_rect, - LayoutRectOutsets(outer_outset_y_, outer_outset_x_, outer_outset_y_, - outer_outset_x_)); + style, border_rect, outer_outsets_); is_rounded_ = outer_.IsRounded(); inner_ = RoundedBorderGeometry::PixelSnappedRoundedBorderWithOutsets( - style, border_rect, - LayoutRectOutsets(inner_outset_y, inner_outset_x, inner_outset_y, - inner_outset_x)); + style, border_rect, inner_outsets); } void BoxBorderPainter::ComputeBorderProperties() { @@ -1770,22 +1764,20 @@ LayoutRectOutsets BoxBorderPainter::DoubleStripeOutsets( BorderEdge::DoubleBorderStripe stripe) const { - return LayoutRectOutsets( - outer_outset_y_ - Edge(BoxSide::kTop).GetDoubleBorderStripeWidth(stripe), - outer_outset_x_ - - Edge(BoxSide::kRight).GetDoubleBorderStripeWidth(stripe), - outer_outset_y_ - - Edge(BoxSide::kBottom).GetDoubleBorderStripeWidth(stripe), - outer_outset_x_ - - Edge(BoxSide::kLeft).GetDoubleBorderStripeWidth(stripe)); + return outer_outsets_ - + LayoutRectOutsets( + Edge(BoxSide::kTop).GetDoubleBorderStripeWidth(stripe), + Edge(BoxSide::kRight).GetDoubleBorderStripeWidth(stripe), + Edge(BoxSide::kBottom).GetDoubleBorderStripeWidth(stripe), + Edge(BoxSide::kLeft).GetDoubleBorderStripeWidth(stripe)); } LayoutRectOutsets BoxBorderPainter::CenterOutsets() const { - return LayoutRectOutsets( - outer_outset_y_ - Edge(BoxSide::kTop).UsedWidth() * 0.5, - outer_outset_x_ - Edge(BoxSide::kRight).UsedWidth() * 0.5, - outer_outset_y_ - Edge(BoxSide::kBottom).UsedWidth() * 0.5, - outer_outset_x_ - Edge(BoxSide::kLeft).UsedWidth() * 0.5); + return outer_outsets_ - + LayoutRectOutsets(Edge(BoxSide::kTop).UsedWidth() * 0.5, + Edge(BoxSide::kRight).UsedWidth() * 0.5, + Edge(BoxSide::kBottom).UsedWidth() * 0.5, + Edge(BoxSide::kLeft).UsedWidth() * 0.5); } bool BoxBorderPainter::ColorsMatchAtCorner(BoxSide side,
diff --git a/third_party/blink/renderer/core/paint/box_border_painter.h b/third_party/blink/renderer/core/paint/box_border_painter.h index fe6155fe..58abdb0 100644 --- a/third_party/blink/renderer/core/paint/box_border_painter.h +++ b/third_party/blink/renderer/core/paint/box_border_painter.h
@@ -10,13 +10,13 @@ #include "third_party/blink/renderer/core/layout/geometry/physical_rect.h" #include "third_party/blink/renderer/core/style/border_edge.h" #include "third_party/blink/renderer/platform/geometry/float_rounded_rect.h" +#include "third_party/blink/renderer/platform/geometry/layout_rect_outsets.h" #include "third_party/blink/renderer/platform/graphics/graphics_context.h" namespace blink { class ComputedStyle; class Path; -struct PhysicalRect; typedef unsigned BorderEdgeFlags; @@ -38,11 +38,8 @@ const ComputedStyle& style, const PhysicalRect& border_rect, int width, - int inner_outset_x, - int inner_outset_y) { - BoxBorderPainter(context, style, border_rect, width, inner_outset_x, - inner_outset_y) - .Paint(); + const LayoutRectOutsets& inner_outsets) { + BoxBorderPainter(context, style, border_rect, width, inner_outsets).Paint(); } static void DrawBoxSide(GraphicsContext& context, @@ -85,8 +82,7 @@ const ComputedStyle&, const PhysicalRect& border_rect, int width, - int inner_outset_x, - int inner_outset_y); + const LayoutRectOutsets& inner_outsets); void Paint() const; @@ -167,8 +163,7 @@ // const inputs const PhysicalRect border_rect_; - const LayoutUnit outer_outset_x_; - const LayoutUnit outer_outset_y_; + const LayoutRectOutsets outer_outsets_; const ComputedStyle& style_; const BackgroundBleedAvoidance bleed_avoidance_; const PhysicalBoxSides sides_to_include_;
diff --git a/third_party/blink/renderer/core/paint/outline_painter.cc b/third_party/blink/renderer/core/paint/outline_painter.cc index f472741..83bae1f 100644 --- a/third_party/blink/renderer/core/paint/outline_painter.cc +++ b/third_party/blink/renderer/core/paint/outline_painter.cc
@@ -71,11 +71,9 @@ // A negative outline-offset should not cause the rendered outline shape to // become smaller than twice the computed value of the outline-width, in each // direction separately. See: https://drafts.csswg.org/css-ui/#outline-offset -int AdjustedOutlineOffsetX(const gfx::Rect& rect, int offset) { - return std::max(offset, -rect.width() / 2); -} -int AdjustedOutlineOffsetY(const gfx::Rect& rect, int offset) { - return std::max(offset, -rect.height() / 2); +gfx::Outsets AdjustedOutlineOffset(const gfx::Rect& rect, int offset) { + return gfx::Outsets::VH(std::max(offset, -rect.height() / 2), + std::max(offset, -rect.width() / 2)); } // Construct a clockwise path along the outer edge of the region covered by @@ -89,8 +87,7 @@ SkRegion region; for (auto& r : rects) { gfx::Rect rect = r; - rect.Outset(AdjustedOutlineOffsetX(rect, outline_offset), - AdjustedOutlineOffsetY(rect, outline_offset)); + rect.Outset(AdjustedOutlineOffset(rect, outline_offset)); rect.Outset(additional_outset); region.op(gfx::RectToSkIRect(rect), SkRegion::kUnion_Op); } @@ -893,8 +890,8 @@ if (*united_outline_rect == pixel_snapped_outline_rects[0]) { BoxBorderPainter::PaintSingleRectOutline( paint_info.context, style, outline_rects[0], info.width, - AdjustedOutlineOffsetX(*united_outline_rect, info.offset), - AdjustedOutlineOffsetY(*united_outline_rect, info.offset)); + LayoutRectOutsets( + AdjustedOutlineOffset(*united_outline_rect, info.offset))); return; }
diff --git a/third_party/blink/renderer/modules/clipboard/OWNERS b/third_party/blink/renderer/modules/clipboard/OWNERS index 123405e..be1832c 100644 --- a/third_party/blink/renderer/modules/clipboard/OWNERS +++ b/third_party/blink/renderer/modules/clipboard/OWNERS
@@ -1,6 +1,6 @@ # Primary: -mek@chromium.org +asully@chromium.org # Secondary: +ayui@chromium.org garykac@chromium.org -pwnall@chromium.org
diff --git a/third_party/blink/renderer/modules/filesystem/OWNERS b/third_party/blink/renderer/modules/filesystem/OWNERS index 3a7aca4..8617e22 100644 --- a/third_party/blink/renderer/modules/filesystem/OWNERS +++ b/third_party/blink/renderer/modules/filesystem/OWNERS
@@ -1,7 +1,6 @@ # Primary -mek@chromium.org +asully@chromium.org # Secondary -asully@chromium.org +ayui@chromium.org jsbell@chromium.org -pwnall@chromium.org
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc index 1335f5b..0d2a9b2 100644 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc
@@ -326,7 +326,7 @@ void ReportUmaEncodeDecodeCapabilities( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* media_decoder_factory) { + base::WeakPtr<media::DecoderFactory> media_decoder_factory) { const gfx::ColorSpace& render_color_space = Platform::Current()->GetRenderingColorSpace(); scoped_refptr<base::SequencedTaskRunner> media_task_runner = @@ -376,7 +376,7 @@ void WaitForEncoderSupportReady( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* media_decoder_factory) { + base::WeakPtr<media::DecoderFactory> media_decoder_factory) { gpu_factories->NotifyEncoderSupportKnown( base::BindOnce(&ReportUmaEncodeDecodeCapabilities, gpu_factories, media_decoder_factory)); @@ -529,7 +529,7 @@ Platform::Current()->GetRenderingColorSpace(), Platform::Current()->MediaThreadTaskRunner(), CrossThreadUnretained(Platform::Current()->GetGpuFactories()), - CrossThreadUnretained(Platform::Current()->GetMediaDecoderFactory()), + Platform::Current()->GetMediaDecoderFactory(), CrossThreadUnretained(&start_signaling_event))); start_signaling_event.Wait(); @@ -543,7 +543,7 @@ const gfx::ColorSpace& render_color_space, scoped_refptr<base::SequencedTaskRunner> media_task_runner, media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* media_decoder_factory, + base::WeakPtr<media::DecoderFactory> media_decoder_factory, base::WaitableEvent* event) { DCHECK(GetChromeSignalingThread().task_runner()->BelongsToCurrentThread()); DCHECK(GetNetworkThread());
diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h index 1649c85..d893921 100644 --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.h
@@ -171,7 +171,7 @@ const gfx::ColorSpace& render_color_space, scoped_refptr<base::SequencedTaskRunner> media_task_runner, media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* media_decoder_factory, + base::WeakPtr<media::DecoderFactory> media_decoder_factory, base::WaitableEvent* event); void CreateIpcNetworkManagerOnNetworkThread(
diff --git a/third_party/blink/renderer/modules/webdatabase/OWNERS b/third_party/blink/renderer/modules/webdatabase/OWNERS index db075dd..e23d3f1e 100644 --- a/third_party/blink/renderer/modules/webdatabase/OWNERS +++ b/third_party/blink/renderer/modules/webdatabase/OWNERS
@@ -1,6 +1,6 @@ # Primary -pwnall@chromium.org +asully@chromium.org # Secondary arichiv@chromium.org -mek@chromium.org +ayui@chromium.org
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_object.cc b/third_party/blink/renderer/modules/webgpu/dawn_object.cc index 45403ab..5439263 100644 --- a/third_party/blink/renderer/modules/webgpu/dawn_object.cc +++ b/third_party/blink/renderer/modules/webgpu/dawn_object.cc
@@ -36,6 +36,7 @@ void DawnObjectBase::setLabel(const String& value) { // TODO: Relay label changes to Dawn label_ = value; + setLabelImpl(value); } void DawnObjectBase::EnsureFlush() {
diff --git a/third_party/blink/renderer/modules/webgpu/dawn_object.h b/third_party/blink/renderer/modules/webgpu/dawn_object.h index 58546eb..5da7130 100644 --- a/third_party/blink/renderer/modules/webgpu/dawn_object.h +++ b/third_party/blink/renderer/modules/webgpu/dawn_object.h
@@ -104,6 +104,8 @@ void setLabel(const String& value); + virtual void setLabelImpl(const String& value){}; + private: scoped_refptr<DawnControlClientHolder> dawn_control_client_; String label_;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_bind_group.h b/third_party/blink/renderer/modules/webgpu/gpu_bind_group.h index dcfd7c5f..4259aac 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_bind_group.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_bind_group.h
@@ -23,6 +23,11 @@ GPUBindGroup(const GPUBindGroup&) = delete; GPUBindGroup& operator=(const GPUBindGroup&) = delete; + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().bindGroupSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h index 5c64cb49..85714f32 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_bind_group_layout.h
@@ -25,6 +25,11 @@ GPUBindGroupLayout(const GPUBindGroupLayout&) = delete; GPUBindGroupLayout& operator=(const GPUBindGroupLayout&) = delete; + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().bindGroupLayoutSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_buffer.h b/third_party/blink/renderer/modules/webgpu/gpu_buffer.h index 7f3b3c5..13191c0 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_buffer.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_buffer.h
@@ -77,6 +77,11 @@ ExecutionContext* execution_context); void ResetMappingState(v8::Isolate* isolate); + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().bufferSetLabel(GetHandle(), utf8_label.c_str()); + } + uint64_t size_; // Holds onto any ArrayBuffers returned by getMappedRange, mapReadAsync, or
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h b/third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h index 23c78b4..aecc03d 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_command_buffer.h
@@ -18,6 +18,12 @@ GPUCommandBuffer(const GPUCommandBuffer&) = delete; GPUCommandBuffer& operator=(const GPUCommandBuffer&) = delete; + + private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().commandBufferSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.h b/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.h index df63620..1df1537 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_command_encoder.h
@@ -94,6 +94,11 @@ offset, size); } GPUCommandBuffer* finish(const GPUCommandBufferDescriptor* descriptor); + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().commandEncoderSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_encoder.h b/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_encoder.h index 7e2002d9..f36d25d 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_encoder.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_compute_pass_encoder.h
@@ -72,6 +72,11 @@ } void end() { GetProcs().computePassEncoderEnd(GetHandle()); } void endPass(); + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().computePassEncoderSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline.h b/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline.h index 552590a..62469bc 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_compute_pipeline.h
@@ -32,6 +32,11 @@ GPUComputePipeline& operator=(const GPUComputePipeline&) = delete; GPUBindGroupLayout* getBindGroupLayout(uint32_t index); + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().computePipelineSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_external_texture.h b/third_party/blink/renderer/modules/webgpu/gpu_external_texture.h index aecde69..f353f39 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_external_texture.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_external_texture.h
@@ -33,6 +33,11 @@ void Destroy(); private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().externalTextureSetLabel(GetHandle(), utf8_label.c_str()); + } + scoped_refptr<WebGPUMailboxTexture> mailbox_texture_; };
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_query_set.h b/third_party/blink/renderer/modules/webgpu/gpu_query_set.h index fd48776..91b7fb83 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_query_set.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_query_set.h
@@ -25,6 +25,12 @@ // gpu_queryset.idl void destroy(); + + private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().querySetSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_bundle_encoder.h b/third_party/blink/renderer/modules/webgpu/gpu_render_bundle_encoder.h index 91d5e21..c2bce06 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_bundle_encoder.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_render_bundle_encoder.h
@@ -120,6 +120,11 @@ } GPURenderBundle* finish(const GPURenderBundleDescriptor* webgpu_desc); + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().renderBundleEncoderSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pass_encoder.h b/third_party/blink/renderer/modules/webgpu/gpu_render_pass_encoder.h index 90dea74d..ad63ba3 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_pass_encoder.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pass_encoder.h
@@ -144,6 +144,11 @@ } void end() { GetProcs().renderPassEncoderEnd(GetHandle()); } void endPass(); + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().renderPassEncoderSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h index 1f88adc..2c00bac5 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_render_pipeline.h
@@ -92,6 +92,12 @@ GPURenderPipeline& operator=(const GPURenderPipeline&) = delete; GPUBindGroupLayout* getBindGroupLayout(uint32_t index); + + private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().renderPipelineSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_sampler.h b/third_party/blink/renderer/modules/webgpu/gpu_sampler.h index b20c09cd..0babacb3 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_sampler.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_sampler.h
@@ -21,6 +21,12 @@ GPUSampler(const GPUSampler&) = delete; GPUSampler& operator=(const GPUSampler&) = delete; + + private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().samplerSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_shader_module.h b/third_party/blink/renderer/modules/webgpu/gpu_shader_module.h index c9c667a..d2e8b62a 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_shader_module.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_shader_module.h
@@ -34,6 +34,11 @@ void OnCompilationInfoCallback(ScriptPromiseResolver* resolver, WGPUCompilationInfoRequestStatus status, const WGPUCompilationInfo* info); + + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().shaderModuleSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_texture.h b/third_party/blink/renderer/modules/webgpu/gpu_texture.h index f053a00..6232b1b 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_texture.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_texture.h
@@ -53,6 +53,11 @@ WGPUTextureUsage Usage() { return usage_; } private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().textureSetLabel(GetHandle(), utf8_label.c_str()); + } + WGPUTextureDimension dimension_; WGPUTextureFormat format_; WGPUTextureUsage usage_;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_texture_view.h b/third_party/blink/renderer/modules/webgpu/gpu_texture_view.h index 89a040b..b1d6d133 100644 --- a/third_party/blink/renderer/modules/webgpu/gpu_texture_view.h +++ b/third_party/blink/renderer/modules/webgpu/gpu_texture_view.h
@@ -17,6 +17,12 @@ GPUTextureView(const GPUTextureView&) = delete; GPUTextureView& operator=(const GPUTextureView&) = delete; + + private: + void setLabelImpl(const String& value) override { + std::string utf8_label = value.Utf8(); + GetProcs().textureViewSetLabel(GetHandle(), utf8_label.c_str()); + } }; } // namespace blink
diff --git a/third_party/blink/renderer/platform/fonts/font_platform_data.cc b/third_party/blink/renderer/platform/fonts/font_platform_data.cc index c01080d..26ad2e7 100644 --- a/third_party/blink/renderer/platform/fonts/font_platform_data.cc +++ b/third_party/blink/renderer/platform/fonts/font_platform_data.cc
@@ -207,9 +207,7 @@ #if !BUILDFLAG(IS_MAC) bool FontPlatformData::FontContainsCharacter(UChar32 character) { - SkFont font; - SetupSkFont(&font); - return font.unicharToGlyph(character); + return CreateSkFont().unicharToGlyph(character); } #endif @@ -236,18 +234,20 @@ return result; } -void FontPlatformData::SetupSkFont(SkFont* font, - float device_scale_factor, - const FontDescription*) const { - style_.ApplyToSkFont(font, device_scale_factor); +SkFont FontPlatformData::CreateSkFont(float device_scale_factor, + const FontDescription*) const { + SkFont font; + style_.ApplyToSkFont(&font, device_scale_factor); const float ts = text_size_ >= 0 ? text_size_ : 12; - font->setSize(SkFloatToScalar(ts)); - font->setTypeface(typeface_); - font->setEmbolden(synthetic_bold_); - font->setSkewX(synthetic_italic_ ? -SK_Scalar1 / 4 : 0); + font.setSize(SkFloatToScalar(ts)); + font.setTypeface(typeface_); + font.setEmbolden(synthetic_bold_); + font.setSkewX(synthetic_italic_ ? -SK_Scalar1 / 4 : 0); - font->setEmbeddedBitmaps(!avoid_embedded_bitmaps_); + font.setEmbeddedBitmaps(!avoid_embedded_bitmaps_); + + return font; } #endif
diff --git a/third_party/blink/renderer/platform/fonts/font_platform_data.h b/third_party/blink/renderer/platform/fonts/font_platform_data.h index 28acf27..0ac9d55 100644 --- a/third_party/blink/renderer/platform/fonts/font_platform_data.h +++ b/third_party/blink/renderer/platform/fonts/font_platform_data.h
@@ -131,9 +131,8 @@ const WebFontRenderStyle& GetFontRenderStyle() const { return style_; } #endif - void SetupSkFont(SkFont*, - float device_scale_factor = 1, - const FontDescription* = nullptr) const; + SkFont CreateSkFont(float device_scale_factor = 1, + const FontDescription* = nullptr) const; // Computes a digest from the typeface. The digest only depends on the // underlying font itself, and does not vary by the style (size, weight,
diff --git a/third_party/blink/renderer/platform/fonts/mac/font_platform_data_mac.mm b/third_party/blink/renderer/platform/fonts/mac/font_platform_data_mac.mm index 1f71bcd..8a788ce 100644 --- a/third_party/blink/renderer/platform/fonts/mac/font_platform_data_mac.mm +++ b/third_party/blink/renderer/platform/fonts/mac/font_platform_data_mac.mm
@@ -258,8 +258,7 @@ return make_typeface_fontplatformdata(); } -void FontPlatformData::SetupSkFont( - SkFont* skfont, +SkFont FontPlatformData::CreateSkFont( float, const FontDescription* font_description) const { bool should_smooth_fonts = true; @@ -292,25 +291,26 @@ WebTestSupport::IsTextSubpixelPositioningAllowedForTest(); } + SkFont skfont; if (should_antialias && should_smooth_fonts) { - skfont->setEdging(SkFont::Edging::kSubpixelAntiAlias); + skfont.setEdging(SkFont::Edging::kSubpixelAntiAlias); } else if (should_antialias) { - skfont->setEdging(SkFont::Edging::kAntiAlias); + skfont.setEdging(SkFont::Edging::kAntiAlias); } else { - skfont->setEdging(SkFont::Edging::kAlias); + skfont.setEdging(SkFont::Edging::kAlias); } - skfont->setEmbeddedBitmaps(false); + skfont.setEmbeddedBitmaps(false); const float ts = text_size_ >= 0 ? text_size_ : 12; - skfont->setSize(SkFloatToScalar(ts)); - skfont->setTypeface(typeface_); - skfont->setEmbolden(synthetic_bold_); - skfont->setSkewX(synthetic_italic_ ? -SK_Scalar1 / 4 : 0); - skfont->setSubpixel(should_subpixel_position); + skfont.setSize(SkFloatToScalar(ts)); + skfont.setTypeface(typeface_); + skfont.setEmbolden(synthetic_bold_); + skfont.setSkewX(synthetic_italic_ ? -SK_Scalar1 / 4 : 0); + skfont.setSubpixel(should_subpixel_position); // CoreText always provides linear metrics if it can, so the linear metrics // flag setting doesn't affect typefaces backed by CoreText. However, it // does affect FreeType backed typefaces, so set the flag for consistency. - skfont->setLinearMetrics(should_subpixel_position); + skfont.setLinearMetrics(should_subpixel_position); // When rendering using CoreGraphics, disable hinting when // webkit-font-smoothing:antialiased or text-rendering:geometricPrecision is @@ -318,7 +318,8 @@ if (font_description && (font_description->FontSmoothing() == kAntialiased || font_description->TextRendering() == kGeometricPrecision)) - skfont->setHinting(SkFontHinting::kNone); + skfont.setHinting(SkFontHinting::kNone); + return skfont; } } // namespace blink
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h index 57d8426c..b79a5e4 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h +++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_data.h
@@ -41,8 +41,7 @@ unsigned dummy_ascent_inflation = 0; unsigned dummy_descent_inflation = 0; - font_ = SkFont(); - platform_data.SetupSkFont(&font_); + font_ = platform_data.CreateSkFont(); if (UNLIKELY(vertical_layout == HarfBuzzFace::kPrepareForVerticalLayout)) { FontMetrics::AscentDescentWithHacks(
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc index b495112..e91e8ec 100644 --- a/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc +++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result_bloberizer.cc
@@ -167,9 +167,8 @@ if (UNLIKELY(!current_character_indexes_.IsEmpty())) CommitText(); - SkFont run_font; - pending_font_data_->PlatformData().SetupSkFont( - &run_font, device_scale_factor_, &font_description_); + SkFont run_font = pending_font_data_->PlatformData().CreateSkFont( + device_scale_factor_, &font_description_); const auto run_size = pending_glyphs_.size(); const auto text_size = pending_utf8_.size();
diff --git a/third_party/blink/renderer/platform/fonts/simple_font_data.cc b/third_party/blink/renderer/platform/fonts/simple_font_data.cc index d087012..9814ade 100644 --- a/third_party/blink/renderer/platform/fonts/simple_font_data.cc +++ b/third_party/blink/renderer/platform/fonts/simple_font_data.cc
@@ -83,8 +83,7 @@ SkFontMetrics metrics; - font_ = SkFont(); - platform_data_.SetupSkFont(&font_); + font_ = platform_data_.CreateSkFont(); font_.getMetrics(&metrics); float ascent;
diff --git a/third_party/blink/renderer/platform/fonts/win/font_platform_data_win.cc b/third_party/blink/renderer/platform/fonts/win/font_platform_data_win.cc index fe3364c..5ed0fbdc 100644 --- a/third_party/blink/renderer/platform/fonts/win/font_platform_data_win.cc +++ b/third_party/blink/renderer/platform/fonts/win/font_platform_data_win.cc
@@ -39,20 +39,19 @@ namespace blink { -void FontPlatformData::SetupSkFont(SkFont* font, - float, - const FontDescription*) const { - font->setSize(SkFloatToScalar(text_size_)); - font->setTypeface(typeface_); - font->setEmbolden(synthetic_bold_); - font->setSkewX(synthetic_italic_ ? -SK_Scalar1 / 4 : 0); +SkFont FontPlatformData::CreateSkFont(float, const FontDescription*) const { + SkFont font; + font.setSize(SkFloatToScalar(text_size_)); + font.setTypeface(typeface_); + font.setEmbolden(synthetic_bold_); + font.setSkewX(synthetic_italic_ ? -SK_Scalar1 / 4 : 0); if (style_.use_subpixel_rendering) { - font->setEdging(SkFont::Edging::kSubpixelAntiAlias); + font.setEdging(SkFont::Edging::kSubpixelAntiAlias); } else if (style_.use_anti_alias) { - font->setEdging(SkFont::Edging::kAntiAlias); + font.setEdging(SkFont::Edging::kAntiAlias); } else { - font->setEdging(SkFont::Edging::kAlias); + font.setEdging(SkFont::Edging::kAlias); } // Only use sub-pixel positioning if anti aliasing is enabled. Otherwise, @@ -62,13 +61,14 @@ // pixel positions, which leads to uneven spacing, either too close or too far // away from adjacent glyphs. We avoid this by linking the two flags. if (style_.use_anti_alias) - font->setSubpixel(true); + font.setSubpixel(true); if (WebTestSupport::IsRunningWebTest() && !WebTestSupport::IsTextSubpixelPositioningAllowedForTest()) - font->setSubpixel(false); + font.setSubpixel(false); - font->setEmbeddedBitmaps(!avoid_embedded_bitmaps_); + font.setEmbeddedBitmaps(!avoid_embedded_bitmaps_); + return font; } WebFontRenderStyle FontPlatformData::QuerySystemForRenderStyle() {
diff --git a/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h b/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h index d1902f8..87829e0 100644 --- a/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h +++ b/third_party/blink/renderer/platform/geometry/layout_rect_outsets.h
@@ -141,16 +141,35 @@ a.Bottom() + b.Bottom(), a.Left() + b.Left()); } +inline LayoutRectOutsets operator+(const LayoutRectOutsets& a, LayoutUnit b) { + return LayoutRectOutsets(a.Top() + b, a.Right() + b, a.Bottom() + b, + a.Left() + b); +} + inline LayoutRectOutsets operator-(const LayoutRectOutsets& a) { return LayoutRectOutsets(-a.Top(), -a.Right(), -a.Bottom(), -a.Left()); } +inline LayoutRectOutsets operator-(const LayoutRectOutsets& a, + const LayoutRectOutsets& b) { + return a + -b; +} + +inline LayoutRectOutsets operator-(const LayoutRectOutsets& a, LayoutUnit b) { + return a + -b; +} + inline LayoutRectOutsets& operator-=(LayoutRectOutsets& a, const LayoutRectOutsets& b) { a += -b; return a; } +inline LayoutRectOutsets& operator-=(LayoutRectOutsets& a, LayoutUnit b) { + a += -b; + return a; +} + inline LayoutRectOutsets EnclosingLayoutRectOutsets( const gfx::OutsetsF& outsets) { return LayoutRectOutsets(LayoutUnit::FromFloatCeil(outsets.top()),
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc index 31545e2..6fb8485 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.cc
@@ -191,7 +191,7 @@ RTCVideoDecoderFactory::RTCVideoDecoderFactory( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space) : gpu_factories_(gpu_factories),
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.h b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.h index 24b0d8e..e98563dd 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_factory.h
@@ -26,7 +26,7 @@ public: explicit RTCVideoDecoderFactory( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space); RTCVideoDecoderFactory(const RTCVideoDecoderFactory&) = delete; @@ -47,7 +47,7 @@ private: void CheckAndWaitDecoderSupportStatusIfNeeded() const; media::GpuVideoAcceleratorFactories* gpu_factories_; - media::DecoderFactory* decoder_factory_; + base::WeakPtr<media::DecoderFactory> decoder_factory_; scoped_refptr<base::SequencedTaskRunner> media_task_runner_; gfx::ColorSpace render_color_space_;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc index 97ec1d7..36a4db9 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.cc
@@ -268,7 +268,7 @@ std::unique_ptr<RTCVideoDecoderStreamAdapter> RTCVideoDecoderStreamAdapter::Create( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space, const webrtc::SdpVideoFormat& format) { @@ -324,7 +324,7 @@ RTCVideoDecoderStreamAdapter::RTCVideoDecoderStreamAdapter( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space, const media::VideoDecoderConfig& config, @@ -760,19 +760,21 @@ media::RequestOverlayInfoCB request_overlay_cb = base::DoNothing(); auto create_decoders_cb = base::BindRepeating( [](scoped_refptr<base::SequencedTaskRunner> task_runner, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, media::GpuVideoAcceleratorFactories* gpu_factories, const gfx::ColorSpace render_color_space, media::MediaLog* media_log, const media::RequestOverlayInfoCB& request_overlay_cb) { std::vector<std::unique_ptr<media::VideoDecoder>> video_decoders; - decoder_factory->CreateVideoDecoders( - std::move(task_runner), gpu_factories, media_log, - request_overlay_cb, render_color_space, &video_decoders); + media::DecoderFactory* decoder_factory_ptr = decoder_factory.get(); + if (decoder_factory_ptr) { + decoder_factory_ptr->CreateVideoDecoders( + std::move(task_runner), gpu_factories, media_log, + request_overlay_cb, render_color_space, &video_decoders); + } return video_decoders; }, - media_task_runner_, base::Unretained(decoder_factory_), - base::Unretained(gpu_factories_), render_color_space_, media_log_.get(), - std::move(request_overlay_cb)); + media_task_runner_, decoder_factory_, base::Unretained(gpu_factories_), + render_color_space_, media_log_.get(), std::move(request_overlay_cb)); decoder_stream_ = std::make_unique<media::VideoDecoderStream>( std::move(traits), media_task_runner_, std::move(create_decoders_cb),
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h index edfe7a6..e01ac6db 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter.h
@@ -83,7 +83,7 @@ // Called on the worker thread. static std::unique_ptr<RTCVideoDecoderStreamAdapter> Create( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space, const webrtc::SdpVideoFormat& format); @@ -124,7 +124,7 @@ // Called on the worker thread. RTCVideoDecoderStreamAdapter( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* decoder_factory, + base::WeakPtr<media::DecoderFactory> decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space, const media::VideoDecoderConfig& config, @@ -197,7 +197,7 @@ // Construction parameters. const scoped_refptr<base::SequencedTaskRunner> media_task_runner_; media::GpuVideoAcceleratorFactories* const gpu_factories_; - media::DecoderFactory* const decoder_factory_; + base::WeakPtr<media::DecoderFactory> const decoder_factory_; gfx::ColorSpace render_color_space_; const webrtc::SdpVideoFormat format_; media::VideoDecoderConfig config_;
diff --git a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc index f0f516e..f42ae03 100644 --- a/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc +++ b/third_party/blink/renderer/platform/peerconnection/rtc_video_decoder_stream_adapter_test.cc
@@ -12,6 +12,7 @@ #include "base/check.h" #include "base/memory/ptr_util.h" #include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" #include "base/task/thread_pool.h" #include "base/test/gmock_callback_support.h" #include "base/test/mock_callback.h" @@ -154,8 +155,14 @@ std::make_unique<MockVideoDecoder>(is_platform_decoder)); } + base::WeakPtr<DecoderFactory> GetWeakPtr() { + return weak_factory_.GetWeakPtr(); + } + private: std::vector<std::unique_ptr<MockVideoDecoder>> decoders_; + + base::WeakPtrFactory<MockDecoderFactory> weak_factory_{this}; }; // Wraps a callback as a webrtc::DecodedImageCallback. @@ -269,8 +276,9 @@ bool CreateDecoderStream() { adapter_ = RTCVideoDecoderStreamAdapter::Create( - use_hw_decoders_ ? &gpu_factories_ : nullptr, decoder_factory_.get(), - media_thread_task_runner_, gfx::ColorSpace{}, sdp_format_); + use_hw_decoders_ ? &gpu_factories_ : nullptr, + decoder_factory_->GetWeakPtr(), media_thread_task_runner_, + gfx::ColorSpace{}, sdp_format_); return !!adapter_; }
diff --git a/third_party/blink/renderer/platform/peerconnection/video_codec_factory.cc b/third_party/blink/renderer/platform/peerconnection/video_codec_factory.cc index 7bc8c2e..b3c2d932 100644 --- a/third_party/blink/renderer/platform/peerconnection/video_codec_factory.cc +++ b/third_party/blink/renderer/platform/peerconnection/video_codec_factory.cc
@@ -269,7 +269,7 @@ std::unique_ptr<webrtc::VideoDecoderFactory> CreateWebrtcVideoDecoderFactory( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* media_decoder_factory, + base::WeakPtr<media::DecoderFactory> media_decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space, StatsCollector::StoreProcessingStatsCB stats_callback) {
diff --git a/third_party/blink/renderer/platform/peerconnection/video_codec_factory.h b/third_party/blink/renderer/platform/peerconnection/video_codec_factory.h index 0db99d9d..0550a25 100644 --- a/third_party/blink/renderer/platform/peerconnection/video_codec_factory.h +++ b/third_party/blink/renderer/platform/peerconnection/video_codec_factory.h
@@ -37,7 +37,7 @@ PLATFORM_EXPORT std::unique_ptr<webrtc::VideoDecoderFactory> CreateWebrtcVideoDecoderFactory( media::GpuVideoAcceleratorFactories* gpu_factories, - media::DecoderFactory* media_decoder_factory, + base::WeakPtr<media::DecoderFactory> media_decoder_factory, scoped_refptr<base::SequencedTaskRunner> media_task_runner, const gfx::ColorSpace& render_color_space, StatsCollector::StoreProcessingStatsCB stats_callback);
diff --git a/third_party/blink/web_tests/clipboard/async-clipboard/OWNERS b/third_party/blink/web_tests/clipboard/async-clipboard/OWNERS index 880a46d..bebfab6 100644 --- a/third_party/blink/web_tests/clipboard/async-clipboard/OWNERS +++ b/third_party/blink/web_tests/clipboard/async-clipboard/OWNERS
@@ -1,3 +1,6 @@ +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org garykac@chromium.org -mek@chromium.org -pwnall@chromium.org
diff --git a/third_party/blink/web_tests/external/wpt/clipboard-apis/OWNERS b/third_party/blink/web_tests/external/wpt/clipboard-apis/OWNERS index b1c6305..058b967 100644 --- a/third_party/blink/web_tests/external/wpt/clipboard-apis/OWNERS +++ b/third_party/blink/web_tests/external/wpt/clipboard-apis/OWNERS
@@ -1,4 +1,7 @@ +# Primary +asully@chromium.org + +# Secondary +ayui@chromium.org garykac@chromium.org -mek@chromium.org -pwnall@chromium.org jsbell@chromium.org
diff --git a/third_party/blink/web_tests/external/wpt/compute-pressure/OWNERS b/third_party/blink/web_tests/external/wpt/compute-pressure/OWNERS index 5b2fdf3..0a79f2c 100644 --- a/third_party/blink/web_tests/external/wpt/compute-pressure/OWNERS +++ b/third_party/blink/web_tests/external/wpt/compute-pressure/OWNERS
@@ -1 +1,5 @@ -pwnall@chromium.org +# Primary +raphael.kubo.da.costa@intel.com + +# Secondary +jsbell@chromium.org
diff --git a/third_party/blink/web_tests/external/wpt/cookie-store/OWNERS b/third_party/blink/web_tests/external/wpt/cookie-store/OWNERS index 448028c..0500833 100644 --- a/third_party/blink/web_tests/external/wpt/cookie-store/OWNERS +++ b/third_party/blink/web_tests/external/wpt/cookie-store/OWNERS
@@ -1,4 +1,6 @@ +# Primary ayui@chromium.org -mek@chromium.org -pwnall@chromium.org + +# Secondary +asully@chromium.org jsbell@chromium.org
diff --git a/third_party/blink/web_tests/external/wpt/font-access/OWNERS b/third_party/blink/web_tests/external/wpt/font-access/OWNERS index acea549..49d68bb 100644 --- a/third_party/blink/web_tests/external/wpt/font-access/OWNERS +++ b/third_party/blink/web_tests/external/wpt/font-access/OWNERS
@@ -1,2 +1,5 @@ -pwnall@chromium.org +# Primary jsbell@chromium.org + +# Secondary +ayui@chromium.org
diff --git a/third_party/blink/web_tests/external/wpt/native-io/OWNERS b/third_party/blink/web_tests/external/wpt/native-io/OWNERS index 1d2e05e..565fba10 100644 --- a/third_party/blink/web_tests/external/wpt/native-io/OWNERS +++ b/third_party/blink/web_tests/external/wpt/native-io/OWNERS
@@ -1,3 +1,6 @@ -mek@chromium.org -pwnall@chromium.org +# Primary mkwst@chromium.org + +# Secondary +asully@chromium.org +ayui@chromium.org
diff --git a/third_party/blink/web_tests/platform/linux/paint/roundedrects/circle-with-shadow-expected.png b/third_party/blink/web_tests/platform/linux/paint/roundedrects/circle-with-shadow-expected.png index 5d28073..7de1c4e 100644 --- a/third_party/blink/web_tests/platform/linux/paint/roundedrects/circle-with-shadow-expected.png +++ b/third_party/blink/web_tests/platform/linux/paint/roundedrects/circle-with-shadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/paint/roundedrects/circle-with-shadow-expected.png b/third_party/blink/web_tests/platform/mac/paint/roundedrects/circle-with-shadow-expected.png index 6c9613da..de6cd847 100644 --- a/third_party/blink/web_tests/platform/mac/paint/roundedrects/circle-with-shadow-expected.png +++ b/third_party/blink/web_tests/platform/mac/paint/roundedrects/circle-with-shadow-expected.png Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/paint/roundedrects/circle-with-shadow-expected.png b/third_party/blink/web_tests/platform/win/paint/roundedrects/circle-with-shadow-expected.png index 069e5a57..e8fb57be 100644 --- a/third_party/blink/web_tests/platform/win/paint/roundedrects/circle-with-shadow-expected.png +++ b/third_party/blink/web_tests/platform/win/paint/roundedrects/circle-with-shadow-expected.png Binary files differ
diff --git a/third_party/crc32c/OWNERS b/third_party/crc32c/OWNERS index 85a3dae..1cd1c1dd 100644 --- a/third_party/crc32c/OWNERS +++ b/third_party/crc32c/OWNERS
@@ -1,6 +1,6 @@ # Primary for bugs, reviews: -pwnall@chromium.org +asully@chromium.org # Secondary: +ayui@chromium.org jsbell@chromium.org -mek@chromium.org
diff --git a/third_party/google_benchmark/OWNERS b/third_party/google_benchmark/OWNERS index 6a9a211..1cd1c1dd 100644 --- a/third_party/google_benchmark/OWNERS +++ b/third_party/google_benchmark/OWNERS
@@ -1,6 +1,6 @@ # Primary for bugs, reviews: -pwnall@chromium.org +asully@chromium.org # Secondary: -mek@chromium.org +ayui@chromium.org jsbell@chromium.org
diff --git a/third_party/googletest/OWNERS b/third_party/googletest/OWNERS index 391c61bc..8a7bec9 100644 --- a/third_party/googletest/OWNERS +++ b/third_party/googletest/OWNERS
@@ -1,3 +1,3 @@ thakis@chromium.org asully@chromium.org -pwnall@chromium.org +ayui@chromium.org
diff --git a/third_party/leveldatabase/OWNERS b/third_party/leveldatabase/OWNERS index 85a3dae..1cd1c1dd 100644 --- a/third_party/leveldatabase/OWNERS +++ b/third_party/leveldatabase/OWNERS
@@ -1,6 +1,6 @@ # Primary for bugs, reviews: -pwnall@chromium.org +asully@chromium.org # Secondary: +ayui@chromium.org jsbell@chromium.org -mek@chromium.org
diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn index 0863a8d..0c491660 100644 --- a/third_party/protobuf/BUILD.gn +++ b/third_party/protobuf/BUILD.gn
@@ -262,6 +262,11 @@ "//third_party/vulkan-deps/spirv-tools/src:spvtools_fuzz_proto", # Some fuzzers for tint need protobuf_full and are not included in Chrome. + # TODO(dawn:1339): Remove the *third_party/tint* entries once Tint + # is merged into Dawn + "//third_party/dawn/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer", + "//third_party/dawn/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer_proto", + "//third_party/dawn/src/tint/fuzzers/tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer", "//third_party/dawn/third_party/tint/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer", "//third_party/dawn/third_party/tint/src/tint/fuzzers/tint_ast_fuzzer:tint_ast_fuzzer_proto", "//third_party/dawn/third_party/tint/src/tint/fuzzers/tint_spirv_tools_fuzzer:tint_spirv_tools_fuzzer",
diff --git a/third_party/r8/3pp/patches/0003-Add-SameFilePolicy.patch b/third_party/r8/3pp/patches/0003-Add-SameFilePolicy.patch index 7b4a82e..6985df3 100644 --- a/third_party/r8/3pp/patches/0003-Add-SameFilePolicy.patch +++ b/third_party/r8/3pp/patches/0003-Add-SameFilePolicy.patch
@@ -48,7 +48,7 @@ + + @Override + public String getMergeKey(DexProgramClass clazz) { -+ String packageName = clazz.getType().toDescriptorString().replaceAll("\\$.*", ""); ++ String packageName = clazz.getType().toDescriptorString().replaceAll("^([^$]+)\\$.*", "$1"); + if (isClassesInPackageEligibleForMerging(packageName)) { + return packageName; + }
diff --git a/third_party/snappy/OWNERS b/third_party/snappy/OWNERS index 8de7804..8617e22 100644 --- a/third_party/snappy/OWNERS +++ b/third_party/snappy/OWNERS
@@ -1,6 +1,6 @@ # Primary -pwnall@chromium.org +asully@chromium.org # Secondary +ayui@chromium.org jsbell@chromium.org -mek@chromium.org
diff --git a/third_party/sqlite/OWNERS b/third_party/sqlite/OWNERS index 9769549..d42011e 100644 --- a/third_party/sqlite/OWNERS +++ b/third_party/sqlite/OWNERS
@@ -1,5 +1,5 @@ -# Primary: -mek@chromium.org +# Primary +asully@chromium.org -# Secondary: -pwnall@chromium.org +# Secondary +ayui@chromium.org
diff --git a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl.h b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl.h index 520269c..1dc06e0 100644 --- a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl.h +++ b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IBrowserSwitcherBHO_FWD_DEFINED__ @@ -97,28 +105,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IBrowserSwitcherBHO * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IBrowserSwitcherBHO * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IBrowserSwitcherBHO * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IBrowserSwitcherBHO * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IBrowserSwitcherBHO * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IBrowserSwitcherBHO * This, /* [in] */ REFIID riid, @@ -127,6 +141,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IBrowserSwitcherBHO * This, /* [annotation][in] */
diff --git a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl_p.c b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl_p.c index efd8c6f..0a02906 100644 --- a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl_p.c +++ b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x64/ie_bho_idl_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ie_bho_idl_MIDL_TYPE_FORMAT_STRING ie_bho_idl__MIDL_TypeFormatString; extern const ie_bho_idl_MIDL_PROC_FORMAT_STRING ie_bho_idl__MIDL_ProcFormatString; @@ -199,7 +251,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl.h b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl.h index 5c86301..15214b0 100644 --- a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl.h +++ b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IBrowserSwitcherBHO_FWD_DEFINED__ @@ -97,28 +105,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IBrowserSwitcherBHO * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IBrowserSwitcherBHO * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IBrowserSwitcherBHO * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IBrowserSwitcherBHO * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IBrowserSwitcherBHO * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IBrowserSwitcherBHO * This, /* [in] */ REFIID riid, @@ -127,6 +141,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IBrowserSwitcherBHO * This, /* [annotation][in] */
diff --git a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl_p.c b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl_p.c index cc0b051..98b3554 100644 --- a/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl_p.c +++ b/third_party/win_build_output/midl/chrome/browser/browser_switcher/bho/x86/ie_bho_idl_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ie_bho_idl_MIDL_TYPE_FORMAT_STRING ie_bho_idl__MIDL_TypeFormatString; extern const ie_bho_idl_MIDL_PROC_FORMAT_STRING ie_bho_idl__MIDL_ProcFormatString; @@ -210,7 +262,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.c b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.c index 39db520..409e5933 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.c +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/credential_provider/gaiacp/gaia_credential_provider.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.h b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.h index a5542cb..d2be0d6 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.h +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_i.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/credential_provider/gaiacp/gaia_credential_provider.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IGaiaCredentialProvider_FWD_DEFINED__ @@ -121,22 +129,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGaiaCredentialProvider * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGaiaCredentialProvider * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGaiaCredentialProvider * This); + DECLSPEC_XFGVIRT(IGaiaCredentialProvider, GetUsageScenario) HRESULT ( STDMETHODCALLTYPE *GetUsageScenario )( IGaiaCredentialProvider * This, /* [out] */ DWORD *cpus); + DECLSPEC_XFGVIRT(IGaiaCredentialProvider, OnUserAuthenticated) HRESULT ( STDMETHODCALLTYPE *OnUserAuthenticated )( IGaiaCredentialProvider * This, /* [in] */ IUnknown *credential, @@ -223,30 +236,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGaiaCredential * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IGaiaCredential, Initialize) HRESULT ( STDMETHODCALLTYPE *Initialize )( IGaiaCredential * This, /* [in] */ IGaiaCredentialProvider *provider); + DECLSPEC_XFGVIRT(IGaiaCredential, Terminate) HRESULT ( STDMETHODCALLTYPE *Terminate )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IGaiaCredential, OnUserAuthenticated) HRESULT ( STDMETHODCALLTYPE *OnUserAuthenticated )( IGaiaCredential * This, /* [in] */ BSTR authentication_info, /* [out] */ BSTR *status_text); + DECLSPEC_XFGVIRT(IGaiaCredential, ReportError) HRESULT ( STDMETHODCALLTYPE *ReportError )( IGaiaCredential * This, /* [in] */ LONG status, @@ -331,22 +351,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IReauthCredential * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IReauthCredential * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IReauthCredential * This); + DECLSPEC_XFGVIRT(IReauthCredential, SetEmailForReauth) HRESULT ( STDMETHODCALLTYPE *SetEmailForReauth )( IReauthCredential * This, /* [in] */ BSTR email); + DECLSPEC_XFGVIRT(IReauthCredential, SetOSUserInfo) HRESULT ( STDMETHODCALLTYPE *SetOSUserInfo )( IReauthCredential * This, /* [in] */ BSTR sid,
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_p.c b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_p.c index d8cd3c7..f4e251b9 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_p.c +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/arm64/gaia_credential_provider_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/credential_provider/gaiacp/gaia_credential_provider.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const gaia_credential_provider_MIDL_TYPE_FORMAT_STRING gaia_credential_provider__MIDL_TypeFormatString; extern const gaia_credential_provider_MIDL_PROC_FORMAT_STRING gaia_credential_provider__MIDL_ProcFormatString; @@ -536,15 +588,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -727,7 +783,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -793,5 +849,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_i.h b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_i.h index 8e07bab..de7b904 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_i.h +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_i.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IGaiaCredentialProvider_FWD_DEFINED__ @@ -121,22 +129,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGaiaCredentialProvider * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGaiaCredentialProvider * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGaiaCredentialProvider * This); + DECLSPEC_XFGVIRT(IGaiaCredentialProvider, GetUsageScenario) HRESULT ( STDMETHODCALLTYPE *GetUsageScenario )( IGaiaCredentialProvider * This, /* [out] */ DWORD *cpus); + DECLSPEC_XFGVIRT(IGaiaCredentialProvider, OnUserAuthenticated) HRESULT ( STDMETHODCALLTYPE *OnUserAuthenticated )( IGaiaCredentialProvider * This, /* [in] */ IUnknown *credential, @@ -223,30 +236,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGaiaCredential * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IGaiaCredential, Initialize) HRESULT ( STDMETHODCALLTYPE *Initialize )( IGaiaCredential * This, /* [in] */ IGaiaCredentialProvider *provider); + DECLSPEC_XFGVIRT(IGaiaCredential, Terminate) HRESULT ( STDMETHODCALLTYPE *Terminate )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IGaiaCredential, OnUserAuthenticated) HRESULT ( STDMETHODCALLTYPE *OnUserAuthenticated )( IGaiaCredential * This, /* [in] */ BSTR authentication_info, /* [out] */ BSTR *status_text); + DECLSPEC_XFGVIRT(IGaiaCredential, ReportError) HRESULT ( STDMETHODCALLTYPE *ReportError )( IGaiaCredential * This, /* [in] */ LONG status, @@ -331,22 +351,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IReauthCredential * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IReauthCredential * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IReauthCredential * This); + DECLSPEC_XFGVIRT(IReauthCredential, SetEmailForReauth) HRESULT ( STDMETHODCALLTYPE *SetEmailForReauth )( IReauthCredential * This, /* [in] */ BSTR email); + DECLSPEC_XFGVIRT(IReauthCredential, SetOSUserInfo) HRESULT ( STDMETHODCALLTYPE *SetOSUserInfo )( IReauthCredential * This, /* [in] */ BSTR sid,
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_p.c b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_p.c index 18a8c05..2ebdaaa 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_p.c +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x64/gaia_credential_provider_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const gaia_credential_provider_MIDL_TYPE_FORMAT_STRING gaia_credential_provider__MIDL_TypeFormatString; extern const gaia_credential_provider_MIDL_PROC_FORMAT_STRING gaia_credential_provider__MIDL_ProcFormatString; @@ -498,15 +550,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -689,7 +745,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_i.h b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_i.h index b16af3a..1f821d9 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_i.h +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_i.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IGaiaCredentialProvider_FWD_DEFINED__ @@ -121,22 +129,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGaiaCredentialProvider * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGaiaCredentialProvider * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGaiaCredentialProvider * This); + DECLSPEC_XFGVIRT(IGaiaCredentialProvider, GetUsageScenario) HRESULT ( STDMETHODCALLTYPE *GetUsageScenario )( IGaiaCredentialProvider * This, /* [out] */ DWORD *cpus); + DECLSPEC_XFGVIRT(IGaiaCredentialProvider, OnUserAuthenticated) HRESULT ( STDMETHODCALLTYPE *OnUserAuthenticated )( IGaiaCredentialProvider * This, /* [in] */ IUnknown *credential, @@ -223,30 +236,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGaiaCredential * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IGaiaCredential, Initialize) HRESULT ( STDMETHODCALLTYPE *Initialize )( IGaiaCredential * This, /* [in] */ IGaiaCredentialProvider *provider); + DECLSPEC_XFGVIRT(IGaiaCredential, Terminate) HRESULT ( STDMETHODCALLTYPE *Terminate )( IGaiaCredential * This); + DECLSPEC_XFGVIRT(IGaiaCredential, OnUserAuthenticated) HRESULT ( STDMETHODCALLTYPE *OnUserAuthenticated )( IGaiaCredential * This, /* [in] */ BSTR authentication_info, /* [out] */ BSTR *status_text); + DECLSPEC_XFGVIRT(IGaiaCredential, ReportError) HRESULT ( STDMETHODCALLTYPE *ReportError )( IGaiaCredential * This, /* [in] */ LONG status, @@ -331,22 +351,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IReauthCredential * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IReauthCredential * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IReauthCredential * This); + DECLSPEC_XFGVIRT(IReauthCredential, SetEmailForReauth) HRESULT ( STDMETHODCALLTYPE *SetEmailForReauth )( IReauthCredential * This, /* [in] */ BSTR email); + DECLSPEC_XFGVIRT(IReauthCredential, SetOSUserInfo) HRESULT ( STDMETHODCALLTYPE *SetOSUserInfo )( IReauthCredential * This, /* [in] */ BSTR sid,
diff --git a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_p.c b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_p.c index 554701e..596d0ef 100644 --- a/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_p.c +++ b/third_party/win_build_output/midl/chrome/credential_provider/gaiacp/x86/gaia_credential_provider_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const gaia_credential_provider_MIDL_TYPE_FORMAT_STRING gaia_credential_provider__MIDL_TypeFormatString; extern const gaia_credential_provider_MIDL_PROC_FORMAT_STRING gaia_credential_provider__MIDL_ProcFormatString; @@ -501,15 +553,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -692,7 +748,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl.h b/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl.h index 13f032db..4c7caa81 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl.h +++ b/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../chrome/elevation_service/elevation_service_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IElevator_FWD_DEFINED__ @@ -170,18 +178,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevator * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevator * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevator * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevator * This, /* [string][in] */ const WCHAR *crx_path, @@ -252,18 +264,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromium * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromium * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromium * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromium * This, /* [string][in] */ const WCHAR *crx_path, @@ -335,18 +351,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChrome * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChrome * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChrome * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChrome * This, /* [string][in] */ const WCHAR *crx_path, @@ -418,18 +438,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeBeta * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeBeta * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeBeta * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeBeta * This, /* [string][in] */ const WCHAR *crx_path, @@ -501,18 +525,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeDev * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeDev * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeDev * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeDev * This, /* [string][in] */ const WCHAR *crx_path, @@ -584,18 +612,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeCanary * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeCanary * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeCanary * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeCanary * This, /* [string][in] */ const WCHAR *crx_path,
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_i.c b/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_i.c index 90cb5419..d0cffd8 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_i.c +++ b/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../chrome/elevation_service/elevation_service_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_p.c b/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_p.c index df023af..f09b5dc 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_p.c +++ b/third_party/win_build_output/midl/chrome/elevation_service/arm64/elevation_service_idl_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../chrome/elevation_service/elevation_service_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const elevation_service_idl_MIDL_TYPE_FORMAT_STRING elevation_service_idl__MIDL_TypeFormatString; extern const elevation_service_idl_MIDL_PROC_FORMAT_STRING elevation_service_idl__MIDL_ProcFormatString; @@ -579,7 +631,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */ @@ -666,5 +718,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl.h b/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl.h index c0ae7b0..af6deb5 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl.h +++ b/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IElevator_FWD_DEFINED__ @@ -170,18 +178,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevator * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevator * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevator * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevator * This, /* [string][in] */ const WCHAR *crx_path, @@ -252,18 +264,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromium * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromium * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromium * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromium * This, /* [string][in] */ const WCHAR *crx_path, @@ -335,18 +351,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChrome * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChrome * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChrome * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChrome * This, /* [string][in] */ const WCHAR *crx_path, @@ -418,18 +438,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeBeta * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeBeta * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeBeta * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeBeta * This, /* [string][in] */ const WCHAR *crx_path, @@ -501,18 +525,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeDev * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeDev * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeDev * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeDev * This, /* [string][in] */ const WCHAR *crx_path, @@ -584,18 +612,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeCanary * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeCanary * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeCanary * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeCanary * This, /* [string][in] */ const WCHAR *crx_path,
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl_p.c b/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl_p.c index 11f5c196..18cdafc 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl_p.c +++ b/third_party/win_build_output/midl/chrome/elevation_service/x64/elevation_service_idl_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const elevation_service_idl_MIDL_TYPE_FORMAT_STRING elevation_service_idl__MIDL_TypeFormatString; extern const elevation_service_idl_MIDL_PROC_FORMAT_STRING elevation_service_idl__MIDL_ProcFormatString; @@ -571,7 +623,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl.h b/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl.h index be57425..2949454 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl.h +++ b/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IElevator_FWD_DEFINED__ @@ -170,18 +178,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevator * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevator * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevator * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevator * This, /* [string][in] */ const WCHAR *crx_path, @@ -252,18 +264,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromium * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromium * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromium * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromium * This, /* [string][in] */ const WCHAR *crx_path, @@ -335,18 +351,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChrome * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChrome * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChrome * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChrome * This, /* [string][in] */ const WCHAR *crx_path, @@ -418,18 +438,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeBeta * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeBeta * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeBeta * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeBeta * This, /* [string][in] */ const WCHAR *crx_path, @@ -501,18 +525,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeDev * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeDev * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeDev * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeDev * This, /* [string][in] */ const WCHAR *crx_path, @@ -584,18 +612,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IElevatorChromeCanary * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IElevatorChromeCanary * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IElevatorChromeCanary * This); + DECLSPEC_XFGVIRT(IElevator, RunRecoveryCRXElevated) HRESULT ( STDMETHODCALLTYPE *RunRecoveryCRXElevated )( IElevatorChromeCanary * This, /* [string][in] */ const WCHAR *crx_path,
diff --git a/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl_p.c b/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl_p.c index a5d9294..eb8aba6a 100644 --- a/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl_p.c +++ b/third_party/win_build_output/midl/chrome/elevation_service/x86/elevation_service_idl_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const elevation_service_idl_MIDL_TYPE_FORMAT_STRING elevation_service_idl__MIDL_TypeFormatString; extern const elevation_service_idl_MIDL_PROC_FORMAT_STRING elevation_service_idl__MIDL_ProcFormatString; @@ -581,7 +633,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl.h index 465b358..d3442b5 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/updater/app/server/win/updater_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IUpdateState_FWD_DEFINED__ @@ -199,50 +207,62 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdateState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdateState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdateState * This); + DECLSPEC_XFGVIRT(IUpdateState, get_state) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_state )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0000); + DECLSPEC_XFGVIRT(IUpdateState, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IUpdateState * This, /* [retval][out] */ BSTR *__MIDL__IUpdateState0001); + DECLSPEC_XFGVIRT(IUpdateState, get_nextVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IUpdateState * This, /* [retval][out] */ BSTR *__MIDL__IUpdateState0002); + DECLSPEC_XFGVIRT(IUpdateState, get_downloadedBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadedBytes )( IUpdateState * This, /* [retval][out] */ LONGLONG *__MIDL__IUpdateState0003); + DECLSPEC_XFGVIRT(IUpdateState, get_totalBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytes )( IUpdateState * This, /* [retval][out] */ LONGLONG *__MIDL__IUpdateState0004); + DECLSPEC_XFGVIRT(IUpdateState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0005); + DECLSPEC_XFGVIRT(IUpdateState, get_errorCategory) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCategory )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0006); + DECLSPEC_XFGVIRT(IUpdateState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0007); + DECLSPEC_XFGVIRT(IUpdateState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0008); @@ -335,18 +355,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterRegisterAppCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterRegisterAppCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterRegisterAppCallback * This); + DECLSPEC_XFGVIRT(IUpdaterRegisterAppCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterRegisterAppCallback * This, /* [in] */ LONG status_code); @@ -418,22 +442,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICompleteStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICompleteStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICompleteStatus * This); + DECLSPEC_XFGVIRT(ICompleteStatus, get_statusCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusCode )( ICompleteStatus * This, /* [retval][out] */ LONG *__MIDL__ICompleteStatus0000); + DECLSPEC_XFGVIRT(ICompleteStatus, get_statusMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusMessage )( ICompleteStatus * This, /* [retval][out] */ BSTR *__MIDL__ICompleteStatus0001); @@ -508,22 +537,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterObserver * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterObserver * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterObserver * This); + DECLSPEC_XFGVIRT(IUpdaterObserver, OnStateChange) HRESULT ( STDMETHODCALLTYPE *OnStateChange )( IUpdaterObserver * This, /* [in] */ IUpdateState *update_state); + DECLSPEC_XFGVIRT(IUpdaterObserver, OnComplete) HRESULT ( STDMETHODCALLTYPE *OnComplete )( IUpdaterObserver * This, /* [in] */ ICompleteStatus *status); @@ -595,18 +629,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterCallback * This); + DECLSPEC_XFGVIRT(IUpdaterCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterCallback * This, /* [in] */ LONG result); @@ -698,26 +736,32 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdater * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdater * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdater * This); + DECLSPEC_XFGVIRT(IUpdater, GetVersion) HRESULT ( STDMETHODCALLTYPE *GetVersion )( IUpdater * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IUpdater, CheckForUpdate) HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )( IUpdater * This, /* [string][in] */ const WCHAR *app_id); + DECLSPEC_XFGVIRT(IUpdater, RegisterApp) HRESULT ( STDMETHODCALLTYPE *RegisterApp )( IUpdater * This, /* [string][in] */ const WCHAR *app_id, @@ -727,10 +771,12 @@ /* [string][in] */ const WCHAR *existence_checker_path, /* [in] */ IUpdaterRegisterAppCallback *callback); + DECLSPEC_XFGVIRT(IUpdater, RunPeriodicTasks) HRESULT ( STDMETHODCALLTYPE *RunPeriodicTasks )( IUpdater * This, /* [in] */ IUpdaterCallback *callback); + DECLSPEC_XFGVIRT(IUpdater, Update) HRESULT ( STDMETHODCALLTYPE *Update )( IUpdater * This, /* [string][in] */ const WCHAR *app_id, @@ -738,6 +784,7 @@ /* [in] */ BOOL same_version_update_allowed, /* [in] */ IUpdaterObserver *observer); + DECLSPEC_XFGVIRT(IUpdater, UpdateAll) HRESULT ( STDMETHODCALLTYPE *UpdateAll )( IUpdater * This, /* [in] */ IUpdaterObserver *observer);
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_i.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_i.c index 56d4649..b822f39 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_i.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/updater/app/server/win/updater_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_p.c index e55c3b1d..8824d9c 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_idl_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/updater/app/server/win/updater_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_idl_MIDL_TYPE_FORMAT_STRING updater_idl__MIDL_TypeFormatString; extern const updater_idl_MIDL_PROC_FORMAT_STRING updater_idl__MIDL_ProcFormatString; @@ -981,15 +1033,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -1342,7 +1398,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -1418,5 +1474,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl.h index 0a37a4e..01a15d9 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/updater/app/server/win/updater_internal_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IUpdaterInternalCallback_FWD_DEFINED__ @@ -133,18 +141,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterInternalCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterInternalCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterInternalCallback * This); + DECLSPEC_XFGVIRT(IUpdaterInternalCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterInternalCallback * This, /* [in] */ LONG result); @@ -216,22 +228,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterInternal * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterInternal * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterInternal * This); + DECLSPEC_XFGVIRT(IUpdaterInternal, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterInternal * This, /* [in] */ IUpdaterInternalCallback *callback); + DECLSPEC_XFGVIRT(IUpdaterInternal, InitializeUpdateService) HRESULT ( STDMETHODCALLTYPE *InitializeUpdateService )( IUpdaterInternal * This, /* [in] */ IUpdaterInternalCallback *callback);
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_i.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_i.c index 48cbe750..aede6a06 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_i.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/updater/app/server/win/updater_internal_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_p.c index fbb75c349..447524a 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_internal_idl_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/chrome/updater/app/server/win/updater_internal_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_internal_idl_MIDL_TYPE_FORMAT_STRING updater_internal_idl__MIDL_TypeFormatString; extern const updater_internal_idl_MIDL_PROC_FORMAT_STRING updater_internal_idl__MIDL_ProcFormatString; @@ -358,7 +410,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */ @@ -420,5 +472,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl.h index 927a806..61e95ea 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../chrome/updater/app/server/win/updater_legacy_idl.template: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ICurrentState_FWD_DEFINED__ @@ -279,28 +287,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICurrentState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICurrentState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICurrentState * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICurrentState * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICurrentState * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICurrentState * This, /* [in] */ REFIID riid, @@ -309,6 +323,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICurrentState * This, /* [annotation][in] */ @@ -328,70 +343,87 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICurrentState, get_stateValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0000); + DECLSPEC_XFGVIRT(ICurrentState, get_availableVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0001); + DECLSPEC_XFGVIRT(ICurrentState, get_bytesDownloaded) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0002); + DECLSPEC_XFGVIRT(ICurrentState, get_totalBytesToDownload) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0003); + DECLSPEC_XFGVIRT(ICurrentState, get_downloadTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0004); + DECLSPEC_XFGVIRT(ICurrentState, get_nextRetryTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )( ICurrentState * This, /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005); + DECLSPEC_XFGVIRT(ICurrentState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0006); + DECLSPEC_XFGVIRT(ICurrentState, get_installTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0007); + DECLSPEC_XFGVIRT(ICurrentState, get_isCanceled) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )( ICurrentState * This, /* [retval][out] */ VARIANT_BOOL *is_canceled); + DECLSPEC_XFGVIRT(ICurrentState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0008); + DECLSPEC_XFGVIRT(ICurrentState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0009); + DECLSPEC_XFGVIRT(ICurrentState, get_completionMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0010); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0011); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultExtraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0012); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallLaunchCommandLine) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0013); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0014); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallAction) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0015); @@ -521,28 +553,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3Web * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3Web * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, @@ -551,6 +589,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3Web * This, /* [annotation][in] */ @@ -570,6 +609,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3Web, createAppBundleWeb) HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )( IGoogleUpdate3Web * This, /* [retval][out] */ IDispatch **app_bundle_web); @@ -696,28 +736,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundleWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundleWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundleWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundleWeb * This, /* [in] */ REFIID riid, @@ -726,6 +772,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundleWeb * This, /* [annotation][in] */ @@ -745,6 +792,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundleWeb, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundleWeb * This, /* [in] */ BSTR app_guid, @@ -752,60 +800,76 @@ /* [in] */ BSTR language, /* [in] */ BSTR ap); + DECLSPEC_XFGVIRT(IAppBundleWeb, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundleWeb * This, /* [in] */ BSTR app_id); + DECLSPEC_XFGVIRT(IAppBundleWeb, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundleWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundleWeb * This, /* [in] */ BSTR __MIDL__IAppBundleWeb0001); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundleWeb * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_length) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IAppBundleWeb * This, /* [retval][out] */ int *index); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_appWeb) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )( IAppBundleWeb * This, /* [in] */ int index, /* [retval][out] */ IDispatch **app_web); + DECLSPEC_XFGVIRT(IAppBundleWeb, initialize) HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, checkForUpdate) HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, download) HRESULT ( STDMETHODCALLTYPE *download )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, install) HRESULT ( STDMETHODCALLTYPE *install )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, pause) HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, resume) HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, downloadPackage) HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundleWeb * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundleWeb * This, /* [retval][out] */ VARIANT *current_state); @@ -960,28 +1024,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppWeb * This, /* [in] */ REFIID riid, @@ -990,6 +1060,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppWeb * This, /* [annotation][in] */ @@ -1009,40 +1080,50 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppWeb, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0000); + DECLSPEC_XFGVIRT(IAppWeb, get_currentVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IAppWeb, get_nextVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IAppWeb, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IAppWeb * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IAppWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppWeb * This, /* [retval][out] */ IDispatch **current_state); + DECLSPEC_XFGVIRT(IAppWeb, launch) HRESULT ( STDMETHODCALLTYPE *launch )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, uninstall) HRESULT ( STDMETHODCALLTYPE *uninstall )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0001); + DECLSPEC_XFGVIRT(IAppWeb, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IAppWeb * This, /* [in] */ BSTR __MIDL__IAppWeb0002); @@ -1161,27 +1242,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher * This, /* [string][in] */ const WCHAR *app_guid, @@ -1262,27 +1349,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher2 * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *app_guid, @@ -1290,6 +1383,7 @@ /* [in] */ DWORD caller_proc_id, /* [out] */ ULONG_PTR *proc_handle); + DECLSPEC_XFGVIRT(IProcessLauncher2, LaunchCmdLineEx) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLineEx )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line,
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_i.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_i.c index 625e751..0ea48b48 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_i.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../chrome/updater/app/server/win/updater_legacy_idl.template: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_p.c index 7d8f6a2..dd177a6 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/arm64/updater_legacy_idl_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../chrome/updater/app/server/win/updater_legacy_idl.template: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_legacy_idl_MIDL_TYPE_FORMAT_STRING updater_legacy_idl__MIDL_TypeFormatString; extern const updater_legacy_idl_MIDL_PROC_FORMAT_STRING updater_legacy_idl__MIDL_ProcFormatString; @@ -2523,21 +2575,28 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -3073,7 +3132,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -3160,5 +3219,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl.h index c73126d..38f7a33a 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IUpdateState_FWD_DEFINED__ @@ -199,50 +207,62 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdateState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdateState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdateState * This); + DECLSPEC_XFGVIRT(IUpdateState, get_state) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_state )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0000); + DECLSPEC_XFGVIRT(IUpdateState, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IUpdateState * This, /* [retval][out] */ BSTR *__MIDL__IUpdateState0001); + DECLSPEC_XFGVIRT(IUpdateState, get_nextVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IUpdateState * This, /* [retval][out] */ BSTR *__MIDL__IUpdateState0002); + DECLSPEC_XFGVIRT(IUpdateState, get_downloadedBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadedBytes )( IUpdateState * This, /* [retval][out] */ LONGLONG *__MIDL__IUpdateState0003); + DECLSPEC_XFGVIRT(IUpdateState, get_totalBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytes )( IUpdateState * This, /* [retval][out] */ LONGLONG *__MIDL__IUpdateState0004); + DECLSPEC_XFGVIRT(IUpdateState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0005); + DECLSPEC_XFGVIRT(IUpdateState, get_errorCategory) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCategory )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0006); + DECLSPEC_XFGVIRT(IUpdateState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0007); + DECLSPEC_XFGVIRT(IUpdateState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0008); @@ -335,18 +355,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterRegisterAppCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterRegisterAppCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterRegisterAppCallback * This); + DECLSPEC_XFGVIRT(IUpdaterRegisterAppCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterRegisterAppCallback * This, /* [in] */ LONG status_code); @@ -418,22 +442,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICompleteStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICompleteStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICompleteStatus * This); + DECLSPEC_XFGVIRT(ICompleteStatus, get_statusCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusCode )( ICompleteStatus * This, /* [retval][out] */ LONG *__MIDL__ICompleteStatus0000); + DECLSPEC_XFGVIRT(ICompleteStatus, get_statusMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusMessage )( ICompleteStatus * This, /* [retval][out] */ BSTR *__MIDL__ICompleteStatus0001); @@ -508,22 +537,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterObserver * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterObserver * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterObserver * This); + DECLSPEC_XFGVIRT(IUpdaterObserver, OnStateChange) HRESULT ( STDMETHODCALLTYPE *OnStateChange )( IUpdaterObserver * This, /* [in] */ IUpdateState *update_state); + DECLSPEC_XFGVIRT(IUpdaterObserver, OnComplete) HRESULT ( STDMETHODCALLTYPE *OnComplete )( IUpdaterObserver * This, /* [in] */ ICompleteStatus *status); @@ -595,18 +629,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterCallback * This); + DECLSPEC_XFGVIRT(IUpdaterCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterCallback * This, /* [in] */ LONG result); @@ -698,26 +736,32 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdater * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdater * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdater * This); + DECLSPEC_XFGVIRT(IUpdater, GetVersion) HRESULT ( STDMETHODCALLTYPE *GetVersion )( IUpdater * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IUpdater, CheckForUpdate) HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )( IUpdater * This, /* [string][in] */ const WCHAR *app_id); + DECLSPEC_XFGVIRT(IUpdater, RegisterApp) HRESULT ( STDMETHODCALLTYPE *RegisterApp )( IUpdater * This, /* [string][in] */ const WCHAR *app_id, @@ -727,10 +771,12 @@ /* [string][in] */ const WCHAR *existence_checker_path, /* [in] */ IUpdaterRegisterAppCallback *callback); + DECLSPEC_XFGVIRT(IUpdater, RunPeriodicTasks) HRESULT ( STDMETHODCALLTYPE *RunPeriodicTasks )( IUpdater * This, /* [in] */ IUpdaterCallback *callback); + DECLSPEC_XFGVIRT(IUpdater, Update) HRESULT ( STDMETHODCALLTYPE *Update )( IUpdater * This, /* [string][in] */ const WCHAR *app_id, @@ -738,6 +784,7 @@ /* [in] */ BOOL same_version_update_allowed, /* [in] */ IUpdaterObserver *observer); + DECLSPEC_XFGVIRT(IUpdater, UpdateAll) HRESULT ( STDMETHODCALLTYPE *UpdateAll )( IUpdater * This, /* [in] */ IUpdaterObserver *observer);
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl_p.c index 09976330..ba99c28 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_idl_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_idl_MIDL_TYPE_FORMAT_STRING updater_idl__MIDL_TypeFormatString; extern const updater_idl_MIDL_PROC_FORMAT_STRING updater_idl__MIDL_ProcFormatString; @@ -903,15 +955,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -1264,7 +1320,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl.h index 3616e358..fdb5bdc 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IUpdaterInternalCallback_FWD_DEFINED__ @@ -133,18 +141,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterInternalCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterInternalCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterInternalCallback * This); + DECLSPEC_XFGVIRT(IUpdaterInternalCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterInternalCallback * This, /* [in] */ LONG result); @@ -216,22 +228,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterInternal * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterInternal * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterInternal * This); + DECLSPEC_XFGVIRT(IUpdaterInternal, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterInternal * This, /* [in] */ IUpdaterInternalCallback *callback); + DECLSPEC_XFGVIRT(IUpdaterInternal, InitializeUpdateService) HRESULT ( STDMETHODCALLTYPE *InitializeUpdateService )( IUpdaterInternal * This, /* [in] */ IUpdaterInternalCallback *callback);
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl_p.c index 68b13e91..c5d5c4a3 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_internal_idl_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_internal_idl_MIDL_TYPE_FORMAT_STRING updater_internal_idl__MIDL_TypeFormatString; extern const updater_internal_idl_MIDL_PROC_FORMAT_STRING updater_internal_idl__MIDL_ProcFormatString; @@ -346,7 +398,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl.h index 7a45a887..10fa465 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ICurrentState_FWD_DEFINED__ @@ -279,28 +287,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICurrentState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICurrentState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICurrentState * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICurrentState * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICurrentState * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICurrentState * This, /* [in] */ REFIID riid, @@ -309,6 +323,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICurrentState * This, /* [annotation][in] */ @@ -328,70 +343,87 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICurrentState, get_stateValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0000); + DECLSPEC_XFGVIRT(ICurrentState, get_availableVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0001); + DECLSPEC_XFGVIRT(ICurrentState, get_bytesDownloaded) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0002); + DECLSPEC_XFGVIRT(ICurrentState, get_totalBytesToDownload) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0003); + DECLSPEC_XFGVIRT(ICurrentState, get_downloadTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0004); + DECLSPEC_XFGVIRT(ICurrentState, get_nextRetryTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )( ICurrentState * This, /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005); + DECLSPEC_XFGVIRT(ICurrentState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0006); + DECLSPEC_XFGVIRT(ICurrentState, get_installTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0007); + DECLSPEC_XFGVIRT(ICurrentState, get_isCanceled) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )( ICurrentState * This, /* [retval][out] */ VARIANT_BOOL *is_canceled); + DECLSPEC_XFGVIRT(ICurrentState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0008); + DECLSPEC_XFGVIRT(ICurrentState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0009); + DECLSPEC_XFGVIRT(ICurrentState, get_completionMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0010); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0011); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultExtraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0012); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallLaunchCommandLine) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0013); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0014); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallAction) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0015); @@ -521,28 +553,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3Web * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3Web * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, @@ -551,6 +589,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3Web * This, /* [annotation][in] */ @@ -570,6 +609,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3Web, createAppBundleWeb) HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )( IGoogleUpdate3Web * This, /* [retval][out] */ IDispatch **app_bundle_web); @@ -696,28 +736,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundleWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundleWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundleWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundleWeb * This, /* [in] */ REFIID riid, @@ -726,6 +772,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundleWeb * This, /* [annotation][in] */ @@ -745,6 +792,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundleWeb, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundleWeb * This, /* [in] */ BSTR app_guid, @@ -752,60 +800,76 @@ /* [in] */ BSTR language, /* [in] */ BSTR ap); + DECLSPEC_XFGVIRT(IAppBundleWeb, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundleWeb * This, /* [in] */ BSTR app_id); + DECLSPEC_XFGVIRT(IAppBundleWeb, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundleWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundleWeb * This, /* [in] */ BSTR __MIDL__IAppBundleWeb0001); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundleWeb * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_length) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IAppBundleWeb * This, /* [retval][out] */ int *index); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_appWeb) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )( IAppBundleWeb * This, /* [in] */ int index, /* [retval][out] */ IDispatch **app_web); + DECLSPEC_XFGVIRT(IAppBundleWeb, initialize) HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, checkForUpdate) HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, download) HRESULT ( STDMETHODCALLTYPE *download )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, install) HRESULT ( STDMETHODCALLTYPE *install )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, pause) HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, resume) HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, downloadPackage) HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundleWeb * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundleWeb * This, /* [retval][out] */ VARIANT *current_state); @@ -960,28 +1024,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppWeb * This, /* [in] */ REFIID riid, @@ -990,6 +1060,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppWeb * This, /* [annotation][in] */ @@ -1009,40 +1080,50 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppWeb, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0000); + DECLSPEC_XFGVIRT(IAppWeb, get_currentVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IAppWeb, get_nextVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IAppWeb, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IAppWeb * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IAppWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppWeb * This, /* [retval][out] */ IDispatch **current_state); + DECLSPEC_XFGVIRT(IAppWeb, launch) HRESULT ( STDMETHODCALLTYPE *launch )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, uninstall) HRESULT ( STDMETHODCALLTYPE *uninstall )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0001); + DECLSPEC_XFGVIRT(IAppWeb, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IAppWeb * This, /* [in] */ BSTR __MIDL__IAppWeb0002); @@ -1161,27 +1242,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher * This, /* [string][in] */ const WCHAR *app_guid, @@ -1262,27 +1349,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher2 * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *app_guid, @@ -1290,6 +1383,7 @@ /* [in] */ DWORD caller_proc_id, /* [out] */ ULONG_PTR *proc_handle); + DECLSPEC_XFGVIRT(IProcessLauncher2, LaunchCmdLineEx) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLineEx )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line,
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl_p.c index 9c8b3e0b..86f6b7c 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x64/updater_legacy_idl_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_legacy_idl_MIDL_TYPE_FORMAT_STRING updater_legacy_idl__MIDL_TypeFormatString; extern const updater_legacy_idl_MIDL_PROC_FORMAT_STRING updater_legacy_idl__MIDL_ProcFormatString; @@ -2347,21 +2399,28 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -2897,7 +2956,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl.h index 5770af15..c3ae02f 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IUpdateState_FWD_DEFINED__ @@ -199,50 +207,62 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdateState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdateState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdateState * This); + DECLSPEC_XFGVIRT(IUpdateState, get_state) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_state )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0000); + DECLSPEC_XFGVIRT(IUpdateState, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IUpdateState * This, /* [retval][out] */ BSTR *__MIDL__IUpdateState0001); + DECLSPEC_XFGVIRT(IUpdateState, get_nextVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IUpdateState * This, /* [retval][out] */ BSTR *__MIDL__IUpdateState0002); + DECLSPEC_XFGVIRT(IUpdateState, get_downloadedBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadedBytes )( IUpdateState * This, /* [retval][out] */ LONGLONG *__MIDL__IUpdateState0003); + DECLSPEC_XFGVIRT(IUpdateState, get_totalBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytes )( IUpdateState * This, /* [retval][out] */ LONGLONG *__MIDL__IUpdateState0004); + DECLSPEC_XFGVIRT(IUpdateState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0005); + DECLSPEC_XFGVIRT(IUpdateState, get_errorCategory) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCategory )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0006); + DECLSPEC_XFGVIRT(IUpdateState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0007); + DECLSPEC_XFGVIRT(IUpdateState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( IUpdateState * This, /* [retval][out] */ LONG *__MIDL__IUpdateState0008); @@ -335,18 +355,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterRegisterAppCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterRegisterAppCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterRegisterAppCallback * This); + DECLSPEC_XFGVIRT(IUpdaterRegisterAppCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterRegisterAppCallback * This, /* [in] */ LONG status_code); @@ -418,22 +442,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICompleteStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICompleteStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICompleteStatus * This); + DECLSPEC_XFGVIRT(ICompleteStatus, get_statusCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusCode )( ICompleteStatus * This, /* [retval][out] */ LONG *__MIDL__ICompleteStatus0000); + DECLSPEC_XFGVIRT(ICompleteStatus, get_statusMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_statusMessage )( ICompleteStatus * This, /* [retval][out] */ BSTR *__MIDL__ICompleteStatus0001); @@ -508,22 +537,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterObserver * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterObserver * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterObserver * This); + DECLSPEC_XFGVIRT(IUpdaterObserver, OnStateChange) HRESULT ( STDMETHODCALLTYPE *OnStateChange )( IUpdaterObserver * This, /* [in] */ IUpdateState *update_state); + DECLSPEC_XFGVIRT(IUpdaterObserver, OnComplete) HRESULT ( STDMETHODCALLTYPE *OnComplete )( IUpdaterObserver * This, /* [in] */ ICompleteStatus *status); @@ -595,18 +629,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterCallback * This); + DECLSPEC_XFGVIRT(IUpdaterCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterCallback * This, /* [in] */ LONG result); @@ -698,26 +736,32 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdater * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdater * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdater * This); + DECLSPEC_XFGVIRT(IUpdater, GetVersion) HRESULT ( STDMETHODCALLTYPE *GetVersion )( IUpdater * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IUpdater, CheckForUpdate) HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )( IUpdater * This, /* [string][in] */ const WCHAR *app_id); + DECLSPEC_XFGVIRT(IUpdater, RegisterApp) HRESULT ( STDMETHODCALLTYPE *RegisterApp )( IUpdater * This, /* [string][in] */ const WCHAR *app_id, @@ -727,10 +771,12 @@ /* [string][in] */ const WCHAR *existence_checker_path, /* [in] */ IUpdaterRegisterAppCallback *callback); + DECLSPEC_XFGVIRT(IUpdater, RunPeriodicTasks) HRESULT ( STDMETHODCALLTYPE *RunPeriodicTasks )( IUpdater * This, /* [in] */ IUpdaterCallback *callback); + DECLSPEC_XFGVIRT(IUpdater, Update) HRESULT ( STDMETHODCALLTYPE *Update )( IUpdater * This, /* [string][in] */ const WCHAR *app_id, @@ -738,6 +784,7 @@ /* [in] */ BOOL same_version_update_allowed, /* [in] */ IUpdaterObserver *observer); + DECLSPEC_XFGVIRT(IUpdater, UpdateAll) HRESULT ( STDMETHODCALLTYPE *UpdateAll )( IUpdater * This, /* [in] */ IUpdaterObserver *observer);
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl_p.c index d7521b6b2..fbaf16f 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_idl_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_idl_MIDL_TYPE_FORMAT_STRING updater_idl__MIDL_TypeFormatString; extern const updater_idl_MIDL_PROC_FORMAT_STRING updater_idl__MIDL_ProcFormatString; @@ -896,15 +948,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -1257,7 +1313,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl.h index 8336172..9dada84 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IUpdaterInternalCallback_FWD_DEFINED__ @@ -133,18 +141,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterInternalCallback * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterInternalCallback * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterInternalCallback * This); + DECLSPEC_XFGVIRT(IUpdaterInternalCallback, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterInternalCallback * This, /* [in] */ LONG result); @@ -216,22 +228,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IUpdaterInternal * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IUpdaterInternal * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IUpdaterInternal * This); + DECLSPEC_XFGVIRT(IUpdaterInternal, Run) HRESULT ( STDMETHODCALLTYPE *Run )( IUpdaterInternal * This, /* [in] */ IUpdaterInternalCallback *callback); + DECLSPEC_XFGVIRT(IUpdaterInternal, InitializeUpdateService) HRESULT ( STDMETHODCALLTYPE *InitializeUpdateService )( IUpdaterInternal * This, /* [in] */ IUpdaterInternalCallback *callback);
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl_p.c index 2a2eeb2..d460a4e 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_internal_idl_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_internal_idl_MIDL_TYPE_FORMAT_STRING updater_internal_idl__MIDL_TypeFormatString; extern const updater_internal_idl_MIDL_PROC_FORMAT_STRING updater_internal_idl__MIDL_ProcFormatString; @@ -354,7 +406,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, 0, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl.h b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl.h index 8493163..10af13b 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl.h +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ICurrentState_FWD_DEFINED__ @@ -279,28 +287,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICurrentState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICurrentState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICurrentState * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICurrentState * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICurrentState * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICurrentState * This, /* [in] */ REFIID riid, @@ -309,6 +323,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICurrentState * This, /* [annotation][in] */ @@ -328,70 +343,87 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICurrentState, get_stateValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0000); + DECLSPEC_XFGVIRT(ICurrentState, get_availableVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0001); + DECLSPEC_XFGVIRT(ICurrentState, get_bytesDownloaded) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0002); + DECLSPEC_XFGVIRT(ICurrentState, get_totalBytesToDownload) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0003); + DECLSPEC_XFGVIRT(ICurrentState, get_downloadTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0004); + DECLSPEC_XFGVIRT(ICurrentState, get_nextRetryTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )( ICurrentState * This, /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005); + DECLSPEC_XFGVIRT(ICurrentState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0006); + DECLSPEC_XFGVIRT(ICurrentState, get_installTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0007); + DECLSPEC_XFGVIRT(ICurrentState, get_isCanceled) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )( ICurrentState * This, /* [retval][out] */ VARIANT_BOOL *is_canceled); + DECLSPEC_XFGVIRT(ICurrentState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0008); + DECLSPEC_XFGVIRT(ICurrentState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0009); + DECLSPEC_XFGVIRT(ICurrentState, get_completionMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0010); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0011); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultExtraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0012); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallLaunchCommandLine) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0013); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0014); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallAction) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0015); @@ -521,28 +553,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3Web * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3Web * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, @@ -551,6 +589,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3Web * This, /* [annotation][in] */ @@ -570,6 +609,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3Web, createAppBundleWeb) HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )( IGoogleUpdate3Web * This, /* [retval][out] */ IDispatch **app_bundle_web); @@ -696,28 +736,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundleWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundleWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundleWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundleWeb * This, /* [in] */ REFIID riid, @@ -726,6 +772,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundleWeb * This, /* [annotation][in] */ @@ -745,6 +792,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundleWeb, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundleWeb * This, /* [in] */ BSTR app_guid, @@ -752,60 +800,76 @@ /* [in] */ BSTR language, /* [in] */ BSTR ap); + DECLSPEC_XFGVIRT(IAppBundleWeb, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundleWeb * This, /* [in] */ BSTR app_id); + DECLSPEC_XFGVIRT(IAppBundleWeb, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundleWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundleWeb * This, /* [in] */ BSTR __MIDL__IAppBundleWeb0001); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundleWeb * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_length) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IAppBundleWeb * This, /* [retval][out] */ int *index); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_appWeb) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )( IAppBundleWeb * This, /* [in] */ int index, /* [retval][out] */ IDispatch **app_web); + DECLSPEC_XFGVIRT(IAppBundleWeb, initialize) HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, checkForUpdate) HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, download) HRESULT ( STDMETHODCALLTYPE *download )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, install) HRESULT ( STDMETHODCALLTYPE *install )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, pause) HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, resume) HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, downloadPackage) HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundleWeb * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundleWeb * This, /* [retval][out] */ VARIANT *current_state); @@ -960,28 +1024,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppWeb * This, /* [in] */ REFIID riid, @@ -990,6 +1060,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppWeb * This, /* [annotation][in] */ @@ -1009,40 +1080,50 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppWeb, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0000); + DECLSPEC_XFGVIRT(IAppWeb, get_currentVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IAppWeb, get_nextVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IAppWeb, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IAppWeb * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IAppWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppWeb * This, /* [retval][out] */ IDispatch **current_state); + DECLSPEC_XFGVIRT(IAppWeb, launch) HRESULT ( STDMETHODCALLTYPE *launch )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, uninstall) HRESULT ( STDMETHODCALLTYPE *uninstall )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0001); + DECLSPEC_XFGVIRT(IAppWeb, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IAppWeb * This, /* [in] */ BSTR __MIDL__IAppWeb0002); @@ -1161,27 +1242,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher * This, /* [string][in] */ const WCHAR *app_guid, @@ -1262,27 +1349,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher2 * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *app_guid, @@ -1290,6 +1383,7 @@ /* [in] */ DWORD caller_proc_id, /* [out] */ ULONG_PTR *proc_handle); + DECLSPEC_XFGVIRT(IProcessLauncher2, LaunchCmdLineEx) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLineEx )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line,
diff --git a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl_p.c b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl_p.c index 3a23528..6846b41 100644 --- a/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl_p.c +++ b/third_party/win_build_output/midl/chrome/updater/app/server/win/x86/updater_legacy_idl_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const updater_legacy_idl_MIDL_TYPE_FORMAT_STRING updater_legacy_idl__MIDL_TypeFormatString; extern const updater_legacy_idl_MIDL_PROC_FORMAT_STRING updater_legacy_idl__MIDL_ProcFormatString; @@ -2377,21 +2429,28 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -2927,7 +2986,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/google_update/arm64/google_update_idl.h b/third_party/win_build_output/midl/google_update/arm64/google_update_idl.h index ec6dd6b2..742aa569 100644 --- a/third_party/win_build_output/midl/google_update/arm64/google_update_idl.h +++ b/third_party/win_build_output/midl/google_update/arm64/google_update_idl.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../google_update/google_update_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IGoogleUpdate3_FWD_DEFINED__ @@ -803,28 +811,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3 * This, /* [in] */ REFIID riid, @@ -833,6 +847,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3 * This, /* [annotation][in] */ @@ -852,15 +867,18 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3, get_Count) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IGoogleUpdate3 * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IGoogleUpdate3, get_Item) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( IGoogleUpdate3 * This, /* [in] */ long index, /* [retval][out] */ IDispatch **bundle); + DECLSPEC_XFGVIRT(IGoogleUpdate3, createAppBundle) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAppBundle )( IGoogleUpdate3 * This, /* [retval][out] */ IDispatch **app_bundle); @@ -1044,28 +1062,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundle * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundle * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundle * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundle * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundle * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundle * This, /* [in] */ REFIID riid, @@ -1074,6 +1098,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundle * This, /* [annotation][in] */ @@ -1093,135 +1118,169 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundle, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0000); + DECLSPEC_XFGVIRT(IAppBundle, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0001); + DECLSPEC_XFGVIRT(IAppBundle, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0002); + DECLSPEC_XFGVIRT(IAppBundle, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0003); + DECLSPEC_XFGVIRT(IAppBundle, get_installSource) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installSource )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0004); + DECLSPEC_XFGVIRT(IAppBundle, put_installSource) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_installSource )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0005); + DECLSPEC_XFGVIRT(IAppBundle, get_originURL) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_originURL )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0006); + DECLSPEC_XFGVIRT(IAppBundle, put_originURL) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_originURL )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0007); + DECLSPEC_XFGVIRT(IAppBundle, get_offlineDirectory) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offlineDirectory )( IAppBundle * This, /* [retval][out] */ BSTR *offline_dir); + DECLSPEC_XFGVIRT(IAppBundle, put_offlineDirectory) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_offlineDirectory )( IAppBundle * This, /* [in] */ BSTR offline_dir); + DECLSPEC_XFGVIRT(IAppBundle, get_sessionId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sessionId )( IAppBundle * This, /* [retval][out] */ BSTR *session_id); + DECLSPEC_XFGVIRT(IAppBundle, put_sessionId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sessionId )( IAppBundle * This, /* [in] */ BSTR session_id); + DECLSPEC_XFGVIRT(IAppBundle, get_sendPings) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sendPings )( IAppBundle * This, /* [retval][out] */ VARIANT_BOOL *send_pings); + DECLSPEC_XFGVIRT(IAppBundle, put_sendPings) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sendPings )( IAppBundle * This, /* [in] */ VARIANT_BOOL send_pings); + DECLSPEC_XFGVIRT(IAppBundle, get_priority) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_priority )( IAppBundle * This, /* [retval][out] */ long *priority); + DECLSPEC_XFGVIRT(IAppBundle, put_priority) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_priority )( IAppBundle * This, /* [in] */ long priority); + DECLSPEC_XFGVIRT(IAppBundle, get_Count) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IAppBundle * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppBundle, get_Item) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( IAppBundle * This, /* [in] */ long index, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, put_altTokens) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_altTokens )( IAppBundle * This, /* [in] */ ULONG_PTR impersonation_token, /* [in] */ ULONG_PTR primary_token, /* [in] */ DWORD caller_proc_id); + DECLSPEC_XFGVIRT(IAppBundle, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundle * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundle, initialize) /* [id] */ HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundle * This, /* [in] */ BSTR app_id, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundle * This, /* [in] */ BSTR app_id, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, checkForUpdate) /* [id] */ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, download) /* [id] */ HRESULT ( STDMETHODCALLTYPE *download )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, install) /* [id] */ HRESULT ( STDMETHODCALLTYPE *install )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, updateAllApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *updateAllApps )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, stop) /* [id] */ HRESULT ( STDMETHODCALLTYPE *stop )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, pause) /* [id] */ HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, resume) /* [id] */ HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, isBusy) /* [id] */ HRESULT ( STDMETHODCALLTYPE *isBusy )( IAppBundle * This, /* [retval][out] */ VARIANT_BOOL *is_busy); + DECLSPEC_XFGVIRT(IAppBundle, downloadPackage) /* [id] */ HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundle * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundle, get_currentState) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundle * This, /* [retval][out] */ VARIANT *current_state); @@ -1502,28 +1561,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IApp * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IApp * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IApp * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IApp * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IApp * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IApp * This, /* [in] */ REFIID riid, @@ -1532,6 +1597,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IApp * This, /* [annotation][in] */ @@ -1551,139 +1617,173 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IApp, get_currentVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )( IApp * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IApp, get_nextVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IApp * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IApp, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0000); + DECLSPEC_XFGVIRT(IApp, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0001); + DECLSPEC_XFGVIRT(IApp, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IApp * This, /* [in] */ BSTR __MIDL__IApp0002); + DECLSPEC_XFGVIRT(IApp, get_language) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0003); + DECLSPEC_XFGVIRT(IApp, put_language) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )( IApp * This, /* [in] */ BSTR __MIDL__IApp0004); + DECLSPEC_XFGVIRT(IApp, get_ap) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0005); + DECLSPEC_XFGVIRT(IApp, put_ap) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )( IApp * This, /* [in] */ BSTR __MIDL__IApp0006); + DECLSPEC_XFGVIRT(IApp, get_ttToken) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0007); + DECLSPEC_XFGVIRT(IApp, put_ttToken) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )( IApp * This, /* [in] */ BSTR __MIDL__IApp0008); + DECLSPEC_XFGVIRT(IApp, get_iid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0009); + DECLSPEC_XFGVIRT(IApp, put_iid) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )( IApp * This, /* [in] */ BSTR __MIDL__IApp0010); + DECLSPEC_XFGVIRT(IApp, get_brandCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0011); + DECLSPEC_XFGVIRT(IApp, put_brandCode) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )( IApp * This, /* [in] */ BSTR __MIDL__IApp0012); + DECLSPEC_XFGVIRT(IApp, get_clientId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0013); + DECLSPEC_XFGVIRT(IApp, put_clientId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )( IApp * This, /* [in] */ BSTR __MIDL__IApp0014); + DECLSPEC_XFGVIRT(IApp, get_labels) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0015); + DECLSPEC_XFGVIRT(IApp, put_labels) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )( IApp * This, /* [in] */ BSTR __MIDL__IApp0016); + DECLSPEC_XFGVIRT(IApp, get_referralId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0017); + DECLSPEC_XFGVIRT(IApp, put_referralId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )( IApp * This, /* [in] */ BSTR __MIDL__IApp0018); + DECLSPEC_XFGVIRT(IApp, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IApp * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IApp, get_browserType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0019); + DECLSPEC_XFGVIRT(IApp, put_browserType) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )( IApp * This, /* [in] */ UINT __MIDL__IApp0020); + DECLSPEC_XFGVIRT(IApp, get_clientInstallData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0021); + DECLSPEC_XFGVIRT(IApp, put_clientInstallData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )( IApp * This, /* [in] */ BSTR __MIDL__IApp0022); + DECLSPEC_XFGVIRT(IApp, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0023); + DECLSPEC_XFGVIRT(IApp, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IApp * This, /* [in] */ BSTR __MIDL__IApp0024); + DECLSPEC_XFGVIRT(IApp, get_isEulaAccepted) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )( IApp * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025); + DECLSPEC_XFGVIRT(IApp, put_isEulaAccepted) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )( IApp * This, /* [in] */ VARIANT_BOOL __MIDL__IApp0026); + DECLSPEC_XFGVIRT(IApp, get_usageStatsEnable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0027); + DECLSPEC_XFGVIRT(IApp, put_usageStatsEnable) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )( IApp * This, /* [in] */ UINT __MIDL__IApp0028); + DECLSPEC_XFGVIRT(IApp, get_installTimeDiffSec) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0029); + DECLSPEC_XFGVIRT(IApp, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IApp * This, /* [retval][out] */ IDispatch **__MIDL__IApp0030); @@ -1867,28 +1967,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IApp2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IApp2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IApp2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IApp2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IApp2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IApp2 * This, /* [in] */ REFIID riid, @@ -1897,6 +2003,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IApp2 * This, /* [annotation][in] */ @@ -1916,147 +2023,183 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IApp, get_currentVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )( IApp2 * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IApp, get_nextVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IApp2 * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IApp, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0000); + DECLSPEC_XFGVIRT(IApp, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0001); + DECLSPEC_XFGVIRT(IApp, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0002); + DECLSPEC_XFGVIRT(IApp, get_language) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0003); + DECLSPEC_XFGVIRT(IApp, put_language) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0004); + DECLSPEC_XFGVIRT(IApp, get_ap) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0005); + DECLSPEC_XFGVIRT(IApp, put_ap) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0006); + DECLSPEC_XFGVIRT(IApp, get_ttToken) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0007); + DECLSPEC_XFGVIRT(IApp, put_ttToken) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0008); + DECLSPEC_XFGVIRT(IApp, get_iid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0009); + DECLSPEC_XFGVIRT(IApp, put_iid) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0010); + DECLSPEC_XFGVIRT(IApp, get_brandCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0011); + DECLSPEC_XFGVIRT(IApp, put_brandCode) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0012); + DECLSPEC_XFGVIRT(IApp, get_clientId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0013); + DECLSPEC_XFGVIRT(IApp, put_clientId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0014); + DECLSPEC_XFGVIRT(IApp, get_labels) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0015); + DECLSPEC_XFGVIRT(IApp, put_labels) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0016); + DECLSPEC_XFGVIRT(IApp, get_referralId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0017); + DECLSPEC_XFGVIRT(IApp, put_referralId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0018); + DECLSPEC_XFGVIRT(IApp, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IApp2 * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IApp, get_browserType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0019); + DECLSPEC_XFGVIRT(IApp, put_browserType) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )( IApp2 * This, /* [in] */ UINT __MIDL__IApp0020); + DECLSPEC_XFGVIRT(IApp, get_clientInstallData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0021); + DECLSPEC_XFGVIRT(IApp, put_clientInstallData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0022); + DECLSPEC_XFGVIRT(IApp, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0023); + DECLSPEC_XFGVIRT(IApp, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0024); + DECLSPEC_XFGVIRT(IApp, get_isEulaAccepted) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )( IApp2 * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025); + DECLSPEC_XFGVIRT(IApp, put_isEulaAccepted) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )( IApp2 * This, /* [in] */ VARIANT_BOOL __MIDL__IApp0026); + DECLSPEC_XFGVIRT(IApp, get_usageStatsEnable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0027); + DECLSPEC_XFGVIRT(IApp, put_usageStatsEnable) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )( IApp2 * This, /* [in] */ UINT __MIDL__IApp0028); + DECLSPEC_XFGVIRT(IApp, get_installTimeDiffSec) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0029); + DECLSPEC_XFGVIRT(IApp, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IApp2 * This, /* [retval][out] */ IDispatch **__MIDL__IApp0030); + DECLSPEC_XFGVIRT(IApp2, get_untrustedData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_untrustedData )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp20000); + DECLSPEC_XFGVIRT(IApp2, put_untrustedData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_untrustedData )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp20001); @@ -2261,28 +2404,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommand * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommand * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommand * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommand * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommand * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommand * This, /* [in] */ REFIID riid, @@ -2291,6 +2440,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommand * This, /* [annotation][in] */ @@ -2310,18 +2460,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommand, get_isWebAccessible) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )( IAppCommand * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000); + DECLSPEC_XFGVIRT(IAppCommand, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommand * This, /* [retval][out] */ UINT *__MIDL__IAppCommand0001); + DECLSPEC_XFGVIRT(IAppCommand, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommand * This, /* [retval][out] */ DWORD *__MIDL__IAppCommand0002); + DECLSPEC_XFGVIRT(IAppCommand, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommand * This, /* [optional][in] */ VARIANT arg1, @@ -2420,28 +2574,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommand2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommand2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommand2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommand2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommand2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommand2 * This, /* [in] */ REFIID riid, @@ -2450,6 +2610,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommand2 * This, /* [annotation][in] */ @@ -2469,18 +2630,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommand, get_isWebAccessible) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )( IAppCommand2 * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000); + DECLSPEC_XFGVIRT(IAppCommand, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommand2 * This, /* [retval][out] */ UINT *__MIDL__IAppCommand0001); + DECLSPEC_XFGVIRT(IAppCommand, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommand2 * This, /* [retval][out] */ DWORD *__MIDL__IAppCommand0002); + DECLSPEC_XFGVIRT(IAppCommand, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommand2 * This, /* [optional][in] */ VARIANT arg1, @@ -2493,6 +2658,7 @@ /* [optional][in] */ VARIANT arg8, /* [optional][in] */ VARIANT arg9); + DECLSPEC_XFGVIRT(IAppCommand2, get_output) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( IAppCommand2 * This, /* [retval][out] */ BSTR *__MIDL__IAppCommand20000); @@ -2594,28 +2760,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppVersion * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppVersion * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppVersion * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppVersion * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppVersion * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppVersion * This, /* [in] */ REFIID riid, @@ -2624,6 +2796,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppVersion * This, /* [annotation][in] */ @@ -2643,14 +2816,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppVersion, get_version) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( IAppVersion * This, /* [retval][out] */ BSTR *__MIDL__IAppVersion0000); + DECLSPEC_XFGVIRT(IAppVersion, get_packageCount) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )( IAppVersion * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppVersion, get_package) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_package )( IAppVersion * This, /* [in] */ long index, @@ -2745,28 +2921,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPackage * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPackage * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPackage * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPackage * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPackage * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPackage * This, /* [in] */ REFIID riid, @@ -2775,6 +2957,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPackage * This, /* [annotation][in] */ @@ -2794,14 +2977,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPackage, get) /* [id] */ HRESULT ( STDMETHODCALLTYPE *get )( IPackage * This, /* [in] */ BSTR dir); + DECLSPEC_XFGVIRT(IPackage, get_isAvailable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAvailable )( IPackage * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000); + DECLSPEC_XFGVIRT(IPackage, get_filename) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( IPackage * This, /* [retval][out] */ BSTR *__MIDL__IPackage0001); @@ -2937,28 +3123,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICurrentState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICurrentState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICurrentState * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICurrentState * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICurrentState * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICurrentState * This, /* [in] */ REFIID riid, @@ -2967,6 +3159,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICurrentState * This, /* [annotation][in] */ @@ -2986,70 +3179,87 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICurrentState, get_stateValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0000); + DECLSPEC_XFGVIRT(ICurrentState, get_availableVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0001); + DECLSPEC_XFGVIRT(ICurrentState, get_bytesDownloaded) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0002); + DECLSPEC_XFGVIRT(ICurrentState, get_totalBytesToDownload) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0003); + DECLSPEC_XFGVIRT(ICurrentState, get_downloadTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0004); + DECLSPEC_XFGVIRT(ICurrentState, get_nextRetryTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )( ICurrentState * This, /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005); + DECLSPEC_XFGVIRT(ICurrentState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0006); + DECLSPEC_XFGVIRT(ICurrentState, get_installTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0007); + DECLSPEC_XFGVIRT(ICurrentState, get_isCanceled) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )( ICurrentState * This, /* [retval][out] */ VARIANT_BOOL *is_canceled); + DECLSPEC_XFGVIRT(ICurrentState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0008); + DECLSPEC_XFGVIRT(ICurrentState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0009); + DECLSPEC_XFGVIRT(ICurrentState, get_completionMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0010); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0011); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultExtraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0012); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallLaunchCommandLine) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0013); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0014); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallAction) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0015); @@ -3180,28 +3390,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRegistrationUpdateHook * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRegistrationUpdateHook * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRegistrationUpdateHook * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IRegistrationUpdateHook * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IRegistrationUpdateHook * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IRegistrationUpdateHook * This, /* [in] */ REFIID riid, @@ -3210,6 +3426,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IRegistrationUpdateHook * This, /* [annotation][in] */ @@ -3229,6 +3446,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IRegistrationUpdateHook, UpdateRegistry) HRESULT ( STDMETHODCALLTYPE *UpdateRegistry )( IRegistrationUpdateHook * This, /* [in] */ BSTR app_id, @@ -3315,18 +3533,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICredentialDialog * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICredentialDialog * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICredentialDialog * This); + DECLSPEC_XFGVIRT(ICredentialDialog, QueryUserForCredentials) HRESULT ( STDMETHODCALLTYPE *QueryUserForCredentials )( ICredentialDialog * This, /* [in] */ ULONG_PTR owner_hwnd, @@ -3430,28 +3652,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatus * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatus * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatus * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatus * This, /* [in] */ REFIID riid, @@ -3460,6 +3688,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatus * This, /* [annotation][in] */ @@ -3479,10 +3708,12 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatus, get_lastCheckPeriodMinutes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckPeriodMinutes )( IPolicyStatus * This, /* [retval][out] */ DWORD *minutes); + DECLSPEC_XFGVIRT(IPolicyStatus, get_updatesSuppressedTimes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updatesSuppressedTimes )( IPolicyStatus * This, /* [out] */ DWORD *start_hour, @@ -3490,33 +3721,40 @@ /* [out] */ DWORD *duration_min, /* [out] */ VARIANT_BOOL *are_updates_suppressed); + DECLSPEC_XFGVIRT(IPolicyStatus, get_downloadPreferenceGroupPolicy) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadPreferenceGroupPolicy )( IPolicyStatus * This, /* [retval][out] */ BSTR *pref); + DECLSPEC_XFGVIRT(IPolicyStatus, get_packageCacheSizeLimitMBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheSizeLimitMBytes )( IPolicyStatus * This, /* [retval][out] */ DWORD *limit); + DECLSPEC_XFGVIRT(IPolicyStatus, get_packageCacheExpirationTimeDays) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheExpirationTimeDays )( IPolicyStatus * This, /* [retval][out] */ DWORD *days); + DECLSPEC_XFGVIRT(IPolicyStatus, get_effectivePolicyForAppInstalls) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppInstalls )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ DWORD *policy); + DECLSPEC_XFGVIRT(IPolicyStatus, get_effectivePolicyForAppUpdates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppUpdates )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ DWORD *policy); + DECLSPEC_XFGVIRT(IPolicyStatus, get_targetVersionPrefix) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVersionPrefix )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ BSTR *prefix); + DECLSPEC_XFGVIRT(IPolicyStatus, get_isRollbackToTargetVersionAllowed) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRollbackToTargetVersionAllowed )( IPolicyStatus * This, /* [in] */ BSTR app_id, @@ -3635,28 +3873,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatusValue * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatusValue * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatusValue * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatusValue * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatusValue * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatusValue * This, /* [in] */ REFIID riid, @@ -3665,6 +3909,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatusValue * This, /* [annotation][in] */ @@ -3684,22 +3929,27 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_source) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_source )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0000); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_value) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0001); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_hasConflict) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasConflict )( IPolicyStatusValue * This, /* [retval][out] */ VARIANT_BOOL *has_conflict); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_conflictSource) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_conflictSource )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0002); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_conflictValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_conflictValue )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0003); @@ -3843,28 +4093,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatus2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatus2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatus2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatus2 * This, /* [in] */ REFIID riid, @@ -3873,6 +4129,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatus2 * This, /* [annotation][in] */ @@ -3892,70 +4149,86 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_updaterVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updaterVersion )( IPolicyStatus2 * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_lastCheckedTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckedTime )( IPolicyStatus2 * This, /* [retval][out] */ DATE *last_checked); + DECLSPEC_XFGVIRT(IPolicyStatus2, refreshPolicies) HRESULT ( STDMETHODCALLTYPE *refreshPolicies )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_lastCheckPeriodMinutes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckPeriodMinutes )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_updatesSuppressedTimes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updatesSuppressedTimes )( IPolicyStatus2 * This, /* [out] */ IPolicyStatusValue **value, VARIANT_BOOL *are_updates_suppressed); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_downloadPreferenceGroupPolicy) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadPreferenceGroupPolicy )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_packageCacheSizeLimitMBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheSizeLimitMBytes )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_packageCacheExpirationTimeDays) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheExpirationTimeDays )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyMode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyMode )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyPacUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyPacUrl )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyServer) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyServer )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_effectivePolicyForAppInstalls) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppInstalls )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_effectivePolicyForAppUpdates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppUpdates )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_targetVersionPrefix) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVersionPrefix )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_isRollbackToTargetVersionAllowed) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRollbackToTargetVersionAllowed )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_targetChannel) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetChannel )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, @@ -4083,28 +4356,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3Web * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3Web * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, @@ -4113,6 +4392,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3Web * This, /* [annotation][in] */ @@ -4132,6 +4412,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3Web, createAppBundleWeb) HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )( IGoogleUpdate3Web * This, /* [retval][out] */ IDispatch **app_bundle_web); @@ -4213,18 +4494,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3WebSecurity * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3WebSecurity * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3WebSecurity * This); + DECLSPEC_XFGVIRT(IGoogleUpdate3WebSecurity, setOriginURL) HRESULT ( STDMETHODCALLTYPE *setOriginURL )( IGoogleUpdate3WebSecurity * This, /* [in] */ BSTR origin_url); @@ -4338,28 +4623,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundleWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundleWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundleWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundleWeb * This, /* [in] */ REFIID riid, @@ -4368,6 +4659,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundleWeb * This, /* [annotation][in] */ @@ -4387,6 +4679,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundleWeb, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundleWeb * This, /* [in] */ BSTR app_guid, @@ -4394,60 +4687,76 @@ /* [in] */ BSTR language, /* [in] */ BSTR ap); + DECLSPEC_XFGVIRT(IAppBundleWeb, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundleWeb * This, /* [in] */ BSTR app_id); + DECLSPEC_XFGVIRT(IAppBundleWeb, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundleWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundleWeb * This, /* [in] */ BSTR __MIDL__IAppBundleWeb0001); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundleWeb * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_length) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IAppBundleWeb * This, /* [retval][out] */ int *index); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_appWeb) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )( IAppBundleWeb * This, /* [in] */ int index, /* [retval][out] */ IDispatch **app_web); + DECLSPEC_XFGVIRT(IAppBundleWeb, initialize) HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, checkForUpdate) HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, download) HRESULT ( STDMETHODCALLTYPE *download )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, install) HRESULT ( STDMETHODCALLTYPE *install )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, pause) HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, resume) HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, downloadPackage) HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundleWeb * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundleWeb * This, /* [retval][out] */ VARIANT *current_state); @@ -4602,28 +4911,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppWeb * This, /* [in] */ REFIID riid, @@ -4632,6 +4947,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppWeb * This, /* [annotation][in] */ @@ -4651,40 +4967,50 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppWeb, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0000); + DECLSPEC_XFGVIRT(IAppWeb, get_currentVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IAppWeb, get_nextVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IAppWeb, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IAppWeb * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IAppWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppWeb * This, /* [retval][out] */ IDispatch **current_state); + DECLSPEC_XFGVIRT(IAppWeb, launch) HRESULT ( STDMETHODCALLTYPE *launch )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, uninstall) HRESULT ( STDMETHODCALLTYPE *uninstall )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0001); + DECLSPEC_XFGVIRT(IAppWeb, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IAppWeb * This, /* [in] */ BSTR __MIDL__IAppWeb0002); @@ -4810,28 +5136,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommandWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommandWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommandWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommandWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommandWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommandWeb * This, /* [in] */ REFIID riid, @@ -4840,6 +5172,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommandWeb * This, /* [annotation][in] */ @@ -4859,18 +5192,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommandWeb * This, /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommandWeb * This, /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_output) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( IAppCommandWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppCommandWeb0002); + DECLSPEC_XFGVIRT(IAppCommandWeb, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommandWeb * This, /* [optional][in] */ VARIANT arg1, @@ -4976,28 +5313,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppVersionWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppVersionWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppVersionWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppVersionWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppVersionWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppVersionWeb * This, /* [in] */ REFIID riid, @@ -5006,6 +5349,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppVersionWeb * This, /* [annotation][in] */ @@ -5025,14 +5369,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_version) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( IAppVersionWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_packageCount) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )( IAppVersionWeb * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_packageWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageWeb )( IAppVersionWeb * This, /* [in] */ long index, @@ -5127,28 +5474,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICoCreateAsyncStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICoCreateAsyncStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICoCreateAsyncStatus * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICoCreateAsyncStatus * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICoCreateAsyncStatus * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICoCreateAsyncStatus * This, /* [in] */ REFIID riid, @@ -5157,6 +5510,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICoCreateAsyncStatus * This, /* [annotation][in] */ @@ -5176,14 +5530,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_isDone) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDone )( ICoCreateAsyncStatus * This, /* [retval][out] */ VARIANT_BOOL *is_done); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_completionHResult) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionHResult )( ICoCreateAsyncStatus * This, /* [retval][out] */ LONG *hr); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_createdInstance) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_createdInstance )( ICoCreateAsyncStatus * This, /* [retval][out] */ IDispatch **instance); @@ -5273,18 +5630,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICoCreateAsync * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICoCreateAsync * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICoCreateAsync * This); + DECLSPEC_XFGVIRT(ICoCreateAsync, createOmahaMachineServerAsync) HRESULT ( STDMETHODCALLTYPE *createOmahaMachineServerAsync )( ICoCreateAsync * This, /* [in] */ BSTR origin_url, @@ -5361,18 +5722,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IBrowserHttpRequest2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IBrowserHttpRequest2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IBrowserHttpRequest2 * This); + DECLSPEC_XFGVIRT(IBrowserHttpRequest2, Send) HRESULT ( STDMETHODCALLTYPE *Send )( IBrowserHttpRequest2 * This, /* [in] */ BSTR url, @@ -5457,27 +5822,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher * This, /* [string][in] */ const WCHAR *app_guid, @@ -5558,27 +5929,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher2 * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *app_guid, @@ -5586,6 +5963,7 @@ /* [in] */ DWORD caller_proc_id, /* [out] */ ULONG_PTR *proc_handle); + DECLSPEC_XFGVIRT(IProcessLauncher2, LaunchCmdLineEx) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLineEx )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line, @@ -5700,33 +6078,42 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProgressWndEvents * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoClose) HRESULT ( STDMETHODCALLTYPE *DoClose )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoPause) HRESULT ( STDMETHODCALLTYPE *DoPause )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoResume) HRESULT ( STDMETHODCALLTYPE *DoResume )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoRestartBrowsers) HRESULT ( STDMETHODCALLTYPE *DoRestartBrowsers )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoReboot) HRESULT ( STDMETHODCALLTYPE *DoReboot )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoLaunchBrowser) HRESULT ( STDMETHODCALLTYPE *DoLaunchBrowser )( IProgressWndEvents * This, /* [string][in] */ const WCHAR *url); @@ -5833,50 +6220,63 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IJobObserver * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IJobObserver * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnShow) HRESULT ( STDMETHODCALLTYPE *OnShow )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnCheckingForUpdate) HRESULT ( STDMETHODCALLTYPE *OnCheckingForUpdate )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnUpdateAvailable) HRESULT ( STDMETHODCALLTYPE *OnUpdateAvailable )( IJobObserver * This, /* [string][in] */ const WCHAR *version_string); + DECLSPEC_XFGVIRT(IJobObserver, OnWaitingToDownload) HRESULT ( STDMETHODCALLTYPE *OnWaitingToDownload )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnDownloading) HRESULT ( STDMETHODCALLTYPE *OnDownloading )( IJobObserver * This, /* [in] */ int time_remaining_ms, /* [in] */ int pos); + DECLSPEC_XFGVIRT(IJobObserver, OnWaitingToInstall) HRESULT ( STDMETHODCALLTYPE *OnWaitingToInstall )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnInstalling) HRESULT ( STDMETHODCALLTYPE *OnInstalling )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnPause) HRESULT ( STDMETHODCALLTYPE *OnPause )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnComplete) HRESULT ( STDMETHODCALLTYPE *OnComplete )( IJobObserver * This, /* [in] */ LegacyCompletionCodes code, /* [string][in] */ const WCHAR *completion_text); + DECLSPEC_XFGVIRT(IJobObserver, SetEventSink) HRESULT ( STDMETHODCALLTYPE *SetEventSink )( IJobObserver * This, /* [in] */ IProgressWndEvents *ui_sink); @@ -5973,18 +6373,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IJobObserver2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IJobObserver2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IJobObserver2 * This); + DECLSPEC_XFGVIRT(IJobObserver2, OnInstalling2) HRESULT ( STDMETHODCALLTYPE *OnInstalling2 )( IJobObserver2 * This, /* [in] */ int time_remaining_ms, @@ -6059,23 +6463,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate * This); + DECLSPEC_XFGVIRT(IGoogleUpdate, CheckForUpdate) HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )( IGoogleUpdate * This, /* [string][in] */ const WCHAR *guid, /* [in] */ IJobObserver *observer); + DECLSPEC_XFGVIRT(IGoogleUpdate, Update) HRESULT ( STDMETHODCALLTYPE *Update )( IGoogleUpdate * This, /* [string][in] */ const WCHAR *guid, @@ -6151,18 +6560,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdateCore * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdateCore * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdateCore * This); + DECLSPEC_XFGVIRT(IGoogleUpdateCore, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IGoogleUpdateCore * This, /* [string][in] */ const WCHAR *app_guid,
diff --git a/third_party/win_build_output/midl/google_update/arm64/google_update_idl_i.c b/third_party/win_build_output/midl/google_update/arm64/google_update_idl_i.c index 35c403ea..2056b06 100644 --- a/third_party/win_build_output/midl/google_update/arm64/google_update_idl_i.c +++ b/third_party/win_build_output/midl/google_update/arm64/google_update_idl_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../google_update/google_update_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/google_update/arm64/google_update_idl_p.c b/third_party/win_build_output/midl/google_update/arm64/google_update_idl_p.c index 0b33d75..4d60d35a 100644 --- a/third_party/win_build_output/midl/google_update/arm64/google_update_idl_p.c +++ b/third_party/win_build_output/midl/google_update/arm64/google_update_idl_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../google_update/google_update_idl.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString; extern const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString; @@ -7100,21 +7152,28 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -9598,7 +9657,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -9783,5 +9842,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/google_update/x64/google_update_idl.h b/third_party/win_build_output/midl/google_update/x64/google_update_idl.h index 81b208e..5b3419fa 100644 --- a/third_party/win_build_output/midl/google_update/x64/google_update_idl.h +++ b/third_party/win_build_output/midl/google_update/x64/google_update_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IGoogleUpdate3_FWD_DEFINED__ @@ -803,28 +811,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3 * This, /* [in] */ REFIID riid, @@ -833,6 +847,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3 * This, /* [annotation][in] */ @@ -852,15 +867,18 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3, get_Count) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IGoogleUpdate3 * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IGoogleUpdate3, get_Item) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( IGoogleUpdate3 * This, /* [in] */ long index, /* [retval][out] */ IDispatch **bundle); + DECLSPEC_XFGVIRT(IGoogleUpdate3, createAppBundle) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAppBundle )( IGoogleUpdate3 * This, /* [retval][out] */ IDispatch **app_bundle); @@ -1044,28 +1062,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundle * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundle * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundle * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundle * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundle * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundle * This, /* [in] */ REFIID riid, @@ -1074,6 +1098,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundle * This, /* [annotation][in] */ @@ -1093,135 +1118,169 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundle, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0000); + DECLSPEC_XFGVIRT(IAppBundle, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0001); + DECLSPEC_XFGVIRT(IAppBundle, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0002); + DECLSPEC_XFGVIRT(IAppBundle, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0003); + DECLSPEC_XFGVIRT(IAppBundle, get_installSource) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installSource )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0004); + DECLSPEC_XFGVIRT(IAppBundle, put_installSource) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_installSource )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0005); + DECLSPEC_XFGVIRT(IAppBundle, get_originURL) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_originURL )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0006); + DECLSPEC_XFGVIRT(IAppBundle, put_originURL) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_originURL )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0007); + DECLSPEC_XFGVIRT(IAppBundle, get_offlineDirectory) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offlineDirectory )( IAppBundle * This, /* [retval][out] */ BSTR *offline_dir); + DECLSPEC_XFGVIRT(IAppBundle, put_offlineDirectory) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_offlineDirectory )( IAppBundle * This, /* [in] */ BSTR offline_dir); + DECLSPEC_XFGVIRT(IAppBundle, get_sessionId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sessionId )( IAppBundle * This, /* [retval][out] */ BSTR *session_id); + DECLSPEC_XFGVIRT(IAppBundle, put_sessionId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sessionId )( IAppBundle * This, /* [in] */ BSTR session_id); + DECLSPEC_XFGVIRT(IAppBundle, get_sendPings) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sendPings )( IAppBundle * This, /* [retval][out] */ VARIANT_BOOL *send_pings); + DECLSPEC_XFGVIRT(IAppBundle, put_sendPings) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sendPings )( IAppBundle * This, /* [in] */ VARIANT_BOOL send_pings); + DECLSPEC_XFGVIRT(IAppBundle, get_priority) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_priority )( IAppBundle * This, /* [retval][out] */ long *priority); + DECLSPEC_XFGVIRT(IAppBundle, put_priority) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_priority )( IAppBundle * This, /* [in] */ long priority); + DECLSPEC_XFGVIRT(IAppBundle, get_Count) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IAppBundle * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppBundle, get_Item) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( IAppBundle * This, /* [in] */ long index, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, put_altTokens) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_altTokens )( IAppBundle * This, /* [in] */ ULONG_PTR impersonation_token, /* [in] */ ULONG_PTR primary_token, /* [in] */ DWORD caller_proc_id); + DECLSPEC_XFGVIRT(IAppBundle, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundle * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundle, initialize) /* [id] */ HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundle * This, /* [in] */ BSTR app_id, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundle * This, /* [in] */ BSTR app_id, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, checkForUpdate) /* [id] */ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, download) /* [id] */ HRESULT ( STDMETHODCALLTYPE *download )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, install) /* [id] */ HRESULT ( STDMETHODCALLTYPE *install )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, updateAllApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *updateAllApps )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, stop) /* [id] */ HRESULT ( STDMETHODCALLTYPE *stop )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, pause) /* [id] */ HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, resume) /* [id] */ HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, isBusy) /* [id] */ HRESULT ( STDMETHODCALLTYPE *isBusy )( IAppBundle * This, /* [retval][out] */ VARIANT_BOOL *is_busy); + DECLSPEC_XFGVIRT(IAppBundle, downloadPackage) /* [id] */ HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundle * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundle, get_currentState) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundle * This, /* [retval][out] */ VARIANT *current_state); @@ -1502,28 +1561,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IApp * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IApp * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IApp * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IApp * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IApp * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IApp * This, /* [in] */ REFIID riid, @@ -1532,6 +1597,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IApp * This, /* [annotation][in] */ @@ -1551,139 +1617,173 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IApp, get_currentVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )( IApp * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IApp, get_nextVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IApp * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IApp, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0000); + DECLSPEC_XFGVIRT(IApp, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0001); + DECLSPEC_XFGVIRT(IApp, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IApp * This, /* [in] */ BSTR __MIDL__IApp0002); + DECLSPEC_XFGVIRT(IApp, get_language) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0003); + DECLSPEC_XFGVIRT(IApp, put_language) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )( IApp * This, /* [in] */ BSTR __MIDL__IApp0004); + DECLSPEC_XFGVIRT(IApp, get_ap) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0005); + DECLSPEC_XFGVIRT(IApp, put_ap) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )( IApp * This, /* [in] */ BSTR __MIDL__IApp0006); + DECLSPEC_XFGVIRT(IApp, get_ttToken) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0007); + DECLSPEC_XFGVIRT(IApp, put_ttToken) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )( IApp * This, /* [in] */ BSTR __MIDL__IApp0008); + DECLSPEC_XFGVIRT(IApp, get_iid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0009); + DECLSPEC_XFGVIRT(IApp, put_iid) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )( IApp * This, /* [in] */ BSTR __MIDL__IApp0010); + DECLSPEC_XFGVIRT(IApp, get_brandCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0011); + DECLSPEC_XFGVIRT(IApp, put_brandCode) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )( IApp * This, /* [in] */ BSTR __MIDL__IApp0012); + DECLSPEC_XFGVIRT(IApp, get_clientId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0013); + DECLSPEC_XFGVIRT(IApp, put_clientId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )( IApp * This, /* [in] */ BSTR __MIDL__IApp0014); + DECLSPEC_XFGVIRT(IApp, get_labels) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0015); + DECLSPEC_XFGVIRT(IApp, put_labels) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )( IApp * This, /* [in] */ BSTR __MIDL__IApp0016); + DECLSPEC_XFGVIRT(IApp, get_referralId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0017); + DECLSPEC_XFGVIRT(IApp, put_referralId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )( IApp * This, /* [in] */ BSTR __MIDL__IApp0018); + DECLSPEC_XFGVIRT(IApp, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IApp * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IApp, get_browserType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0019); + DECLSPEC_XFGVIRT(IApp, put_browserType) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )( IApp * This, /* [in] */ UINT __MIDL__IApp0020); + DECLSPEC_XFGVIRT(IApp, get_clientInstallData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0021); + DECLSPEC_XFGVIRT(IApp, put_clientInstallData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )( IApp * This, /* [in] */ BSTR __MIDL__IApp0022); + DECLSPEC_XFGVIRT(IApp, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0023); + DECLSPEC_XFGVIRT(IApp, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IApp * This, /* [in] */ BSTR __MIDL__IApp0024); + DECLSPEC_XFGVIRT(IApp, get_isEulaAccepted) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )( IApp * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025); + DECLSPEC_XFGVIRT(IApp, put_isEulaAccepted) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )( IApp * This, /* [in] */ VARIANT_BOOL __MIDL__IApp0026); + DECLSPEC_XFGVIRT(IApp, get_usageStatsEnable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0027); + DECLSPEC_XFGVIRT(IApp, put_usageStatsEnable) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )( IApp * This, /* [in] */ UINT __MIDL__IApp0028); + DECLSPEC_XFGVIRT(IApp, get_installTimeDiffSec) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0029); + DECLSPEC_XFGVIRT(IApp, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IApp * This, /* [retval][out] */ IDispatch **__MIDL__IApp0030); @@ -1867,28 +1967,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IApp2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IApp2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IApp2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IApp2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IApp2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IApp2 * This, /* [in] */ REFIID riid, @@ -1897,6 +2003,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IApp2 * This, /* [annotation][in] */ @@ -1916,147 +2023,183 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IApp, get_currentVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )( IApp2 * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IApp, get_nextVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IApp2 * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IApp, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0000); + DECLSPEC_XFGVIRT(IApp, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0001); + DECLSPEC_XFGVIRT(IApp, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0002); + DECLSPEC_XFGVIRT(IApp, get_language) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0003); + DECLSPEC_XFGVIRT(IApp, put_language) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0004); + DECLSPEC_XFGVIRT(IApp, get_ap) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0005); + DECLSPEC_XFGVIRT(IApp, put_ap) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0006); + DECLSPEC_XFGVIRT(IApp, get_ttToken) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0007); + DECLSPEC_XFGVIRT(IApp, put_ttToken) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0008); + DECLSPEC_XFGVIRT(IApp, get_iid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0009); + DECLSPEC_XFGVIRT(IApp, put_iid) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0010); + DECLSPEC_XFGVIRT(IApp, get_brandCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0011); + DECLSPEC_XFGVIRT(IApp, put_brandCode) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0012); + DECLSPEC_XFGVIRT(IApp, get_clientId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0013); + DECLSPEC_XFGVIRT(IApp, put_clientId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0014); + DECLSPEC_XFGVIRT(IApp, get_labels) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0015); + DECLSPEC_XFGVIRT(IApp, put_labels) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0016); + DECLSPEC_XFGVIRT(IApp, get_referralId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0017); + DECLSPEC_XFGVIRT(IApp, put_referralId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0018); + DECLSPEC_XFGVIRT(IApp, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IApp2 * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IApp, get_browserType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0019); + DECLSPEC_XFGVIRT(IApp, put_browserType) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )( IApp2 * This, /* [in] */ UINT __MIDL__IApp0020); + DECLSPEC_XFGVIRT(IApp, get_clientInstallData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0021); + DECLSPEC_XFGVIRT(IApp, put_clientInstallData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0022); + DECLSPEC_XFGVIRT(IApp, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0023); + DECLSPEC_XFGVIRT(IApp, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0024); + DECLSPEC_XFGVIRT(IApp, get_isEulaAccepted) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )( IApp2 * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025); + DECLSPEC_XFGVIRT(IApp, put_isEulaAccepted) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )( IApp2 * This, /* [in] */ VARIANT_BOOL __MIDL__IApp0026); + DECLSPEC_XFGVIRT(IApp, get_usageStatsEnable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0027); + DECLSPEC_XFGVIRT(IApp, put_usageStatsEnable) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )( IApp2 * This, /* [in] */ UINT __MIDL__IApp0028); + DECLSPEC_XFGVIRT(IApp, get_installTimeDiffSec) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0029); + DECLSPEC_XFGVIRT(IApp, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IApp2 * This, /* [retval][out] */ IDispatch **__MIDL__IApp0030); + DECLSPEC_XFGVIRT(IApp2, get_untrustedData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_untrustedData )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp20000); + DECLSPEC_XFGVIRT(IApp2, put_untrustedData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_untrustedData )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp20001); @@ -2261,28 +2404,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommand * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommand * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommand * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommand * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommand * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommand * This, /* [in] */ REFIID riid, @@ -2291,6 +2440,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommand * This, /* [annotation][in] */ @@ -2310,18 +2460,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommand, get_isWebAccessible) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )( IAppCommand * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000); + DECLSPEC_XFGVIRT(IAppCommand, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommand * This, /* [retval][out] */ UINT *__MIDL__IAppCommand0001); + DECLSPEC_XFGVIRT(IAppCommand, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommand * This, /* [retval][out] */ DWORD *__MIDL__IAppCommand0002); + DECLSPEC_XFGVIRT(IAppCommand, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommand * This, /* [optional][in] */ VARIANT arg1, @@ -2420,28 +2574,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommand2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommand2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommand2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommand2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommand2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommand2 * This, /* [in] */ REFIID riid, @@ -2450,6 +2610,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommand2 * This, /* [annotation][in] */ @@ -2469,18 +2630,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommand, get_isWebAccessible) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )( IAppCommand2 * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000); + DECLSPEC_XFGVIRT(IAppCommand, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommand2 * This, /* [retval][out] */ UINT *__MIDL__IAppCommand0001); + DECLSPEC_XFGVIRT(IAppCommand, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommand2 * This, /* [retval][out] */ DWORD *__MIDL__IAppCommand0002); + DECLSPEC_XFGVIRT(IAppCommand, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommand2 * This, /* [optional][in] */ VARIANT arg1, @@ -2493,6 +2658,7 @@ /* [optional][in] */ VARIANT arg8, /* [optional][in] */ VARIANT arg9); + DECLSPEC_XFGVIRT(IAppCommand2, get_output) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( IAppCommand2 * This, /* [retval][out] */ BSTR *__MIDL__IAppCommand20000); @@ -2594,28 +2760,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppVersion * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppVersion * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppVersion * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppVersion * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppVersion * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppVersion * This, /* [in] */ REFIID riid, @@ -2624,6 +2796,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppVersion * This, /* [annotation][in] */ @@ -2643,14 +2816,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppVersion, get_version) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( IAppVersion * This, /* [retval][out] */ BSTR *__MIDL__IAppVersion0000); + DECLSPEC_XFGVIRT(IAppVersion, get_packageCount) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )( IAppVersion * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppVersion, get_package) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_package )( IAppVersion * This, /* [in] */ long index, @@ -2745,28 +2921,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPackage * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPackage * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPackage * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPackage * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPackage * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPackage * This, /* [in] */ REFIID riid, @@ -2775,6 +2957,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPackage * This, /* [annotation][in] */ @@ -2794,14 +2977,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPackage, get) /* [id] */ HRESULT ( STDMETHODCALLTYPE *get )( IPackage * This, /* [in] */ BSTR dir); + DECLSPEC_XFGVIRT(IPackage, get_isAvailable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAvailable )( IPackage * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000); + DECLSPEC_XFGVIRT(IPackage, get_filename) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( IPackage * This, /* [retval][out] */ BSTR *__MIDL__IPackage0001); @@ -2937,28 +3123,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICurrentState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICurrentState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICurrentState * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICurrentState * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICurrentState * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICurrentState * This, /* [in] */ REFIID riid, @@ -2967,6 +3159,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICurrentState * This, /* [annotation][in] */ @@ -2986,70 +3179,87 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICurrentState, get_stateValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0000); + DECLSPEC_XFGVIRT(ICurrentState, get_availableVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0001); + DECLSPEC_XFGVIRT(ICurrentState, get_bytesDownloaded) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0002); + DECLSPEC_XFGVIRT(ICurrentState, get_totalBytesToDownload) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0003); + DECLSPEC_XFGVIRT(ICurrentState, get_downloadTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0004); + DECLSPEC_XFGVIRT(ICurrentState, get_nextRetryTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )( ICurrentState * This, /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005); + DECLSPEC_XFGVIRT(ICurrentState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0006); + DECLSPEC_XFGVIRT(ICurrentState, get_installTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0007); + DECLSPEC_XFGVIRT(ICurrentState, get_isCanceled) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )( ICurrentState * This, /* [retval][out] */ VARIANT_BOOL *is_canceled); + DECLSPEC_XFGVIRT(ICurrentState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0008); + DECLSPEC_XFGVIRT(ICurrentState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0009); + DECLSPEC_XFGVIRT(ICurrentState, get_completionMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0010); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0011); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultExtraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0012); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallLaunchCommandLine) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0013); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0014); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallAction) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0015); @@ -3180,28 +3390,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRegistrationUpdateHook * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRegistrationUpdateHook * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRegistrationUpdateHook * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IRegistrationUpdateHook * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IRegistrationUpdateHook * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IRegistrationUpdateHook * This, /* [in] */ REFIID riid, @@ -3210,6 +3426,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IRegistrationUpdateHook * This, /* [annotation][in] */ @@ -3229,6 +3446,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IRegistrationUpdateHook, UpdateRegistry) HRESULT ( STDMETHODCALLTYPE *UpdateRegistry )( IRegistrationUpdateHook * This, /* [in] */ BSTR app_id, @@ -3315,18 +3533,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICredentialDialog * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICredentialDialog * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICredentialDialog * This); + DECLSPEC_XFGVIRT(ICredentialDialog, QueryUserForCredentials) HRESULT ( STDMETHODCALLTYPE *QueryUserForCredentials )( ICredentialDialog * This, /* [in] */ ULONG_PTR owner_hwnd, @@ -3430,28 +3652,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatus * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatus * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatus * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatus * This, /* [in] */ REFIID riid, @@ -3460,6 +3688,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatus * This, /* [annotation][in] */ @@ -3479,10 +3708,12 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatus, get_lastCheckPeriodMinutes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckPeriodMinutes )( IPolicyStatus * This, /* [retval][out] */ DWORD *minutes); + DECLSPEC_XFGVIRT(IPolicyStatus, get_updatesSuppressedTimes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updatesSuppressedTimes )( IPolicyStatus * This, /* [out] */ DWORD *start_hour, @@ -3490,33 +3721,40 @@ /* [out] */ DWORD *duration_min, /* [out] */ VARIANT_BOOL *are_updates_suppressed); + DECLSPEC_XFGVIRT(IPolicyStatus, get_downloadPreferenceGroupPolicy) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadPreferenceGroupPolicy )( IPolicyStatus * This, /* [retval][out] */ BSTR *pref); + DECLSPEC_XFGVIRT(IPolicyStatus, get_packageCacheSizeLimitMBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheSizeLimitMBytes )( IPolicyStatus * This, /* [retval][out] */ DWORD *limit); + DECLSPEC_XFGVIRT(IPolicyStatus, get_packageCacheExpirationTimeDays) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheExpirationTimeDays )( IPolicyStatus * This, /* [retval][out] */ DWORD *days); + DECLSPEC_XFGVIRT(IPolicyStatus, get_effectivePolicyForAppInstalls) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppInstalls )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ DWORD *policy); + DECLSPEC_XFGVIRT(IPolicyStatus, get_effectivePolicyForAppUpdates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppUpdates )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ DWORD *policy); + DECLSPEC_XFGVIRT(IPolicyStatus, get_targetVersionPrefix) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVersionPrefix )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ BSTR *prefix); + DECLSPEC_XFGVIRT(IPolicyStatus, get_isRollbackToTargetVersionAllowed) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRollbackToTargetVersionAllowed )( IPolicyStatus * This, /* [in] */ BSTR app_id, @@ -3635,28 +3873,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatusValue * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatusValue * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatusValue * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatusValue * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatusValue * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatusValue * This, /* [in] */ REFIID riid, @@ -3665,6 +3909,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatusValue * This, /* [annotation][in] */ @@ -3684,22 +3929,27 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_source) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_source )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0000); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_value) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0001); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_hasConflict) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasConflict )( IPolicyStatusValue * This, /* [retval][out] */ VARIANT_BOOL *has_conflict); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_conflictSource) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_conflictSource )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0002); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_conflictValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_conflictValue )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0003); @@ -3843,28 +4093,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatus2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatus2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatus2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatus2 * This, /* [in] */ REFIID riid, @@ -3873,6 +4129,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatus2 * This, /* [annotation][in] */ @@ -3892,70 +4149,86 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_updaterVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updaterVersion )( IPolicyStatus2 * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_lastCheckedTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckedTime )( IPolicyStatus2 * This, /* [retval][out] */ DATE *last_checked); + DECLSPEC_XFGVIRT(IPolicyStatus2, refreshPolicies) HRESULT ( STDMETHODCALLTYPE *refreshPolicies )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_lastCheckPeriodMinutes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckPeriodMinutes )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_updatesSuppressedTimes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updatesSuppressedTimes )( IPolicyStatus2 * This, /* [out] */ IPolicyStatusValue **value, VARIANT_BOOL *are_updates_suppressed); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_downloadPreferenceGroupPolicy) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadPreferenceGroupPolicy )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_packageCacheSizeLimitMBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheSizeLimitMBytes )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_packageCacheExpirationTimeDays) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheExpirationTimeDays )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyMode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyMode )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyPacUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyPacUrl )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyServer) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyServer )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_effectivePolicyForAppInstalls) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppInstalls )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_effectivePolicyForAppUpdates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppUpdates )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_targetVersionPrefix) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVersionPrefix )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_isRollbackToTargetVersionAllowed) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRollbackToTargetVersionAllowed )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_targetChannel) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetChannel )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, @@ -4083,28 +4356,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3Web * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3Web * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, @@ -4113,6 +4392,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3Web * This, /* [annotation][in] */ @@ -4132,6 +4412,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3Web, createAppBundleWeb) HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )( IGoogleUpdate3Web * This, /* [retval][out] */ IDispatch **app_bundle_web); @@ -4213,18 +4494,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3WebSecurity * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3WebSecurity * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3WebSecurity * This); + DECLSPEC_XFGVIRT(IGoogleUpdate3WebSecurity, setOriginURL) HRESULT ( STDMETHODCALLTYPE *setOriginURL )( IGoogleUpdate3WebSecurity * This, /* [in] */ BSTR origin_url); @@ -4338,28 +4623,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundleWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundleWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundleWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundleWeb * This, /* [in] */ REFIID riid, @@ -4368,6 +4659,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundleWeb * This, /* [annotation][in] */ @@ -4387,6 +4679,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundleWeb, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundleWeb * This, /* [in] */ BSTR app_guid, @@ -4394,60 +4687,76 @@ /* [in] */ BSTR language, /* [in] */ BSTR ap); + DECLSPEC_XFGVIRT(IAppBundleWeb, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundleWeb * This, /* [in] */ BSTR app_id); + DECLSPEC_XFGVIRT(IAppBundleWeb, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundleWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundleWeb * This, /* [in] */ BSTR __MIDL__IAppBundleWeb0001); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundleWeb * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_length) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IAppBundleWeb * This, /* [retval][out] */ int *index); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_appWeb) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )( IAppBundleWeb * This, /* [in] */ int index, /* [retval][out] */ IDispatch **app_web); + DECLSPEC_XFGVIRT(IAppBundleWeb, initialize) HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, checkForUpdate) HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, download) HRESULT ( STDMETHODCALLTYPE *download )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, install) HRESULT ( STDMETHODCALLTYPE *install )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, pause) HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, resume) HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, downloadPackage) HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundleWeb * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundleWeb * This, /* [retval][out] */ VARIANT *current_state); @@ -4602,28 +4911,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppWeb * This, /* [in] */ REFIID riid, @@ -4632,6 +4947,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppWeb * This, /* [annotation][in] */ @@ -4651,40 +4967,50 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppWeb, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0000); + DECLSPEC_XFGVIRT(IAppWeb, get_currentVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IAppWeb, get_nextVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IAppWeb, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IAppWeb * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IAppWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppWeb * This, /* [retval][out] */ IDispatch **current_state); + DECLSPEC_XFGVIRT(IAppWeb, launch) HRESULT ( STDMETHODCALLTYPE *launch )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, uninstall) HRESULT ( STDMETHODCALLTYPE *uninstall )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0001); + DECLSPEC_XFGVIRT(IAppWeb, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IAppWeb * This, /* [in] */ BSTR __MIDL__IAppWeb0002); @@ -4810,28 +5136,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommandWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommandWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommandWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommandWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommandWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommandWeb * This, /* [in] */ REFIID riid, @@ -4840,6 +5172,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommandWeb * This, /* [annotation][in] */ @@ -4859,18 +5192,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommandWeb * This, /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommandWeb * This, /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_output) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( IAppCommandWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppCommandWeb0002); + DECLSPEC_XFGVIRT(IAppCommandWeb, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommandWeb * This, /* [optional][in] */ VARIANT arg1, @@ -4976,28 +5313,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppVersionWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppVersionWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppVersionWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppVersionWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppVersionWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppVersionWeb * This, /* [in] */ REFIID riid, @@ -5006,6 +5349,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppVersionWeb * This, /* [annotation][in] */ @@ -5025,14 +5369,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_version) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( IAppVersionWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_packageCount) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )( IAppVersionWeb * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_packageWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageWeb )( IAppVersionWeb * This, /* [in] */ long index, @@ -5127,28 +5474,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICoCreateAsyncStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICoCreateAsyncStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICoCreateAsyncStatus * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICoCreateAsyncStatus * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICoCreateAsyncStatus * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICoCreateAsyncStatus * This, /* [in] */ REFIID riid, @@ -5157,6 +5510,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICoCreateAsyncStatus * This, /* [annotation][in] */ @@ -5176,14 +5530,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_isDone) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDone )( ICoCreateAsyncStatus * This, /* [retval][out] */ VARIANT_BOOL *is_done); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_completionHResult) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionHResult )( ICoCreateAsyncStatus * This, /* [retval][out] */ LONG *hr); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_createdInstance) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_createdInstance )( ICoCreateAsyncStatus * This, /* [retval][out] */ IDispatch **instance); @@ -5273,18 +5630,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICoCreateAsync * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICoCreateAsync * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICoCreateAsync * This); + DECLSPEC_XFGVIRT(ICoCreateAsync, createOmahaMachineServerAsync) HRESULT ( STDMETHODCALLTYPE *createOmahaMachineServerAsync )( ICoCreateAsync * This, /* [in] */ BSTR origin_url, @@ -5361,18 +5722,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IBrowserHttpRequest2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IBrowserHttpRequest2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IBrowserHttpRequest2 * This); + DECLSPEC_XFGVIRT(IBrowserHttpRequest2, Send) HRESULT ( STDMETHODCALLTYPE *Send )( IBrowserHttpRequest2 * This, /* [in] */ BSTR url, @@ -5457,27 +5822,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher * This, /* [string][in] */ const WCHAR *app_guid, @@ -5558,27 +5929,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher2 * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *app_guid, @@ -5586,6 +5963,7 @@ /* [in] */ DWORD caller_proc_id, /* [out] */ ULONG_PTR *proc_handle); + DECLSPEC_XFGVIRT(IProcessLauncher2, LaunchCmdLineEx) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLineEx )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line, @@ -5700,33 +6078,42 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProgressWndEvents * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoClose) HRESULT ( STDMETHODCALLTYPE *DoClose )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoPause) HRESULT ( STDMETHODCALLTYPE *DoPause )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoResume) HRESULT ( STDMETHODCALLTYPE *DoResume )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoRestartBrowsers) HRESULT ( STDMETHODCALLTYPE *DoRestartBrowsers )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoReboot) HRESULT ( STDMETHODCALLTYPE *DoReboot )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoLaunchBrowser) HRESULT ( STDMETHODCALLTYPE *DoLaunchBrowser )( IProgressWndEvents * This, /* [string][in] */ const WCHAR *url); @@ -5833,50 +6220,63 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IJobObserver * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IJobObserver * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnShow) HRESULT ( STDMETHODCALLTYPE *OnShow )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnCheckingForUpdate) HRESULT ( STDMETHODCALLTYPE *OnCheckingForUpdate )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnUpdateAvailable) HRESULT ( STDMETHODCALLTYPE *OnUpdateAvailable )( IJobObserver * This, /* [string][in] */ const WCHAR *version_string); + DECLSPEC_XFGVIRT(IJobObserver, OnWaitingToDownload) HRESULT ( STDMETHODCALLTYPE *OnWaitingToDownload )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnDownloading) HRESULT ( STDMETHODCALLTYPE *OnDownloading )( IJobObserver * This, /* [in] */ int time_remaining_ms, /* [in] */ int pos); + DECLSPEC_XFGVIRT(IJobObserver, OnWaitingToInstall) HRESULT ( STDMETHODCALLTYPE *OnWaitingToInstall )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnInstalling) HRESULT ( STDMETHODCALLTYPE *OnInstalling )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnPause) HRESULT ( STDMETHODCALLTYPE *OnPause )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnComplete) HRESULT ( STDMETHODCALLTYPE *OnComplete )( IJobObserver * This, /* [in] */ LegacyCompletionCodes code, /* [string][in] */ const WCHAR *completion_text); + DECLSPEC_XFGVIRT(IJobObserver, SetEventSink) HRESULT ( STDMETHODCALLTYPE *SetEventSink )( IJobObserver * This, /* [in] */ IProgressWndEvents *ui_sink); @@ -5973,18 +6373,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IJobObserver2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IJobObserver2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IJobObserver2 * This); + DECLSPEC_XFGVIRT(IJobObserver2, OnInstalling2) HRESULT ( STDMETHODCALLTYPE *OnInstalling2 )( IJobObserver2 * This, /* [in] */ int time_remaining_ms, @@ -6059,23 +6463,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate * This); + DECLSPEC_XFGVIRT(IGoogleUpdate, CheckForUpdate) HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )( IGoogleUpdate * This, /* [string][in] */ const WCHAR *guid, /* [in] */ IJobObserver *observer); + DECLSPEC_XFGVIRT(IGoogleUpdate, Update) HRESULT ( STDMETHODCALLTYPE *Update )( IGoogleUpdate * This, /* [string][in] */ const WCHAR *guid, @@ -6151,18 +6560,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdateCore * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdateCore * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdateCore * This); + DECLSPEC_XFGVIRT(IGoogleUpdateCore, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IGoogleUpdateCore * This, /* [string][in] */ const WCHAR *app_guid,
diff --git a/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c b/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c index 6b101f168..cf403c9 100644 --- a/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c +++ b/third_party/win_build_output/midl/google_update/x64/google_update_idl_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString; extern const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString; @@ -6510,21 +6562,28 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -9008,7 +9067,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/google_update/x86/google_update_idl.h b/third_party/win_build_output/midl/google_update/x86/google_update_idl.h index 1e35ccb..1fc1b74 100644 --- a/third_party/win_build_output/midl/google_update/x86/google_update_idl.h +++ b/third_party/win_build_output/midl/google_update/x86/google_update_idl.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IGoogleUpdate3_FWD_DEFINED__ @@ -803,28 +811,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3 * This, /* [in] */ REFIID riid, @@ -833,6 +847,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3 * This, /* [annotation][in] */ @@ -852,15 +867,18 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3, get_Count) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IGoogleUpdate3 * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IGoogleUpdate3, get_Item) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( IGoogleUpdate3 * This, /* [in] */ long index, /* [retval][out] */ IDispatch **bundle); + DECLSPEC_XFGVIRT(IGoogleUpdate3, createAppBundle) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAppBundle )( IGoogleUpdate3 * This, /* [retval][out] */ IDispatch **app_bundle); @@ -1044,28 +1062,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundle * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundle * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundle * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundle * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundle * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundle * This, /* [in] */ REFIID riid, @@ -1074,6 +1098,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundle * This, /* [annotation][in] */ @@ -1093,135 +1118,169 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundle, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0000); + DECLSPEC_XFGVIRT(IAppBundle, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0001); + DECLSPEC_XFGVIRT(IAppBundle, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0002); + DECLSPEC_XFGVIRT(IAppBundle, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0003); + DECLSPEC_XFGVIRT(IAppBundle, get_installSource) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installSource )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0004); + DECLSPEC_XFGVIRT(IAppBundle, put_installSource) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_installSource )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0005); + DECLSPEC_XFGVIRT(IAppBundle, get_originURL) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_originURL )( IAppBundle * This, /* [retval][out] */ BSTR *__MIDL__IAppBundle0006); + DECLSPEC_XFGVIRT(IAppBundle, put_originURL) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_originURL )( IAppBundle * This, /* [in] */ BSTR __MIDL__IAppBundle0007); + DECLSPEC_XFGVIRT(IAppBundle, get_offlineDirectory) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offlineDirectory )( IAppBundle * This, /* [retval][out] */ BSTR *offline_dir); + DECLSPEC_XFGVIRT(IAppBundle, put_offlineDirectory) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_offlineDirectory )( IAppBundle * This, /* [in] */ BSTR offline_dir); + DECLSPEC_XFGVIRT(IAppBundle, get_sessionId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sessionId )( IAppBundle * This, /* [retval][out] */ BSTR *session_id); + DECLSPEC_XFGVIRT(IAppBundle, put_sessionId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sessionId )( IAppBundle * This, /* [in] */ BSTR session_id); + DECLSPEC_XFGVIRT(IAppBundle, get_sendPings) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_sendPings )( IAppBundle * This, /* [retval][out] */ VARIANT_BOOL *send_pings); + DECLSPEC_XFGVIRT(IAppBundle, put_sendPings) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_sendPings )( IAppBundle * This, /* [in] */ VARIANT_BOOL send_pings); + DECLSPEC_XFGVIRT(IAppBundle, get_priority) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_priority )( IAppBundle * This, /* [retval][out] */ long *priority); + DECLSPEC_XFGVIRT(IAppBundle, put_priority) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_priority )( IAppBundle * This, /* [in] */ long priority); + DECLSPEC_XFGVIRT(IAppBundle, get_Count) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( IAppBundle * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppBundle, get_Item) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Item )( IAppBundle * This, /* [in] */ long index, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, put_altTokens) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_altTokens )( IAppBundle * This, /* [in] */ ULONG_PTR impersonation_token, /* [in] */ ULONG_PTR primary_token, /* [in] */ DWORD caller_proc_id); + DECLSPEC_XFGVIRT(IAppBundle, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundle * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundle, initialize) /* [id] */ HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundle * This, /* [in] */ BSTR app_id, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundle * This, /* [in] */ BSTR app_id, /* [retval][out] */ IDispatch **app); + DECLSPEC_XFGVIRT(IAppBundle, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, checkForUpdate) /* [id] */ HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, download) /* [id] */ HRESULT ( STDMETHODCALLTYPE *download )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, install) /* [id] */ HRESULT ( STDMETHODCALLTYPE *install )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, updateAllApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *updateAllApps )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, stop) /* [id] */ HRESULT ( STDMETHODCALLTYPE *stop )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, pause) /* [id] */ HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, resume) /* [id] */ HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundle * This); + DECLSPEC_XFGVIRT(IAppBundle, isBusy) /* [id] */ HRESULT ( STDMETHODCALLTYPE *isBusy )( IAppBundle * This, /* [retval][out] */ VARIANT_BOOL *is_busy); + DECLSPEC_XFGVIRT(IAppBundle, downloadPackage) /* [id] */ HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundle * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundle, get_currentState) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundle * This, /* [retval][out] */ VARIANT *current_state); @@ -1502,28 +1561,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IApp * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IApp * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IApp * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IApp * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IApp * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IApp * This, /* [in] */ REFIID riid, @@ -1532,6 +1597,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IApp * This, /* [annotation][in] */ @@ -1551,139 +1617,173 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IApp, get_currentVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )( IApp * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IApp, get_nextVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IApp * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IApp, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0000); + DECLSPEC_XFGVIRT(IApp, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0001); + DECLSPEC_XFGVIRT(IApp, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IApp * This, /* [in] */ BSTR __MIDL__IApp0002); + DECLSPEC_XFGVIRT(IApp, get_language) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0003); + DECLSPEC_XFGVIRT(IApp, put_language) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )( IApp * This, /* [in] */ BSTR __MIDL__IApp0004); + DECLSPEC_XFGVIRT(IApp, get_ap) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0005); + DECLSPEC_XFGVIRT(IApp, put_ap) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )( IApp * This, /* [in] */ BSTR __MIDL__IApp0006); + DECLSPEC_XFGVIRT(IApp, get_ttToken) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0007); + DECLSPEC_XFGVIRT(IApp, put_ttToken) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )( IApp * This, /* [in] */ BSTR __MIDL__IApp0008); + DECLSPEC_XFGVIRT(IApp, get_iid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0009); + DECLSPEC_XFGVIRT(IApp, put_iid) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )( IApp * This, /* [in] */ BSTR __MIDL__IApp0010); + DECLSPEC_XFGVIRT(IApp, get_brandCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0011); + DECLSPEC_XFGVIRT(IApp, put_brandCode) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )( IApp * This, /* [in] */ BSTR __MIDL__IApp0012); + DECLSPEC_XFGVIRT(IApp, get_clientId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0013); + DECLSPEC_XFGVIRT(IApp, put_clientId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )( IApp * This, /* [in] */ BSTR __MIDL__IApp0014); + DECLSPEC_XFGVIRT(IApp, get_labels) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0015); + DECLSPEC_XFGVIRT(IApp, put_labels) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )( IApp * This, /* [in] */ BSTR __MIDL__IApp0016); + DECLSPEC_XFGVIRT(IApp, get_referralId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0017); + DECLSPEC_XFGVIRT(IApp, put_referralId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )( IApp * This, /* [in] */ BSTR __MIDL__IApp0018); + DECLSPEC_XFGVIRT(IApp, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IApp * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IApp, get_browserType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0019); + DECLSPEC_XFGVIRT(IApp, put_browserType) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )( IApp * This, /* [in] */ UINT __MIDL__IApp0020); + DECLSPEC_XFGVIRT(IApp, get_clientInstallData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0021); + DECLSPEC_XFGVIRT(IApp, put_clientInstallData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )( IApp * This, /* [in] */ BSTR __MIDL__IApp0022); + DECLSPEC_XFGVIRT(IApp, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IApp * This, /* [retval][out] */ BSTR *__MIDL__IApp0023); + DECLSPEC_XFGVIRT(IApp, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IApp * This, /* [in] */ BSTR __MIDL__IApp0024); + DECLSPEC_XFGVIRT(IApp, get_isEulaAccepted) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )( IApp * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025); + DECLSPEC_XFGVIRT(IApp, put_isEulaAccepted) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )( IApp * This, /* [in] */ VARIANT_BOOL __MIDL__IApp0026); + DECLSPEC_XFGVIRT(IApp, get_usageStatsEnable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0027); + DECLSPEC_XFGVIRT(IApp, put_usageStatsEnable) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )( IApp * This, /* [in] */ UINT __MIDL__IApp0028); + DECLSPEC_XFGVIRT(IApp, get_installTimeDiffSec) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )( IApp * This, /* [retval][out] */ UINT *__MIDL__IApp0029); + DECLSPEC_XFGVIRT(IApp, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IApp * This, /* [retval][out] */ IDispatch **__MIDL__IApp0030); @@ -1867,28 +1967,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IApp2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IApp2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IApp2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IApp2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IApp2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IApp2 * This, /* [in] */ REFIID riid, @@ -1897,6 +2003,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IApp2 * This, /* [annotation][in] */ @@ -1916,147 +2023,183 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IApp, get_currentVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersion )( IApp2 * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IApp, get_nextVersion) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersion )( IApp2 * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IApp, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0000); + DECLSPEC_XFGVIRT(IApp, get_displayName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayName )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0001); + DECLSPEC_XFGVIRT(IApp, put_displayName) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayName )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0002); + DECLSPEC_XFGVIRT(IApp, get_language) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0003); + DECLSPEC_XFGVIRT(IApp, put_language) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_language )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0004); + DECLSPEC_XFGVIRT(IApp, get_ap) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ap )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0005); + DECLSPEC_XFGVIRT(IApp, put_ap) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ap )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0006); + DECLSPEC_XFGVIRT(IApp, get_ttToken) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ttToken )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0007); + DECLSPEC_XFGVIRT(IApp, put_ttToken) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_ttToken )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0008); + DECLSPEC_XFGVIRT(IApp, get_iid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_iid )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0009); + DECLSPEC_XFGVIRT(IApp, put_iid) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_iid )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0010); + DECLSPEC_XFGVIRT(IApp, get_brandCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_brandCode )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0011); + DECLSPEC_XFGVIRT(IApp, put_brandCode) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_brandCode )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0012); + DECLSPEC_XFGVIRT(IApp, get_clientId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0013); + DECLSPEC_XFGVIRT(IApp, put_clientId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientId )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0014); + DECLSPEC_XFGVIRT(IApp, get_labels) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_labels )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0015); + DECLSPEC_XFGVIRT(IApp, put_labels) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_labels )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0016); + DECLSPEC_XFGVIRT(IApp, get_referralId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_referralId )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0017); + DECLSPEC_XFGVIRT(IApp, put_referralId) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_referralId )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0018); + DECLSPEC_XFGVIRT(IApp, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IApp2 * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IApp, get_browserType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_browserType )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0019); + DECLSPEC_XFGVIRT(IApp, put_browserType) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_browserType )( IApp2 * This, /* [in] */ UINT __MIDL__IApp0020); + DECLSPEC_XFGVIRT(IApp, get_clientInstallData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_clientInstallData )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0021); + DECLSPEC_XFGVIRT(IApp, put_clientInstallData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_clientInstallData )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0022); + DECLSPEC_XFGVIRT(IApp, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp0023); + DECLSPEC_XFGVIRT(IApp, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp0024); + DECLSPEC_XFGVIRT(IApp, get_isEulaAccepted) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isEulaAccepted )( IApp2 * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IApp0025); + DECLSPEC_XFGVIRT(IApp, put_isEulaAccepted) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_isEulaAccepted )( IApp2 * This, /* [in] */ VARIANT_BOOL __MIDL__IApp0026); + DECLSPEC_XFGVIRT(IApp, get_usageStatsEnable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_usageStatsEnable )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0027); + DECLSPEC_XFGVIRT(IApp, put_usageStatsEnable) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_usageStatsEnable )( IApp2 * This, /* [in] */ UINT __MIDL__IApp0028); + DECLSPEC_XFGVIRT(IApp, get_installTimeDiffSec) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeDiffSec )( IApp2 * This, /* [retval][out] */ UINT *__MIDL__IApp0029); + DECLSPEC_XFGVIRT(IApp, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IApp2 * This, /* [retval][out] */ IDispatch **__MIDL__IApp0030); + DECLSPEC_XFGVIRT(IApp2, get_untrustedData) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_untrustedData )( IApp2 * This, /* [retval][out] */ BSTR *__MIDL__IApp20000); + DECLSPEC_XFGVIRT(IApp2, put_untrustedData) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_untrustedData )( IApp2 * This, /* [in] */ BSTR __MIDL__IApp20001); @@ -2261,28 +2404,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommand * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommand * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommand * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommand * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommand * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommand * This, /* [in] */ REFIID riid, @@ -2291,6 +2440,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommand * This, /* [annotation][in] */ @@ -2310,18 +2460,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommand, get_isWebAccessible) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )( IAppCommand * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000); + DECLSPEC_XFGVIRT(IAppCommand, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommand * This, /* [retval][out] */ UINT *__MIDL__IAppCommand0001); + DECLSPEC_XFGVIRT(IAppCommand, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommand * This, /* [retval][out] */ DWORD *__MIDL__IAppCommand0002); + DECLSPEC_XFGVIRT(IAppCommand, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommand * This, /* [optional][in] */ VARIANT arg1, @@ -2420,28 +2574,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommand2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommand2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommand2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommand2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommand2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommand2 * This, /* [in] */ REFIID riid, @@ -2450,6 +2610,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommand2 * This, /* [annotation][in] */ @@ -2469,18 +2630,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommand, get_isWebAccessible) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isWebAccessible )( IAppCommand2 * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IAppCommand0000); + DECLSPEC_XFGVIRT(IAppCommand, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommand2 * This, /* [retval][out] */ UINT *__MIDL__IAppCommand0001); + DECLSPEC_XFGVIRT(IAppCommand, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommand2 * This, /* [retval][out] */ DWORD *__MIDL__IAppCommand0002); + DECLSPEC_XFGVIRT(IAppCommand, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommand2 * This, /* [optional][in] */ VARIANT arg1, @@ -2493,6 +2658,7 @@ /* [optional][in] */ VARIANT arg8, /* [optional][in] */ VARIANT arg9); + DECLSPEC_XFGVIRT(IAppCommand2, get_output) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( IAppCommand2 * This, /* [retval][out] */ BSTR *__MIDL__IAppCommand20000); @@ -2594,28 +2760,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppVersion * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppVersion * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppVersion * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppVersion * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppVersion * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppVersion * This, /* [in] */ REFIID riid, @@ -2624,6 +2796,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppVersion * This, /* [annotation][in] */ @@ -2643,14 +2816,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppVersion, get_version) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( IAppVersion * This, /* [retval][out] */ BSTR *__MIDL__IAppVersion0000); + DECLSPEC_XFGVIRT(IAppVersion, get_packageCount) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )( IAppVersion * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppVersion, get_package) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_package )( IAppVersion * This, /* [in] */ long index, @@ -2745,28 +2921,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPackage * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPackage * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPackage * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPackage * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPackage * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPackage * This, /* [in] */ REFIID riid, @@ -2775,6 +2957,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPackage * This, /* [annotation][in] */ @@ -2794,14 +2977,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPackage, get) /* [id] */ HRESULT ( STDMETHODCALLTYPE *get )( IPackage * This, /* [in] */ BSTR dir); + DECLSPEC_XFGVIRT(IPackage, get_isAvailable) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isAvailable )( IPackage * This, /* [retval][out] */ VARIANT_BOOL *__MIDL__IPackage0000); + DECLSPEC_XFGVIRT(IPackage, get_filename) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_filename )( IPackage * This, /* [retval][out] */ BSTR *__MIDL__IPackage0001); @@ -2937,28 +3123,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICurrentState * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICurrentState * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICurrentState * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICurrentState * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICurrentState * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICurrentState * This, /* [in] */ REFIID riid, @@ -2967,6 +3159,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICurrentState * This, /* [annotation][in] */ @@ -2986,70 +3179,87 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICurrentState, get_stateValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_stateValue )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0000); + DECLSPEC_XFGVIRT(ICurrentState, get_availableVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_availableVersion )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0001); + DECLSPEC_XFGVIRT(ICurrentState, get_bytesDownloaded) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_bytesDownloaded )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0002); + DECLSPEC_XFGVIRT(ICurrentState, get_totalBytesToDownload) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_totalBytesToDownload )( ICurrentState * This, /* [retval][out] */ ULONG *__MIDL__ICurrentState0003); + DECLSPEC_XFGVIRT(ICurrentState, get_downloadTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0004); + DECLSPEC_XFGVIRT(ICurrentState, get_nextRetryTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextRetryTime )( ICurrentState * This, /* [retval][out] */ ULONGLONG *__MIDL__ICurrentState0005); + DECLSPEC_XFGVIRT(ICurrentState, get_installProgress) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installProgress )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0006); + DECLSPEC_XFGVIRT(ICurrentState, get_installTimeRemainingMs) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installTimeRemainingMs )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0007); + DECLSPEC_XFGVIRT(ICurrentState, get_isCanceled) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isCanceled )( ICurrentState * This, /* [retval][out] */ VARIANT_BOOL *is_canceled); + DECLSPEC_XFGVIRT(ICurrentState, get_errorCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_errorCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0008); + DECLSPEC_XFGVIRT(ICurrentState, get_extraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0009); + DECLSPEC_XFGVIRT(ICurrentState, get_completionMessage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionMessage )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0010); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultCode )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0011); + DECLSPEC_XFGVIRT(ICurrentState, get_installerResultExtraCode1) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_installerResultExtraCode1 )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0012); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallLaunchCommandLine) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallLaunchCommandLine )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0013); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallUrl )( ICurrentState * This, /* [retval][out] */ BSTR *__MIDL__ICurrentState0014); + DECLSPEC_XFGVIRT(ICurrentState, get_postInstallAction) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_postInstallAction )( ICurrentState * This, /* [retval][out] */ LONG *__MIDL__ICurrentState0015); @@ -3180,28 +3390,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRegistrationUpdateHook * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRegistrationUpdateHook * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRegistrationUpdateHook * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IRegistrationUpdateHook * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IRegistrationUpdateHook * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IRegistrationUpdateHook * This, /* [in] */ REFIID riid, @@ -3210,6 +3426,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IRegistrationUpdateHook * This, /* [annotation][in] */ @@ -3229,6 +3446,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IRegistrationUpdateHook, UpdateRegistry) HRESULT ( STDMETHODCALLTYPE *UpdateRegistry )( IRegistrationUpdateHook * This, /* [in] */ BSTR app_id, @@ -3315,18 +3533,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICredentialDialog * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICredentialDialog * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICredentialDialog * This); + DECLSPEC_XFGVIRT(ICredentialDialog, QueryUserForCredentials) HRESULT ( STDMETHODCALLTYPE *QueryUserForCredentials )( ICredentialDialog * This, /* [in] */ ULONG_PTR owner_hwnd, @@ -3430,28 +3652,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatus * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatus * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatus * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatus * This, /* [in] */ REFIID riid, @@ -3460,6 +3688,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatus * This, /* [annotation][in] */ @@ -3479,10 +3708,12 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatus, get_lastCheckPeriodMinutes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckPeriodMinutes )( IPolicyStatus * This, /* [retval][out] */ DWORD *minutes); + DECLSPEC_XFGVIRT(IPolicyStatus, get_updatesSuppressedTimes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updatesSuppressedTimes )( IPolicyStatus * This, /* [out] */ DWORD *start_hour, @@ -3490,33 +3721,40 @@ /* [out] */ DWORD *duration_min, /* [out] */ VARIANT_BOOL *are_updates_suppressed); + DECLSPEC_XFGVIRT(IPolicyStatus, get_downloadPreferenceGroupPolicy) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadPreferenceGroupPolicy )( IPolicyStatus * This, /* [retval][out] */ BSTR *pref); + DECLSPEC_XFGVIRT(IPolicyStatus, get_packageCacheSizeLimitMBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheSizeLimitMBytes )( IPolicyStatus * This, /* [retval][out] */ DWORD *limit); + DECLSPEC_XFGVIRT(IPolicyStatus, get_packageCacheExpirationTimeDays) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheExpirationTimeDays )( IPolicyStatus * This, /* [retval][out] */ DWORD *days); + DECLSPEC_XFGVIRT(IPolicyStatus, get_effectivePolicyForAppInstalls) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppInstalls )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ DWORD *policy); + DECLSPEC_XFGVIRT(IPolicyStatus, get_effectivePolicyForAppUpdates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppUpdates )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ DWORD *policy); + DECLSPEC_XFGVIRT(IPolicyStatus, get_targetVersionPrefix) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVersionPrefix )( IPolicyStatus * This, /* [in] */ BSTR app_id, /* [retval][out] */ BSTR *prefix); + DECLSPEC_XFGVIRT(IPolicyStatus, get_isRollbackToTargetVersionAllowed) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRollbackToTargetVersionAllowed )( IPolicyStatus * This, /* [in] */ BSTR app_id, @@ -3635,28 +3873,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatusValue * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatusValue * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatusValue * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatusValue * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatusValue * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatusValue * This, /* [in] */ REFIID riid, @@ -3665,6 +3909,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatusValue * This, /* [annotation][in] */ @@ -3684,22 +3929,27 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_source) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_source )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0000); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_value) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_value )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0001); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_hasConflict) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hasConflict )( IPolicyStatusValue * This, /* [retval][out] */ VARIANT_BOOL *has_conflict); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_conflictSource) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_conflictSource )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0002); + DECLSPEC_XFGVIRT(IPolicyStatusValue, get_conflictValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_conflictValue )( IPolicyStatusValue * This, /* [retval][out] */ BSTR *__MIDL__IPolicyStatusValue0003); @@ -3843,28 +4093,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IPolicyStatus2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IPolicyStatus2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IPolicyStatus2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IPolicyStatus2 * This, /* [in] */ REFIID riid, @@ -3873,6 +4129,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IPolicyStatus2 * This, /* [annotation][in] */ @@ -3892,70 +4149,86 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_updaterVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updaterVersion )( IPolicyStatus2 * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_lastCheckedTime) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckedTime )( IPolicyStatus2 * This, /* [retval][out] */ DATE *last_checked); + DECLSPEC_XFGVIRT(IPolicyStatus2, refreshPolicies) HRESULT ( STDMETHODCALLTYPE *refreshPolicies )( IPolicyStatus2 * This); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_lastCheckPeriodMinutes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastCheckPeriodMinutes )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_updatesSuppressedTimes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_updatesSuppressedTimes )( IPolicyStatus2 * This, /* [out] */ IPolicyStatusValue **value, VARIANT_BOOL *are_updates_suppressed); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_downloadPreferenceGroupPolicy) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_downloadPreferenceGroupPolicy )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_packageCacheSizeLimitMBytes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheSizeLimitMBytes )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_packageCacheExpirationTimeDays) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCacheExpirationTimeDays )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyMode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyMode )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyPacUrl) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyPacUrl )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_proxyServer) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_proxyServer )( IPolicyStatus2 * This, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_effectivePolicyForAppInstalls) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppInstalls )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_effectivePolicyForAppUpdates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_effectivePolicyForAppUpdates )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_targetVersionPrefix) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetVersionPrefix )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_isRollbackToTargetVersionAllowed) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRollbackToTargetVersionAllowed )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, /* [retval][out] */ IPolicyStatusValue **value); + DECLSPEC_XFGVIRT(IPolicyStatus2, get_targetChannel) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targetChannel )( IPolicyStatus2 * This, /* [in] */ BSTR app_id, @@ -4083,28 +4356,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3Web * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IGoogleUpdate3Web * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IGoogleUpdate3Web * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IGoogleUpdate3Web * This, /* [in] */ REFIID riid, @@ -4113,6 +4392,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IGoogleUpdate3Web * This, /* [annotation][in] */ @@ -4132,6 +4412,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IGoogleUpdate3Web, createAppBundleWeb) HRESULT ( STDMETHODCALLTYPE *createAppBundleWeb )( IGoogleUpdate3Web * This, /* [retval][out] */ IDispatch **app_bundle_web); @@ -4213,18 +4494,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate3WebSecurity * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate3WebSecurity * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate3WebSecurity * This); + DECLSPEC_XFGVIRT(IGoogleUpdate3WebSecurity, setOriginURL) HRESULT ( STDMETHODCALLTYPE *setOriginURL )( IGoogleUpdate3WebSecurity * This, /* [in] */ BSTR origin_url); @@ -4338,28 +4623,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppBundleWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppBundleWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppBundleWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppBundleWeb * This, /* [in] */ REFIID riid, @@ -4368,6 +4659,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppBundleWeb * This, /* [annotation][in] */ @@ -4387,6 +4679,7 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppBundleWeb, createApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createApp )( IAppBundleWeb * This, /* [in] */ BSTR app_guid, @@ -4394,60 +4687,76 @@ /* [in] */ BSTR language, /* [in] */ BSTR ap); + DECLSPEC_XFGVIRT(IAppBundleWeb, createInstalledApp) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createInstalledApp )( IAppBundleWeb * This, /* [in] */ BSTR app_id); + DECLSPEC_XFGVIRT(IAppBundleWeb, createAllInstalledApps) /* [id] */ HRESULT ( STDMETHODCALLTYPE *createAllInstalledApps )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_displayLanguage) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_displayLanguage )( IAppBundleWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppBundleWeb0000); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_displayLanguage) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_displayLanguage )( IAppBundleWeb * This, /* [in] */ BSTR __MIDL__IAppBundleWeb0001); + DECLSPEC_XFGVIRT(IAppBundleWeb, put_parentHWND) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_parentHWND )( IAppBundleWeb * This, /* [in] */ ULONG_PTR hwnd); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_length) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( IAppBundleWeb * This, /* [retval][out] */ int *index); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_appWeb) /* [propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_appWeb )( IAppBundleWeb * This, /* [in] */ int index, /* [retval][out] */ IDispatch **app_web); + DECLSPEC_XFGVIRT(IAppBundleWeb, initialize) HRESULT ( STDMETHODCALLTYPE *initialize )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, checkForUpdate) HRESULT ( STDMETHODCALLTYPE *checkForUpdate )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, download) HRESULT ( STDMETHODCALLTYPE *download )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, install) HRESULT ( STDMETHODCALLTYPE *install )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, pause) HRESULT ( STDMETHODCALLTYPE *pause )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, resume) HRESULT ( STDMETHODCALLTYPE *resume )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppBundleWeb * This); + DECLSPEC_XFGVIRT(IAppBundleWeb, downloadPackage) HRESULT ( STDMETHODCALLTYPE *downloadPackage )( IAppBundleWeb * This, /* [in] */ BSTR app_id, /* [in] */ BSTR package_name); + DECLSPEC_XFGVIRT(IAppBundleWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppBundleWeb * This, /* [retval][out] */ VARIANT *current_state); @@ -4602,28 +4911,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppWeb * This, /* [in] */ REFIID riid, @@ -4632,6 +4947,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppWeb * This, /* [annotation][in] */ @@ -4651,40 +4967,50 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppWeb, get_appId) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appId )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0000); + DECLSPEC_XFGVIRT(IAppWeb, get_currentVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **current); + DECLSPEC_XFGVIRT(IAppWeb, get_nextVersionWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextVersionWeb )( IAppWeb * This, /* [retval][out] */ IDispatch **next); + DECLSPEC_XFGVIRT(IAppWeb, get_command) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_command )( IAppWeb * This, /* [in] */ BSTR command_id, /* [retval][out] */ IDispatch **command); + DECLSPEC_XFGVIRT(IAppWeb, cancel) HRESULT ( STDMETHODCALLTYPE *cancel )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_currentState) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentState )( IAppWeb * This, /* [retval][out] */ IDispatch **current_state); + DECLSPEC_XFGVIRT(IAppWeb, launch) HRESULT ( STDMETHODCALLTYPE *launch )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, uninstall) HRESULT ( STDMETHODCALLTYPE *uninstall )( IAppWeb * This); + DECLSPEC_XFGVIRT(IAppWeb, get_serverInstallDataIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_serverInstallDataIndex )( IAppWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppWeb0001); + DECLSPEC_XFGVIRT(IAppWeb, put_serverInstallDataIndex) /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_serverInstallDataIndex )( IAppWeb * This, /* [in] */ BSTR __MIDL__IAppWeb0002); @@ -4810,28 +5136,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppCommandWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppCommandWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppCommandWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppCommandWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppCommandWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppCommandWeb * This, /* [in] */ REFIID riid, @@ -4840,6 +5172,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppCommandWeb * This, /* [annotation][in] */ @@ -4859,18 +5192,22 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_status) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_status )( IAppCommandWeb * This, /* [retval][out] */ UINT *__MIDL__IAppCommandWeb0000); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_exitCode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_exitCode )( IAppCommandWeb * This, /* [retval][out] */ DWORD *__MIDL__IAppCommandWeb0001); + DECLSPEC_XFGVIRT(IAppCommandWeb, get_output) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_output )( IAppCommandWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppCommandWeb0002); + DECLSPEC_XFGVIRT(IAppCommandWeb, execute) HRESULT ( STDMETHODCALLTYPE *execute )( IAppCommandWeb * This, /* [optional][in] */ VARIANT arg1, @@ -4976,28 +5313,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAppVersionWeb * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAppVersionWeb * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAppVersionWeb * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAppVersionWeb * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAppVersionWeb * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAppVersionWeb * This, /* [in] */ REFIID riid, @@ -5006,6 +5349,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAppVersionWeb * This, /* [annotation][in] */ @@ -5025,14 +5369,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_version) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( IAppVersionWeb * This, /* [retval][out] */ BSTR *__MIDL__IAppVersionWeb0000); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_packageCount) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageCount )( IAppVersionWeb * This, /* [retval][out] */ long *count); + DECLSPEC_XFGVIRT(IAppVersionWeb, get_packageWeb) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_packageWeb )( IAppVersionWeb * This, /* [in] */ long index, @@ -5127,28 +5474,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICoCreateAsyncStatus * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICoCreateAsyncStatus * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICoCreateAsyncStatus * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( ICoCreateAsyncStatus * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( ICoCreateAsyncStatus * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( ICoCreateAsyncStatus * This, /* [in] */ REFIID riid, @@ -5157,6 +5510,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( ICoCreateAsyncStatus * This, /* [annotation][in] */ @@ -5176,14 +5530,17 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_isDone) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDone )( ICoCreateAsyncStatus * This, /* [retval][out] */ VARIANT_BOOL *is_done); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_completionHResult) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_completionHResult )( ICoCreateAsyncStatus * This, /* [retval][out] */ LONG *hr); + DECLSPEC_XFGVIRT(ICoCreateAsyncStatus, get_createdInstance) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_createdInstance )( ICoCreateAsyncStatus * This, /* [retval][out] */ IDispatch **instance); @@ -5273,18 +5630,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICoCreateAsync * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ICoCreateAsync * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ICoCreateAsync * This); + DECLSPEC_XFGVIRT(ICoCreateAsync, createOmahaMachineServerAsync) HRESULT ( STDMETHODCALLTYPE *createOmahaMachineServerAsync )( ICoCreateAsync * This, /* [in] */ BSTR origin_url, @@ -5361,18 +5722,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IBrowserHttpRequest2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IBrowserHttpRequest2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IBrowserHttpRequest2 * This); + DECLSPEC_XFGVIRT(IBrowserHttpRequest2, Send) HRESULT ( STDMETHODCALLTYPE *Send )( IBrowserHttpRequest2 * This, /* [in] */ BSTR url, @@ -5457,27 +5822,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher * This, /* [string][in] */ const WCHAR *app_guid, @@ -5558,27 +5929,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProcessLauncher2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProcessLauncher2 * This); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdLine) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLine )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchBrowser) HRESULT ( STDMETHODCALLTYPE *LaunchBrowser )( IProcessLauncher2 * This, /* [in] */ DWORD browser_type, /* [string][in] */ const WCHAR *url); + DECLSPEC_XFGVIRT(IProcessLauncher, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *app_guid, @@ -5586,6 +5963,7 @@ /* [in] */ DWORD caller_proc_id, /* [out] */ ULONG_PTR *proc_handle); + DECLSPEC_XFGVIRT(IProcessLauncher2, LaunchCmdLineEx) HRESULT ( STDMETHODCALLTYPE *LaunchCmdLineEx )( IProcessLauncher2 * This, /* [string][in] */ const WCHAR *cmd_line, @@ -5700,33 +6078,42 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IProgressWndEvents * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoClose) HRESULT ( STDMETHODCALLTYPE *DoClose )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoPause) HRESULT ( STDMETHODCALLTYPE *DoPause )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoResume) HRESULT ( STDMETHODCALLTYPE *DoResume )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoRestartBrowsers) HRESULT ( STDMETHODCALLTYPE *DoRestartBrowsers )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoReboot) HRESULT ( STDMETHODCALLTYPE *DoReboot )( IProgressWndEvents * This); + DECLSPEC_XFGVIRT(IProgressWndEvents, DoLaunchBrowser) HRESULT ( STDMETHODCALLTYPE *DoLaunchBrowser )( IProgressWndEvents * This, /* [string][in] */ const WCHAR *url); @@ -5833,50 +6220,63 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IJobObserver * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IJobObserver * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnShow) HRESULT ( STDMETHODCALLTYPE *OnShow )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnCheckingForUpdate) HRESULT ( STDMETHODCALLTYPE *OnCheckingForUpdate )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnUpdateAvailable) HRESULT ( STDMETHODCALLTYPE *OnUpdateAvailable )( IJobObserver * This, /* [string][in] */ const WCHAR *version_string); + DECLSPEC_XFGVIRT(IJobObserver, OnWaitingToDownload) HRESULT ( STDMETHODCALLTYPE *OnWaitingToDownload )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnDownloading) HRESULT ( STDMETHODCALLTYPE *OnDownloading )( IJobObserver * This, /* [in] */ int time_remaining_ms, /* [in] */ int pos); + DECLSPEC_XFGVIRT(IJobObserver, OnWaitingToInstall) HRESULT ( STDMETHODCALLTYPE *OnWaitingToInstall )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnInstalling) HRESULT ( STDMETHODCALLTYPE *OnInstalling )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnPause) HRESULT ( STDMETHODCALLTYPE *OnPause )( IJobObserver * This); + DECLSPEC_XFGVIRT(IJobObserver, OnComplete) HRESULT ( STDMETHODCALLTYPE *OnComplete )( IJobObserver * This, /* [in] */ LegacyCompletionCodes code, /* [string][in] */ const WCHAR *completion_text); + DECLSPEC_XFGVIRT(IJobObserver, SetEventSink) HRESULT ( STDMETHODCALLTYPE *SetEventSink )( IJobObserver * This, /* [in] */ IProgressWndEvents *ui_sink); @@ -5973,18 +6373,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IJobObserver2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IJobObserver2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IJobObserver2 * This); + DECLSPEC_XFGVIRT(IJobObserver2, OnInstalling2) HRESULT ( STDMETHODCALLTYPE *OnInstalling2 )( IJobObserver2 * This, /* [in] */ int time_remaining_ms, @@ -6059,23 +6463,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdate * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdate * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdate * This); + DECLSPEC_XFGVIRT(IGoogleUpdate, CheckForUpdate) HRESULT ( STDMETHODCALLTYPE *CheckForUpdate )( IGoogleUpdate * This, /* [string][in] */ const WCHAR *guid, /* [in] */ IJobObserver *observer); + DECLSPEC_XFGVIRT(IGoogleUpdate, Update) HRESULT ( STDMETHODCALLTYPE *Update )( IGoogleUpdate * This, /* [string][in] */ const WCHAR *guid, @@ -6151,18 +6560,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IGoogleUpdateCore * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IGoogleUpdateCore * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IGoogleUpdateCore * This); + DECLSPEC_XFGVIRT(IGoogleUpdateCore, LaunchCmdElevated) HRESULT ( STDMETHODCALLTYPE *LaunchCmdElevated )( IGoogleUpdateCore * This, /* [string][in] */ const WCHAR *app_guid,
diff --git a/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c b/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c index 8b34da9..82c7b92 100644 --- a/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c +++ b/third_party/win_build_output/midl/google_update/x86/google_update_idl_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const google_update_idl_MIDL_TYPE_FORMAT_STRING google_update_idl__MIDL_TypeFormatString; extern const google_update_idl_MIDL_PROC_FORMAT_STRING google_update_idl__MIDL_ProcFormatString; @@ -6432,21 +6484,28 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -8930,7 +8989,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib.h b/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib.h index 74beaff..ef43c2b4 100644 --- a/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib.h +++ b/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/remoting/host/win/chromoting_lib.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IRdpDesktopSessionEventHandler_FWD_DEFINED__ @@ -108,21 +116,26 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRdpDesktopSessionEventHandler * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IRdpDesktopSessionEventHandler, OnRdpConnected) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpConnected )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IRdpDesktopSessionEventHandler, OnRdpClosed) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpClosed )( IRdpDesktopSessionEventHandler * This); @@ -209,18 +222,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRdpDesktopSession * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IRdpDesktopSession, Connect) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( IRdpDesktopSession * This, /* [in] */ long width, @@ -231,9 +248,11 @@ /* [in] */ DWORD port_number, /* [in] */ IRdpDesktopSessionEventHandler *event_handler); + DECLSPEC_XFGVIRT(IRdpDesktopSession, Disconnect) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IRdpDesktopSession, ChangeResolution) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ChangeResolution )( IRdpDesktopSession * This, /* [in] */ long width, @@ -241,6 +260,7 @@ /* [in] */ long dpi_x, /* [in] */ long dpi_y); + DECLSPEC_XFGVIRT(IRdpDesktopSession, InjectSas) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InjectSas )( IRdpDesktopSession * This);
diff --git a/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_i.c b/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_i.c index da95fe85..27ee5701f 100644 --- a/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_i.c +++ b/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/remoting/host/win/chromoting_lib.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_p.c b/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_p.c index a8463c0..5f24a4ac 100644 --- a/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_p.c +++ b/third_party/win_build_output/midl/remoting/host/win/arm64/chromoting_lib_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for gen/remoting/host/win/chromoting_lib.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString; extern const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString; @@ -389,15 +441,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -528,7 +584,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -590,5 +646,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h b/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h index d71b022..2ac5cf9f 100644 --- a/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h +++ b/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IRdpDesktopSessionEventHandler_FWD_DEFINED__ @@ -108,21 +116,26 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRdpDesktopSessionEventHandler * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IRdpDesktopSessionEventHandler, OnRdpConnected) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpConnected )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IRdpDesktopSessionEventHandler, OnRdpClosed) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpClosed )( IRdpDesktopSessionEventHandler * This); @@ -209,18 +222,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRdpDesktopSession * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IRdpDesktopSession, Connect) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( IRdpDesktopSession * This, /* [in] */ long width, @@ -231,9 +248,11 @@ /* [in] */ DWORD port_number, /* [in] */ IRdpDesktopSessionEventHandler *event_handler); + DECLSPEC_XFGVIRT(IRdpDesktopSession, Disconnect) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IRdpDesktopSession, ChangeResolution) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ChangeResolution )( IRdpDesktopSession * This, /* [in] */ long width, @@ -241,6 +260,7 @@ /* [in] */ long dpi_x, /* [in] */ long dpi_y); + DECLSPEC_XFGVIRT(IRdpDesktopSession, InjectSas) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InjectSas )( IRdpDesktopSession * This);
diff --git a/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c b/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c index ccb6c1e0..d4d33f9 100644 --- a/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c +++ b/third_party/win_build_output/midl/remoting/host/win/x64/chromoting_lib_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString; extern const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString; @@ -367,15 +419,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -506,7 +562,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h b/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h index 4173dae..70244bcf 100644 --- a/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h +++ b/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IRdpDesktopSessionEventHandler_FWD_DEFINED__ @@ -108,21 +116,26 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRdpDesktopSessionEventHandler * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IRdpDesktopSessionEventHandler, OnRdpConnected) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpConnected )( IRdpDesktopSessionEventHandler * This); + DECLSPEC_XFGVIRT(IRdpDesktopSessionEventHandler, OnRdpClosed) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OnRdpClosed )( IRdpDesktopSessionEventHandler * This); @@ -209,18 +222,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IRdpDesktopSession * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IRdpDesktopSession, Connect) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Connect )( IRdpDesktopSession * This, /* [in] */ long width, @@ -231,9 +248,11 @@ /* [in] */ DWORD port_number, /* [in] */ IRdpDesktopSessionEventHandler *event_handler); + DECLSPEC_XFGVIRT(IRdpDesktopSession, Disconnect) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Disconnect )( IRdpDesktopSession * This); + DECLSPEC_XFGVIRT(IRdpDesktopSession, ChangeResolution) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ChangeResolution )( IRdpDesktopSession * This, /* [in] */ long width, @@ -241,6 +260,7 @@ /* [in] */ long dpi_x, /* [in] */ long dpi_y); + DECLSPEC_XFGVIRT(IRdpDesktopSession, InjectSas) /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InjectSas )( IRdpDesktopSession * This);
diff --git a/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c b/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c index 34712abc..ef3ed2b 100644 --- a/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c +++ b/third_party/win_build_output/midl/remoting/host/win/x86/chromoting_lib_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const chromoting_lib_MIDL_TYPE_FORMAT_STRING chromoting_lib__MIDL_TypeFormatString; extern const chromoting_lib_MIDL_PROC_FORMAT_STRING chromoting_lib__MIDL_ProcFormatString; @@ -373,15 +425,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -512,7 +568,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all.h b/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all.h index 53d7321..12dd40a 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all.h +++ b/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IAccessibleRelation_FWD_DEFINED__ @@ -485,35 +493,43 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleRelation * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleRelation * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleRelation * This); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_relationType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )( IAccessibleRelation * This, /* [retval][out] */ BSTR *relationType); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_localizedRelationType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )( IAccessibleRelation * This, /* [retval][out] */ BSTR *localizedRelationType); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_nTargets) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )( IAccessibleRelation * This, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_target) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )( IAccessibleRelation * This, /* [in] */ long targetIndex, /* [retval][out] */ IUnknown **target); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_targets) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )( IAccessibleRelation * This, /* [in] */ long maxTargets, @@ -632,31 +648,38 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleAction * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleAction * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleAction * This); + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) HRESULT ( STDMETHODCALLTYPE *nActions )( IAccessibleAction * This, /* [retval][out] */ long *nActions); + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) HRESULT ( STDMETHODCALLTYPE *doAction )( IAccessibleAction * This, /* [in] */ long actionIndex); + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleAction * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( IAccessibleAction * This, /* [in] */ long actionIndex, @@ -664,11 +687,13 @@ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, /* [retval][out] */ long *nBindings); + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IAccessibleAction * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( IAccessibleAction * This, /* [in] */ long actionIndex, @@ -913,28 +938,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2 * This, /* [in] */ REFIID riid, @@ -943,6 +974,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2 * This, /* [annotation][in] */ @@ -962,78 +994,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2 * This, /* [out] */ long *pxLeft, @@ -1042,111 +1090,134 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2 * This, /* [retval][out] */ BSTR *attributes); @@ -1354,28 +1425,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_2 * This, /* [in] */ REFIID riid, @@ -1384,6 +1461,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_2 * This, /* [annotation][in] */ @@ -1403,78 +1481,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_2 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_2 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_2 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_2 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_2 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_2 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_2 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_2 * This, /* [out] */ long *pxLeft, @@ -1483,125 +1577,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_2 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_2 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_2 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_2 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_2 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_2 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_2 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_2 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_2 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_2 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_2 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_2 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_2 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_2 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_2 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_2 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_2 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_2 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_2 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_2 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_2 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_2 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_2 * This, /* [in] */ BSTR type, @@ -1828,28 +1948,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_3 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_3 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_3 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_3 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_3 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_3 * This, /* [in] */ REFIID riid, @@ -1858,6 +1984,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_3 * This, /* [annotation][in] */ @@ -1877,78 +2004,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_3 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_3 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_3 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_3 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_3 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_3 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_3 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_3 * This, /* [out] */ long *pxLeft, @@ -1957,125 +2100,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_3 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_3 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_3 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_3 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_3 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_3 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_3 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_3 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_3 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_3 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_3 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_3 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_3 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_3 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_3 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_3 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_3 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_3 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_3 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_3 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_3 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_3 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_3 * This, /* [in] */ BSTR type, @@ -2083,6 +2252,7 @@ /* [size_is][size_is][out] */ IUnknown ***targets, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessible2_3, get_selectionRanges) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectionRanges )( IAccessible2_3 * This, /* [size_is][size_is][out] */ IA2Range **ranges, @@ -2295,28 +2465,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_4 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_4 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_4 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_4 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_4 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_4 * This, /* [in] */ REFIID riid, @@ -2325,6 +2501,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_4 * This, /* [annotation][in] */ @@ -2344,78 +2521,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_4 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_4 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_4 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_4 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_4 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_4 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_4 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_4 * This, /* [out] */ long *pxLeft, @@ -2424,125 +2617,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_4 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_4 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_4 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_4 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_4 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_4 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_4 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_4 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_4 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_4 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_4 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_4 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_4 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_4 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_4 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_4 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_4 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_4 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_4 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_4 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_4 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_4 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_4 * This, /* [in] */ BSTR type, @@ -2550,11 +2769,13 @@ /* [size_is][size_is][out] */ IUnknown ***targets, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessible2_3, get_selectionRanges) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectionRanges )( IAccessible2_4 * This, /* [size_is][size_is][out] */ IA2Range **ranges, /* [retval][out] */ long *nRanges); + DECLSPEC_XFGVIRT(IAccessible2_4, setSelectionRanges) HRESULT ( STDMETHODCALLTYPE *setSelectionRanges )( IAccessible2_4 * This, /* [in] */ long nRanges, @@ -2787,27 +3008,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleComponent * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleComponent * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleComponent * This); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_locationInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )( IAccessibleComponent * This, /* [out] */ long *x, /* [retval][out] */ long *y); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_foreground) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )( IAccessibleComponent * This, /* [retval][out] */ IA2Color *foreground); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_background) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )( IAccessibleComponent * This, /* [retval][out] */ IA2Color *background); @@ -2891,30 +3118,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleValue * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleValue * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleValue * This); + DECLSPEC_XFGVIRT(IAccessibleValue, get_currentValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *currentValue); + DECLSPEC_XFGVIRT(IAccessibleValue, setCurrentValue) HRESULT ( STDMETHODCALLTYPE *setCurrentValue )( IAccessibleValue * This, /* [in] */ VARIANT value); + DECLSPEC_XFGVIRT(IAccessibleValue, get_maximumValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *maximumValue); + DECLSPEC_XFGVIRT(IAccessibleValue, get_minimumValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *minimumValue); @@ -3107,23 +3341,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleText * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleText * This, /* [in] */ long offset, @@ -3131,10 +3370,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleText * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleText * This, /* [in] */ long offset, @@ -3144,10 +3385,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleText * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleText * This, /* [in] */ long x, @@ -3155,18 +3398,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleText * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleText * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3175,6 +3421,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3183,6 +3430,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3191,30 +3439,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleText * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleText * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleText * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleText * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleText * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleText * This, /* [in] */ long startIndex, @@ -3223,10 +3477,12 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleText * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleText * This, /* [retval][out] */ IA2TextSegment *oldText); @@ -3353,23 +3609,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleText2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleText2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleText2 * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleText2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3377,10 +3638,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleText2 * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3390,10 +3653,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleText2 * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleText2 * This, /* [in] */ long x, @@ -3401,18 +3666,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleText2 * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleText2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3421,6 +3689,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3429,6 +3698,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3437,30 +3707,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleText2 * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleText2 * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleText2 * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleText2 * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleText2 * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleText2 * This, /* [in] */ long startIndex, @@ -3469,14 +3745,17 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleText2 * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleText2 * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleText2, get_attributeRange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3629,23 +3908,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTextSelectionContainer * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTextSelectionContainer * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTextSelectionContainer * This); + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, get_selections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selections )( IAccessibleTextSelectionContainer * This, /* [size_is][size_is][out] */ IA2TextSelection **selections, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, setSelections) HRESULT ( STDMETHODCALLTYPE *setSelections )( IAccessibleTextSelectionContainer * This, /* [in] */ long nSelections, @@ -3744,48 +4028,58 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleEditableText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleEditableText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleEditableText * This); + DECLSPEC_XFGVIRT(IAccessibleEditableText, copyText) HRESULT ( STDMETHODCALLTYPE *copyText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, deleteText) HRESULT ( STDMETHODCALLTYPE *deleteText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, insertText) HRESULT ( STDMETHODCALLTYPE *insertText )( IAccessibleEditableText * This, /* [in] */ long offset, /* [in] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleEditableText, cutText) HRESULT ( STDMETHODCALLTYPE *cutText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, pasteText) HRESULT ( STDMETHODCALLTYPE *pasteText )( IAccessibleEditableText * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, replaceText) HRESULT ( STDMETHODCALLTYPE *replaceText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [in] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleEditableText, setAttributes) HRESULT ( STDMETHODCALLTYPE *setAttributes )( IAccessibleEditableText * This, /* [in] */ long startOffset, @@ -3888,31 +4182,38 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHyperlink * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHyperlink * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHyperlink * This); + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) HRESULT ( STDMETHODCALLTYPE *nActions )( IAccessibleHyperlink * This, /* [retval][out] */ long *nActions); + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) HRESULT ( STDMETHODCALLTYPE *doAction )( IAccessibleHyperlink * This, /* [in] */ long actionIndex); + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, @@ -3920,34 +4221,41 @@ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, /* [retval][out] */ long *nBindings); + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *localizedName); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchor) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )( IAccessibleHyperlink * This, /* [in] */ long index, /* [retval][out] */ VARIANT *anchor); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchorTarget) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( IAccessibleHyperlink * This, /* [in] */ long index, /* [retval][out] */ VARIANT *anchorTarget); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_startIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )( IAccessibleHyperlink * This, /* [retval][out] */ long *index); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_endIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )( IAccessibleHyperlink * This, /* [retval][out] */ long *index); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_valid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )( IAccessibleHyperlink * This, /* [retval][out] */ boolean *valid); @@ -4055,23 +4363,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHypertext * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHypertext * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHypertext * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleHypertext * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4079,10 +4392,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleHypertext * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4092,10 +4407,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleHypertext * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleHypertext * This, /* [in] */ long x, @@ -4103,18 +4420,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleHypertext * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4123,6 +4443,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4131,6 +4452,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4139,30 +4461,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleHypertext * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleHypertext * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleHypertext * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleHypertext * This, /* [in] */ long startIndex, @@ -4171,23 +4499,28 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleHypertext * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleHypertext * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( IAccessibleHypertext * This, /* [retval][out] */ long *hyperlinkCount); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( IAccessibleHypertext * This, /* [in] */ long index, /* [retval][out] */ IAccessibleHyperlink **hyperlink); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( IAccessibleHypertext * This, /* [in] */ long charIndex, @@ -4322,23 +4655,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHypertext2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHypertext2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHypertext2 * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleHypertext2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4346,10 +4684,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleHypertext2 * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4359,10 +4699,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleHypertext2 * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleHypertext2 * This, /* [in] */ long x, @@ -4370,18 +4712,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleHypertext2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4390,6 +4735,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4398,6 +4744,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4406,30 +4753,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleHypertext2 * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleHypertext2 * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleHypertext2 * This, /* [in] */ long startIndex, @@ -4438,28 +4791,34 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleHypertext2 * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleHypertext2 * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( IAccessibleHypertext2 * This, /* [retval][out] */ long *hyperlinkCount); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( IAccessibleHypertext2 * This, /* [in] */ long index, /* [retval][out] */ IAccessibleHyperlink **hyperlink); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( IAccessibleHypertext2 * This, /* [in] */ long charIndex, /* [retval][out] */ long *hyperlinkIndex); + DECLSPEC_XFGVIRT(IAccessibleHypertext2, get_hyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )( IAccessibleHypertext2 * This, /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks, @@ -4710,150 +5069,181 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTable * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTable * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTable * This); + DECLSPEC_XFGVIRT(IAccessibleTable, get_accessibleAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_caption) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( IAccessibleTable * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_childIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )( IAccessibleTable * This, /* [in] */ long rowIndex, /* [in] */ long columnIndex, /* [retval][out] */ long *cellIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( IAccessibleTable * This, /* [in] */ long column, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnExtentAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ long *nColumnsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnHeader) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )( IAccessibleTable * This, /* [out] */ IAccessibleTable **accessibleTable, /* [retval][out] */ long *startingRowIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( IAccessibleTable * This, /* [in] */ long cellIndex, /* [retval][out] */ long *columnIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( IAccessibleTable * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( IAccessibleTable * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedChildren) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )( IAccessibleTable * This, /* [retval][out] */ long *cellCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( IAccessibleTable * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( IAccessibleTable * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( IAccessibleTable * This, /* [in] */ long row, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowExtentAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ long *nRowsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowHeader) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )( IAccessibleTable * This, /* [out] */ IAccessibleTable **accessibleTable, /* [retval][out] */ long *startingColumnIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( IAccessibleTable * This, /* [in] */ long cellIndex, /* [retval][out] */ long *rowIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedChildren) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )( IAccessibleTable * This, /* [in] */ long maxChildren, /* [length_is][length_is][size_is][size_is][out] */ long **children, /* [retval][out] */ long *nChildren); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( IAccessibleTable * This, /* [in] */ long maxColumns, /* [length_is][length_is][size_is][size_is][out] */ long **columns, /* [retval][out] */ long *nColumns); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( IAccessibleTable * This, /* [in] */ long maxRows, /* [length_is][length_is][size_is][size_is][out] */ long **rows, /* [retval][out] */ long *nRows); + DECLSPEC_XFGVIRT(IAccessibleTable, get_summary) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( IAccessibleTable * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isColumnSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( IAccessibleTable * This, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isRowSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( IAccessibleTable * This, /* [in] */ long row, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, selectRow) HRESULT ( STDMETHODCALLTYPE *selectRow )( IAccessibleTable * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable, selectColumn) HRESULT ( STDMETHODCALLTYPE *selectColumn )( IAccessibleTable * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable, unselectRow) HRESULT ( STDMETHODCALLTYPE *unselectRow )( IAccessibleTable * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable, unselectColumn) HRESULT ( STDMETHODCALLTYPE *unselectColumn )( IAccessibleTable * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowColumnExtentsAtIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )( IAccessibleTable * This, /* [in] */ long index, @@ -4863,6 +5253,7 @@ /* [out] */ long *columnExtents, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_modelChange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( IAccessibleTable * This, /* [retval][out] */ IA2TableModelChange *modelChange); @@ -5081,103 +5472,126 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTable2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTable2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTable2 * This); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_cellAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )( IAccessibleTable2 * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ IUnknown **cell); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_caption) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( IAccessibleTable2 * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_columnDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( IAccessibleTable2 * This, /* [in] */ long column, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( IAccessibleTable2 * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( IAccessibleTable2 * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )( IAccessibleTable2 * This, /* [retval][out] */ long *cellCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( IAccessibleTable2 * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( IAccessibleTable2 * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_rowDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( IAccessibleTable2 * This, /* [in] */ long row, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ IUnknown ***cells, /* [retval][out] */ long *nSelectedCells); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ long **selectedColumns, /* [retval][out] */ long *nColumns); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ long **selectedRows, /* [retval][out] */ long *nRows); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_summary) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( IAccessibleTable2 * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isColumnSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( IAccessibleTable2 * This, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isRowSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( IAccessibleTable2 * This, /* [in] */ long row, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable2, selectRow) HRESULT ( STDMETHODCALLTYPE *selectRow )( IAccessibleTable2 * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable2, selectColumn) HRESULT ( STDMETHODCALLTYPE *selectColumn )( IAccessibleTable2 * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectRow) HRESULT ( STDMETHODCALLTYPE *unselectRow )( IAccessibleTable2 * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectColumn) HRESULT ( STDMETHODCALLTYPE *unselectColumn )( IAccessibleTable2 * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_modelChange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( IAccessibleTable2 * This, /* [retval][out] */ IA2TableModelChange *modelChange); @@ -5333,48 +5747,59 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTableCell * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTableCell * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTableCell * This); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnExtent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )( IAccessibleTableCell * This, /* [retval][out] */ long *nColumnsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnHeaderCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )( IAccessibleTableCell * This, /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, /* [retval][out] */ long *nColumnHeaderCells); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( IAccessibleTableCell * This, /* [retval][out] */ long *columnIndex); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowExtent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )( IAccessibleTableCell * This, /* [retval][out] */ long *nRowsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowHeaderCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )( IAccessibleTableCell * This, /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, /* [retval][out] */ long *nRowHeaderCells); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( IAccessibleTableCell * This, /* [retval][out] */ long *rowIndex); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_isSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( IAccessibleTableCell * This, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowColumnExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )( IAccessibleTableCell * This, /* [out] */ long *row, @@ -5383,6 +5808,7 @@ /* [out] */ long *columnExtents, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_table) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )( IAccessibleTableCell * This, /* [retval][out] */ IUnknown **table); @@ -5484,28 +5910,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleImage * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleImage * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleImage * This); + DECLSPEC_XFGVIRT(IAccessibleImage, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleImage * This, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleImage, get_imagePosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )( IAccessibleImage * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [out] */ long *x, /* [retval][out] */ long *y); + DECLSPEC_XFGVIRT(IAccessibleImage, get_imageSize) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )( IAccessibleImage * This, /* [out] */ long *height, @@ -5638,30 +6070,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleApplication * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleApplication * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleApplication * This); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )( IAccessibleApplication * This, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )( IAccessibleApplication * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )( IAccessibleApplication * This, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )( IAccessibleApplication * This, /* [retval][out] */ BSTR *version); @@ -5739,18 +6178,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleDocument * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleDocument * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleDocument * This); + DECLSPEC_XFGVIRT(IAccessibleDocument, get_anchorTarget) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( IAccessibleDocument * This, /* [retval][out] */ IUnknown **accessible);
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_i.c b/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_i.c index 852c7245..8d05ac9 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_i.c +++ b/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_p.c b/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_p.c index 162e6972..88f5f63e 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_p.c +++ b/third_party/win_build_output/midl/third_party/iaccessible2/arm64/ia2_api_all_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/iaccessible2/ia2_api_all.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString; extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString; @@ -7029,27 +7081,37 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(HWND) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - HWND_UserSize - ,HWND_UserMarshal - ,HWND_UserUnmarshal - ,HWND_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(HWND_UserSize) + ,XFG_TRAMPOLINE_FPTR(HWND_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(HWND_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(HWND_UserFree) + + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -9072,7 +9134,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -9221,5 +9283,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h b/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h index 346b03b0a..4ca99ec 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h +++ b/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IAccessibleRelation_FWD_DEFINED__ @@ -485,35 +493,43 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleRelation * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleRelation * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleRelation * This); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_relationType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )( IAccessibleRelation * This, /* [retval][out] */ BSTR *relationType); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_localizedRelationType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )( IAccessibleRelation * This, /* [retval][out] */ BSTR *localizedRelationType); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_nTargets) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )( IAccessibleRelation * This, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_target) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )( IAccessibleRelation * This, /* [in] */ long targetIndex, /* [retval][out] */ IUnknown **target); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_targets) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )( IAccessibleRelation * This, /* [in] */ long maxTargets, @@ -632,31 +648,38 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleAction * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleAction * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleAction * This); + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) HRESULT ( STDMETHODCALLTYPE *nActions )( IAccessibleAction * This, /* [retval][out] */ long *nActions); + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) HRESULT ( STDMETHODCALLTYPE *doAction )( IAccessibleAction * This, /* [in] */ long actionIndex); + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleAction * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( IAccessibleAction * This, /* [in] */ long actionIndex, @@ -664,11 +687,13 @@ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, /* [retval][out] */ long *nBindings); + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IAccessibleAction * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( IAccessibleAction * This, /* [in] */ long actionIndex, @@ -913,28 +938,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2 * This, /* [in] */ REFIID riid, @@ -943,6 +974,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2 * This, /* [annotation][in] */ @@ -962,78 +994,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2 * This, /* [out] */ long *pxLeft, @@ -1042,111 +1090,134 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2 * This, /* [retval][out] */ BSTR *attributes); @@ -1354,28 +1425,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_2 * This, /* [in] */ REFIID riid, @@ -1384,6 +1461,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_2 * This, /* [annotation][in] */ @@ -1403,78 +1481,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_2 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_2 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_2 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_2 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_2 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_2 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_2 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_2 * This, /* [out] */ long *pxLeft, @@ -1483,125 +1577,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_2 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_2 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_2 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_2 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_2 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_2 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_2 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_2 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_2 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_2 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_2 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_2 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_2 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_2 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_2 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_2 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_2 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_2 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_2 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_2 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_2 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_2 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_2 * This, /* [in] */ BSTR type, @@ -1828,28 +1948,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_3 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_3 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_3 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_3 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_3 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_3 * This, /* [in] */ REFIID riid, @@ -1858,6 +1984,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_3 * This, /* [annotation][in] */ @@ -1877,78 +2004,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_3 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_3 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_3 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_3 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_3 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_3 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_3 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_3 * This, /* [out] */ long *pxLeft, @@ -1957,125 +2100,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_3 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_3 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_3 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_3 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_3 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_3 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_3 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_3 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_3 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_3 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_3 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_3 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_3 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_3 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_3 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_3 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_3 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_3 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_3 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_3 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_3 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_3 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_3 * This, /* [in] */ BSTR type, @@ -2083,6 +2252,7 @@ /* [size_is][size_is][out] */ IUnknown ***targets, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessible2_3, get_selectionRanges) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectionRanges )( IAccessible2_3 * This, /* [size_is][size_is][out] */ IA2Range **ranges, @@ -2295,28 +2465,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_4 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_4 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_4 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_4 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_4 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_4 * This, /* [in] */ REFIID riid, @@ -2325,6 +2501,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_4 * This, /* [annotation][in] */ @@ -2344,78 +2521,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_4 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_4 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_4 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_4 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_4 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_4 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_4 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_4 * This, /* [out] */ long *pxLeft, @@ -2424,125 +2617,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_4 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_4 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_4 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_4 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_4 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_4 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_4 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_4 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_4 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_4 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_4 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_4 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_4 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_4 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_4 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_4 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_4 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_4 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_4 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_4 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_4 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_4 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_4 * This, /* [in] */ BSTR type, @@ -2550,11 +2769,13 @@ /* [size_is][size_is][out] */ IUnknown ***targets, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessible2_3, get_selectionRanges) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectionRanges )( IAccessible2_4 * This, /* [size_is][size_is][out] */ IA2Range **ranges, /* [retval][out] */ long *nRanges); + DECLSPEC_XFGVIRT(IAccessible2_4, setSelectionRanges) HRESULT ( STDMETHODCALLTYPE *setSelectionRanges )( IAccessible2_4 * This, /* [in] */ long nRanges, @@ -2787,27 +3008,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleComponent * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleComponent * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleComponent * This); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_locationInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )( IAccessibleComponent * This, /* [out] */ long *x, /* [retval][out] */ long *y); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_foreground) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )( IAccessibleComponent * This, /* [retval][out] */ IA2Color *foreground); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_background) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )( IAccessibleComponent * This, /* [retval][out] */ IA2Color *background); @@ -2891,30 +3118,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleValue * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleValue * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleValue * This); + DECLSPEC_XFGVIRT(IAccessibleValue, get_currentValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *currentValue); + DECLSPEC_XFGVIRT(IAccessibleValue, setCurrentValue) HRESULT ( STDMETHODCALLTYPE *setCurrentValue )( IAccessibleValue * This, /* [in] */ VARIANT value); + DECLSPEC_XFGVIRT(IAccessibleValue, get_maximumValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *maximumValue); + DECLSPEC_XFGVIRT(IAccessibleValue, get_minimumValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *minimumValue); @@ -3107,23 +3341,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleText * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleText * This, /* [in] */ long offset, @@ -3131,10 +3370,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleText * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleText * This, /* [in] */ long offset, @@ -3144,10 +3385,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleText * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleText * This, /* [in] */ long x, @@ -3155,18 +3398,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleText * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleText * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3175,6 +3421,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3183,6 +3430,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3191,30 +3439,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleText * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleText * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleText * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleText * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleText * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleText * This, /* [in] */ long startIndex, @@ -3223,10 +3477,12 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleText * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleText * This, /* [retval][out] */ IA2TextSegment *oldText); @@ -3353,23 +3609,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleText2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleText2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleText2 * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleText2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3377,10 +3638,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleText2 * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3390,10 +3653,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleText2 * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleText2 * This, /* [in] */ long x, @@ -3401,18 +3666,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleText2 * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleText2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3421,6 +3689,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3429,6 +3698,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3437,30 +3707,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleText2 * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleText2 * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleText2 * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleText2 * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleText2 * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleText2 * This, /* [in] */ long startIndex, @@ -3469,14 +3745,17 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleText2 * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleText2 * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleText2, get_attributeRange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3629,23 +3908,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTextSelectionContainer * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTextSelectionContainer * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTextSelectionContainer * This); + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, get_selections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selections )( IAccessibleTextSelectionContainer * This, /* [size_is][size_is][out] */ IA2TextSelection **selections, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, setSelections) HRESULT ( STDMETHODCALLTYPE *setSelections )( IAccessibleTextSelectionContainer * This, /* [in] */ long nSelections, @@ -3744,48 +4028,58 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleEditableText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleEditableText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleEditableText * This); + DECLSPEC_XFGVIRT(IAccessibleEditableText, copyText) HRESULT ( STDMETHODCALLTYPE *copyText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, deleteText) HRESULT ( STDMETHODCALLTYPE *deleteText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, insertText) HRESULT ( STDMETHODCALLTYPE *insertText )( IAccessibleEditableText * This, /* [in] */ long offset, /* [in] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleEditableText, cutText) HRESULT ( STDMETHODCALLTYPE *cutText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, pasteText) HRESULT ( STDMETHODCALLTYPE *pasteText )( IAccessibleEditableText * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, replaceText) HRESULT ( STDMETHODCALLTYPE *replaceText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [in] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleEditableText, setAttributes) HRESULT ( STDMETHODCALLTYPE *setAttributes )( IAccessibleEditableText * This, /* [in] */ long startOffset, @@ -3888,31 +4182,38 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHyperlink * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHyperlink * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHyperlink * This); + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) HRESULT ( STDMETHODCALLTYPE *nActions )( IAccessibleHyperlink * This, /* [retval][out] */ long *nActions); + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) HRESULT ( STDMETHODCALLTYPE *doAction )( IAccessibleHyperlink * This, /* [in] */ long actionIndex); + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, @@ -3920,34 +4221,41 @@ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, /* [retval][out] */ long *nBindings); + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *localizedName); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchor) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )( IAccessibleHyperlink * This, /* [in] */ long index, /* [retval][out] */ VARIANT *anchor); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchorTarget) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( IAccessibleHyperlink * This, /* [in] */ long index, /* [retval][out] */ VARIANT *anchorTarget); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_startIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )( IAccessibleHyperlink * This, /* [retval][out] */ long *index); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_endIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )( IAccessibleHyperlink * This, /* [retval][out] */ long *index); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_valid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )( IAccessibleHyperlink * This, /* [retval][out] */ boolean *valid); @@ -4055,23 +4363,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHypertext * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHypertext * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHypertext * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleHypertext * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4079,10 +4392,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleHypertext * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4092,10 +4407,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleHypertext * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleHypertext * This, /* [in] */ long x, @@ -4103,18 +4420,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleHypertext * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4123,6 +4443,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4131,6 +4452,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4139,30 +4461,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleHypertext * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleHypertext * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleHypertext * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleHypertext * This, /* [in] */ long startIndex, @@ -4171,23 +4499,28 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleHypertext * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleHypertext * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( IAccessibleHypertext * This, /* [retval][out] */ long *hyperlinkCount); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( IAccessibleHypertext * This, /* [in] */ long index, /* [retval][out] */ IAccessibleHyperlink **hyperlink); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( IAccessibleHypertext * This, /* [in] */ long charIndex, @@ -4322,23 +4655,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHypertext2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHypertext2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHypertext2 * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleHypertext2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4346,10 +4684,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleHypertext2 * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4359,10 +4699,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleHypertext2 * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleHypertext2 * This, /* [in] */ long x, @@ -4370,18 +4712,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleHypertext2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4390,6 +4735,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4398,6 +4744,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4406,30 +4753,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleHypertext2 * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleHypertext2 * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleHypertext2 * This, /* [in] */ long startIndex, @@ -4438,28 +4791,34 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleHypertext2 * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleHypertext2 * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( IAccessibleHypertext2 * This, /* [retval][out] */ long *hyperlinkCount); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( IAccessibleHypertext2 * This, /* [in] */ long index, /* [retval][out] */ IAccessibleHyperlink **hyperlink); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( IAccessibleHypertext2 * This, /* [in] */ long charIndex, /* [retval][out] */ long *hyperlinkIndex); + DECLSPEC_XFGVIRT(IAccessibleHypertext2, get_hyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )( IAccessibleHypertext2 * This, /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks, @@ -4710,150 +5069,181 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTable * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTable * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTable * This); + DECLSPEC_XFGVIRT(IAccessibleTable, get_accessibleAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_caption) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( IAccessibleTable * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_childIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )( IAccessibleTable * This, /* [in] */ long rowIndex, /* [in] */ long columnIndex, /* [retval][out] */ long *cellIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( IAccessibleTable * This, /* [in] */ long column, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnExtentAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ long *nColumnsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnHeader) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )( IAccessibleTable * This, /* [out] */ IAccessibleTable **accessibleTable, /* [retval][out] */ long *startingRowIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( IAccessibleTable * This, /* [in] */ long cellIndex, /* [retval][out] */ long *columnIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( IAccessibleTable * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( IAccessibleTable * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedChildren) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )( IAccessibleTable * This, /* [retval][out] */ long *cellCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( IAccessibleTable * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( IAccessibleTable * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( IAccessibleTable * This, /* [in] */ long row, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowExtentAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ long *nRowsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowHeader) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )( IAccessibleTable * This, /* [out] */ IAccessibleTable **accessibleTable, /* [retval][out] */ long *startingColumnIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( IAccessibleTable * This, /* [in] */ long cellIndex, /* [retval][out] */ long *rowIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedChildren) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )( IAccessibleTable * This, /* [in] */ long maxChildren, /* [length_is][length_is][size_is][size_is][out] */ long **children, /* [retval][out] */ long *nChildren); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( IAccessibleTable * This, /* [in] */ long maxColumns, /* [length_is][length_is][size_is][size_is][out] */ long **columns, /* [retval][out] */ long *nColumns); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( IAccessibleTable * This, /* [in] */ long maxRows, /* [length_is][length_is][size_is][size_is][out] */ long **rows, /* [retval][out] */ long *nRows); + DECLSPEC_XFGVIRT(IAccessibleTable, get_summary) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( IAccessibleTable * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isColumnSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( IAccessibleTable * This, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isRowSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( IAccessibleTable * This, /* [in] */ long row, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, selectRow) HRESULT ( STDMETHODCALLTYPE *selectRow )( IAccessibleTable * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable, selectColumn) HRESULT ( STDMETHODCALLTYPE *selectColumn )( IAccessibleTable * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable, unselectRow) HRESULT ( STDMETHODCALLTYPE *unselectRow )( IAccessibleTable * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable, unselectColumn) HRESULT ( STDMETHODCALLTYPE *unselectColumn )( IAccessibleTable * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowColumnExtentsAtIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )( IAccessibleTable * This, /* [in] */ long index, @@ -4863,6 +5253,7 @@ /* [out] */ long *columnExtents, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_modelChange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( IAccessibleTable * This, /* [retval][out] */ IA2TableModelChange *modelChange); @@ -5081,103 +5472,126 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTable2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTable2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTable2 * This); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_cellAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )( IAccessibleTable2 * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ IUnknown **cell); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_caption) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( IAccessibleTable2 * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_columnDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( IAccessibleTable2 * This, /* [in] */ long column, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( IAccessibleTable2 * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( IAccessibleTable2 * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )( IAccessibleTable2 * This, /* [retval][out] */ long *cellCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( IAccessibleTable2 * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( IAccessibleTable2 * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_rowDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( IAccessibleTable2 * This, /* [in] */ long row, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ IUnknown ***cells, /* [retval][out] */ long *nSelectedCells); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ long **selectedColumns, /* [retval][out] */ long *nColumns); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ long **selectedRows, /* [retval][out] */ long *nRows); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_summary) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( IAccessibleTable2 * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isColumnSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( IAccessibleTable2 * This, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isRowSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( IAccessibleTable2 * This, /* [in] */ long row, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable2, selectRow) HRESULT ( STDMETHODCALLTYPE *selectRow )( IAccessibleTable2 * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable2, selectColumn) HRESULT ( STDMETHODCALLTYPE *selectColumn )( IAccessibleTable2 * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectRow) HRESULT ( STDMETHODCALLTYPE *unselectRow )( IAccessibleTable2 * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectColumn) HRESULT ( STDMETHODCALLTYPE *unselectColumn )( IAccessibleTable2 * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_modelChange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( IAccessibleTable2 * This, /* [retval][out] */ IA2TableModelChange *modelChange); @@ -5333,48 +5747,59 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTableCell * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTableCell * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTableCell * This); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnExtent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )( IAccessibleTableCell * This, /* [retval][out] */ long *nColumnsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnHeaderCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )( IAccessibleTableCell * This, /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, /* [retval][out] */ long *nColumnHeaderCells); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( IAccessibleTableCell * This, /* [retval][out] */ long *columnIndex); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowExtent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )( IAccessibleTableCell * This, /* [retval][out] */ long *nRowsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowHeaderCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )( IAccessibleTableCell * This, /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, /* [retval][out] */ long *nRowHeaderCells); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( IAccessibleTableCell * This, /* [retval][out] */ long *rowIndex); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_isSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( IAccessibleTableCell * This, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowColumnExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )( IAccessibleTableCell * This, /* [out] */ long *row, @@ -5383,6 +5808,7 @@ /* [out] */ long *columnExtents, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_table) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )( IAccessibleTableCell * This, /* [retval][out] */ IUnknown **table); @@ -5484,28 +5910,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleImage * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleImage * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleImage * This); + DECLSPEC_XFGVIRT(IAccessibleImage, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleImage * This, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleImage, get_imagePosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )( IAccessibleImage * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [out] */ long *x, /* [retval][out] */ long *y); + DECLSPEC_XFGVIRT(IAccessibleImage, get_imageSize) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )( IAccessibleImage * This, /* [out] */ long *height, @@ -5638,30 +6070,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleApplication * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleApplication * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleApplication * This); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )( IAccessibleApplication * This, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )( IAccessibleApplication * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )( IAccessibleApplication * This, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )( IAccessibleApplication * This, /* [retval][out] */ BSTR *version); @@ -5739,18 +6178,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleDocument * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleDocument * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleDocument * This); + DECLSPEC_XFGVIRT(IAccessibleDocument, get_anchorTarget) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( IAccessibleDocument * This, /* [retval][out] */ IUnknown **accessible);
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c b/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c index 728bf16..cd830241 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c +++ b/third_party/win_build_output/midl/third_party/iaccessible2/x64/ia2_api_all_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString; extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString; @@ -6435,27 +6487,37 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(HWND) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - HWND_UserSize - ,HWND_UserMarshal - ,HWND_UserUnmarshal - ,HWND_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(HWND_UserSize) + ,XFG_TRAMPOLINE_FPTR(HWND_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(HWND_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(HWND_UserFree) + + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -8478,7 +8540,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h b/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h index ff4a1c1..17f87b2 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h +++ b/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IAccessibleRelation_FWD_DEFINED__ @@ -485,35 +493,43 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleRelation * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleRelation * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleRelation * This); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_relationType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationType )( IAccessibleRelation * This, /* [retval][out] */ BSTR *relationType); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_localizedRelationType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedRelationType )( IAccessibleRelation * This, /* [retval][out] */ BSTR *localizedRelationType); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_nTargets) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nTargets )( IAccessibleRelation * This, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_target) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_target )( IAccessibleRelation * This, /* [in] */ long targetIndex, /* [retval][out] */ IUnknown **target); + DECLSPEC_XFGVIRT(IAccessibleRelation, get_targets) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_targets )( IAccessibleRelation * This, /* [in] */ long maxTargets, @@ -632,31 +648,38 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleAction * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleAction * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleAction * This); + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) HRESULT ( STDMETHODCALLTYPE *nActions )( IAccessibleAction * This, /* [retval][out] */ long *nActions); + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) HRESULT ( STDMETHODCALLTYPE *doAction )( IAccessibleAction * This, /* [in] */ long actionIndex); + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleAction * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( IAccessibleAction * This, /* [in] */ long actionIndex, @@ -664,11 +687,13 @@ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, /* [retval][out] */ long *nBindings); + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IAccessibleAction * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( IAccessibleAction * This, /* [in] */ long actionIndex, @@ -913,28 +938,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2 * This, /* [in] */ REFIID riid, @@ -943,6 +974,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2 * This, /* [annotation][in] */ @@ -962,78 +994,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2 * This, /* [out] */ long *pxLeft, @@ -1042,111 +1090,134 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2 * This, /* [retval][out] */ BSTR *attributes); @@ -1354,28 +1425,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_2 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_2 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_2 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_2 * This, /* [in] */ REFIID riid, @@ -1384,6 +1461,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_2 * This, /* [annotation][in] */ @@ -1403,78 +1481,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_2 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_2 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_2 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_2 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_2 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_2 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_2 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_2 * This, /* [out] */ long *pxLeft, @@ -1483,125 +1577,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_2 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_2 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_2 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_2 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_2 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_2 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_2 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_2 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_2 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_2 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_2 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_2 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_2 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_2 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_2 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_2 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_2 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_2 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_2 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_2 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_2 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_2 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_2 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_2 * This, /* [in] */ BSTR type, @@ -1828,28 +1948,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_3 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_3 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_3 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_3 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_3 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_3 * This, /* [in] */ REFIID riid, @@ -1858,6 +1984,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_3 * This, /* [annotation][in] */ @@ -1877,78 +2004,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_3 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_3 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_3 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_3 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_3 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_3 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_3 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_3 * This, /* [out] */ long *pxLeft, @@ -1957,125 +2100,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_3 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_3 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_3 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_3 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_3 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_3 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_3 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_3 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_3 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_3 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_3 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_3 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_3 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_3 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_3 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_3 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_3 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_3 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_3 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_3 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_3 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_3 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_3 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_3 * This, /* [in] */ BSTR type, @@ -2083,6 +2252,7 @@ /* [size_is][size_is][out] */ IUnknown ***targets, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessible2_3, get_selectionRanges) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectionRanges )( IAccessible2_3 * This, /* [size_is][size_is][out] */ IA2Range **ranges, @@ -2295,28 +2465,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessible2_4 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessible2_4 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessible2_4 * This); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfoCount) HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( IAccessible2_4 * This, /* [out] */ UINT *pctinfo); + DECLSPEC_XFGVIRT(IDispatch, GetTypeInfo) HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( IAccessible2_4 * This, /* [in] */ UINT iTInfo, /* [in] */ LCID lcid, /* [out] */ ITypeInfo **ppTInfo); + DECLSPEC_XFGVIRT(IDispatch, GetIDsOfNames) HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( IAccessible2_4 * This, /* [in] */ REFIID riid, @@ -2325,6 +2501,7 @@ /* [in] */ LCID lcid, /* [size_is][out] */ DISPID *rgDispId); + DECLSPEC_XFGVIRT(IDispatch, Invoke) /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( IAccessible2_4 * This, /* [annotation][in] */ @@ -2344,78 +2521,94 @@ /* [annotation][out] */ _Out_opt_ UINT *puArgErr); + DECLSPEC_XFGVIRT(IAccessible, get_accParent) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accParent )( IAccessible2_4 * This, /* [retval][out] */ IDispatch **ppdispParent); + DECLSPEC_XFGVIRT(IAccessible, get_accChildCount) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChildCount )( IAccessible2_4 * This, /* [retval][out] */ long *pcountChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accChild) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accChild )( IAccessible2_4 * This, /* [in] */ VARIANT varChild, /* [retval][out] */ IDispatch **ppdispChild); + DECLSPEC_XFGVIRT(IAccessible, get_accName) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accName )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszName); + DECLSPEC_XFGVIRT(IAccessible, get_accValue) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accValue )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszValue); + DECLSPEC_XFGVIRT(IAccessible, get_accDescription) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDescription )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDescription); + DECLSPEC_XFGVIRT(IAccessible, get_accRole) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accRole )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarRole); + DECLSPEC_XFGVIRT(IAccessible, get_accState) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accState )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ VARIANT *pvarState); + DECLSPEC_XFGVIRT(IAccessible, get_accHelp) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelp )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszHelp); + DECLSPEC_XFGVIRT(IAccessible, get_accHelpTopic) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accHelpTopic )( IAccessible2_4 * This, /* [out] */ BSTR *pszHelpFile, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ long *pidTopic); + DECLSPEC_XFGVIRT(IAccessible, get_accKeyboardShortcut) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accKeyboardShortcut )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszKeyboardShortcut); + DECLSPEC_XFGVIRT(IAccessible, get_accFocus) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accFocus )( IAccessible2_4 * This, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, get_accSelection) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accSelection )( IAccessible2_4 * This, /* [retval][out] */ VARIANT *pvarChildren); + DECLSPEC_XFGVIRT(IAccessible, get_accDefaultAction) /* [id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE *get_accDefaultAction )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [retval][out] */ BSTR *pszDefaultAction); + DECLSPEC_XFGVIRT(IAccessible, accSelect) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accSelect )( IAccessible2_4 * This, /* [in] */ long flagsSelect, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accLocation) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accLocation )( IAccessible2_4 * This, /* [out] */ long *pxLeft, @@ -2424,125 +2617,151 @@ /* [out] */ long *pcyHeight, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, accNavigate) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accNavigate )( IAccessible2_4 * This, /* [in] */ long navDir, /* [optional][in] */ VARIANT varStart, /* [retval][out] */ VARIANT *pvarEndUpAt); + DECLSPEC_XFGVIRT(IAccessible, accHitTest) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accHitTest )( IAccessible2_4 * This, /* [in] */ long xLeft, /* [in] */ long yTop, /* [retval][out] */ VARIANT *pvarChild); + DECLSPEC_XFGVIRT(IAccessible, accDoDefaultAction) /* [id][hidden] */ HRESULT ( STDMETHODCALLTYPE *accDoDefaultAction )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild); + DECLSPEC_XFGVIRT(IAccessible, put_accName) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accName )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szName); + DECLSPEC_XFGVIRT(IAccessible, put_accValue) /* [id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE *put_accValue )( IAccessible2_4 * This, /* [optional][in] */ VARIANT varChild, /* [in] */ BSTR szValue); + DECLSPEC_XFGVIRT(IAccessible2, get_nRelations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRelations )( IAccessible2_4 * This, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, get_relation) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relation )( IAccessible2_4 * This, /* [in] */ long relationIndex, /* [retval][out] */ IAccessibleRelation **relation); + DECLSPEC_XFGVIRT(IAccessible2, get_relations) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relations )( IAccessible2_4 * This, /* [in] */ long maxRelations, /* [length_is][size_is][out] */ IAccessibleRelation **relations, /* [retval][out] */ long *nRelations); + DECLSPEC_XFGVIRT(IAccessible2, role) HRESULT ( STDMETHODCALLTYPE *role )( IAccessible2_4 * This, /* [retval][out] */ long *role); + DECLSPEC_XFGVIRT(IAccessible2, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( IAccessible2_4 * This, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessible2, scrollToPoint) HRESULT ( STDMETHODCALLTYPE *scrollToPoint )( IAccessible2_4 * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessible2, get_groupPosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_groupPosition )( IAccessible2_4 * This, /* [out] */ long *groupLevel, /* [out] */ long *similarItemsInGroup, /* [retval][out] */ long *positionInGroup); + DECLSPEC_XFGVIRT(IAccessible2, get_states) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_states )( IAccessible2_4 * This, /* [retval][out] */ AccessibleStates *states); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedRole )( IAccessible2_4 * This, /* [retval][out] */ BSTR *extendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedRole) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedRole )( IAccessible2_4 * This, /* [retval][out] */ BSTR *localizedExtendedRole); + DECLSPEC_XFGVIRT(IAccessible2, get_nExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nExtendedStates )( IAccessible2_4 * This, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_extendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_extendedStates )( IAccessible2_4 * This, /* [in] */ long maxExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **extendedStates, /* [retval][out] */ long *nExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_localizedExtendedStates) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedExtendedStates )( IAccessible2_4 * This, /* [in] */ long maxLocalizedExtendedStates, /* [length_is][length_is][size_is][size_is][out] */ BSTR **localizedExtendedStates, /* [retval][out] */ long *nLocalizedExtendedStates); + DECLSPEC_XFGVIRT(IAccessible2, get_uniqueID) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_uniqueID )( IAccessible2_4 * This, /* [retval][out] */ long *uniqueID); + DECLSPEC_XFGVIRT(IAccessible2, get_windowHandle) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_windowHandle )( IAccessible2_4 * This, /* [retval][out] */ HWND *windowHandle); + DECLSPEC_XFGVIRT(IAccessible2, get_indexInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_indexInParent )( IAccessible2_4 * This, /* [retval][out] */ long *indexInParent); + DECLSPEC_XFGVIRT(IAccessible2, get_locale) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locale )( IAccessible2_4 * This, /* [retval][out] */ IA2Locale *locale); + DECLSPEC_XFGVIRT(IAccessible2, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessible2_4 * This, /* [retval][out] */ BSTR *attributes); + DECLSPEC_XFGVIRT(IAccessible2_2, get_attribute) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attribute )( IAccessible2_4 * This, /* [in] */ BSTR name, /* [retval][out] */ VARIANT *attribute); + DECLSPEC_XFGVIRT(IAccessible2_2, get_accessibleWithCaret) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleWithCaret )( IAccessible2_4 * This, /* [out] */ IUnknown **accessible, /* [retval][out] */ long *caretOffset); + DECLSPEC_XFGVIRT(IAccessible2_2, get_relationTargetsOfType) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_relationTargetsOfType )( IAccessible2_4 * This, /* [in] */ BSTR type, @@ -2550,11 +2769,13 @@ /* [size_is][size_is][out] */ IUnknown ***targets, /* [retval][out] */ long *nTargets); + DECLSPEC_XFGVIRT(IAccessible2_3, get_selectionRanges) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectionRanges )( IAccessible2_4 * This, /* [size_is][size_is][out] */ IA2Range **ranges, /* [retval][out] */ long *nRanges); + DECLSPEC_XFGVIRT(IAccessible2_4, setSelectionRanges) HRESULT ( STDMETHODCALLTYPE *setSelectionRanges )( IAccessible2_4 * This, /* [in] */ long nRanges, @@ -2787,27 +3008,33 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleComponent * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleComponent * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleComponent * This); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_locationInParent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_locationInParent )( IAccessibleComponent * This, /* [out] */ long *x, /* [retval][out] */ long *y); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_foreground) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_foreground )( IAccessibleComponent * This, /* [retval][out] */ IA2Color *foreground); + DECLSPEC_XFGVIRT(IAccessibleComponent, get_background) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_background )( IAccessibleComponent * This, /* [retval][out] */ IA2Color *background); @@ -2891,30 +3118,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleValue * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleValue * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleValue * This); + DECLSPEC_XFGVIRT(IAccessibleValue, get_currentValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *currentValue); + DECLSPEC_XFGVIRT(IAccessibleValue, setCurrentValue) HRESULT ( STDMETHODCALLTYPE *setCurrentValue )( IAccessibleValue * This, /* [in] */ VARIANT value); + DECLSPEC_XFGVIRT(IAccessibleValue, get_maximumValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_maximumValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *maximumValue); + DECLSPEC_XFGVIRT(IAccessibleValue, get_minimumValue) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_minimumValue )( IAccessibleValue * This, /* [retval][out] */ VARIANT *minimumValue); @@ -3107,23 +3341,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleText * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleText * This, /* [in] */ long offset, @@ -3131,10 +3370,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleText * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleText * This, /* [in] */ long offset, @@ -3144,10 +3385,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleText * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleText * This, /* [in] */ long x, @@ -3155,18 +3398,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleText * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleText * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3175,6 +3421,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3183,6 +3430,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleText * This, /* [in] */ long offset, @@ -3191,30 +3439,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleText * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleText * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleText * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleText * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleText * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleText * This, /* [in] */ long startIndex, @@ -3223,10 +3477,12 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleText * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleText * This, /* [retval][out] */ IA2TextSegment *oldText); @@ -3353,23 +3609,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleText2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleText2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleText2 * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleText2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3377,10 +3638,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleText2 * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3390,10 +3653,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleText2 * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleText2 * This, /* [in] */ long x, @@ -3401,18 +3666,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleText2 * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleText2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3421,6 +3689,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3429,6 +3698,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3437,30 +3707,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleText2 * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleText2 * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleText2 * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleText2 * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleText2 * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleText2 * This, /* [in] */ long startIndex, @@ -3469,14 +3745,17 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleText2 * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleText2 * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleText2, get_attributeRange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributeRange )( IAccessibleText2 * This, /* [in] */ long offset, @@ -3629,23 +3908,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTextSelectionContainer * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTextSelectionContainer * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTextSelectionContainer * This); + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, get_selections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selections )( IAccessibleTextSelectionContainer * This, /* [size_is][size_is][out] */ IA2TextSelection **selections, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleTextSelectionContainer, setSelections) HRESULT ( STDMETHODCALLTYPE *setSelections )( IAccessibleTextSelectionContainer * This, /* [in] */ long nSelections, @@ -3744,48 +4028,58 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleEditableText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleEditableText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleEditableText * This); + DECLSPEC_XFGVIRT(IAccessibleEditableText, copyText) HRESULT ( STDMETHODCALLTYPE *copyText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, deleteText) HRESULT ( STDMETHODCALLTYPE *deleteText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, insertText) HRESULT ( STDMETHODCALLTYPE *insertText )( IAccessibleEditableText * This, /* [in] */ long offset, /* [in] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleEditableText, cutText) HRESULT ( STDMETHODCALLTYPE *cutText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, pasteText) HRESULT ( STDMETHODCALLTYPE *pasteText )( IAccessibleEditableText * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleEditableText, replaceText) HRESULT ( STDMETHODCALLTYPE *replaceText )( IAccessibleEditableText * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [in] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleEditableText, setAttributes) HRESULT ( STDMETHODCALLTYPE *setAttributes )( IAccessibleEditableText * This, /* [in] */ long startOffset, @@ -3888,31 +4182,38 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHyperlink * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHyperlink * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHyperlink * This); + DECLSPEC_XFGVIRT(IAccessibleAction, nActions) HRESULT ( STDMETHODCALLTYPE *nActions )( IAccessibleHyperlink * This, /* [retval][out] */ long *nActions); + DECLSPEC_XFGVIRT(IAccessibleAction, doAction) HRESULT ( STDMETHODCALLTYPE *doAction )( IAccessibleHyperlink * This, /* [in] */ long actionIndex); + DECLSPEC_XFGVIRT(IAccessibleAction, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleAction, get_keyBinding) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_keyBinding )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, @@ -3920,34 +4221,41 @@ /* [length_is][length_is][size_is][size_is][out] */ BSTR **keyBindings, /* [retval][out] */ long *nBindings); + DECLSPEC_XFGVIRT(IAccessibleAction, get_name) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_name )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleAction, get_localizedName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_localizedName )( IAccessibleHyperlink * This, /* [in] */ long actionIndex, /* [retval][out] */ BSTR *localizedName); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchor) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchor )( IAccessibleHyperlink * This, /* [in] */ long index, /* [retval][out] */ VARIANT *anchor); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_anchorTarget) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( IAccessibleHyperlink * This, /* [in] */ long index, /* [retval][out] */ VARIANT *anchorTarget); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_startIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_startIndex )( IAccessibleHyperlink * This, /* [retval][out] */ long *index); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_endIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_endIndex )( IAccessibleHyperlink * This, /* [retval][out] */ long *index); + DECLSPEC_XFGVIRT(IAccessibleHyperlink, get_valid) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_valid )( IAccessibleHyperlink * This, /* [retval][out] */ boolean *valid); @@ -4055,23 +4363,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHypertext * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHypertext * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHypertext * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleHypertext * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4079,10 +4392,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleHypertext * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4092,10 +4407,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleHypertext * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleHypertext * This, /* [in] */ long x, @@ -4103,18 +4420,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleHypertext * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4123,6 +4443,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4131,6 +4452,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleHypertext * This, /* [in] */ long offset, @@ -4139,30 +4461,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleHypertext * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleHypertext * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleHypertext * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleHypertext * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleHypertext * This, /* [in] */ long startIndex, @@ -4171,23 +4499,28 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleHypertext * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleHypertext * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( IAccessibleHypertext * This, /* [retval][out] */ long *hyperlinkCount); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( IAccessibleHypertext * This, /* [in] */ long index, /* [retval][out] */ IAccessibleHyperlink **hyperlink); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( IAccessibleHypertext * This, /* [in] */ long charIndex, @@ -4322,23 +4655,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleHypertext2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleHypertext2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleHypertext2 * This); + DECLSPEC_XFGVIRT(IAccessibleText, addSelection) HRESULT ( STDMETHODCALLTYPE *addSelection )( IAccessibleHypertext2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_attributes) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4346,10 +4684,12 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *textAttributes); + DECLSPEC_XFGVIRT(IAccessibleText, get_caretOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caretOffset )( IAccessibleHypertext2 * This, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_characterExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_characterExtents )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4359,10 +4699,12 @@ /* [out] */ long *width, /* [retval][out] */ long *height); + DECLSPEC_XFGVIRT(IAccessibleText, get_nSelections) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelections )( IAccessibleHypertext2 * This, /* [retval][out] */ long *nSelections); + DECLSPEC_XFGVIRT(IAccessibleText, get_offsetAtPoint) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_offsetAtPoint )( IAccessibleHypertext2 * This, /* [in] */ long x, @@ -4370,18 +4712,21 @@ /* [in] */ enum IA2CoordinateType coordType, /* [retval][out] */ long *offset); + DECLSPEC_XFGVIRT(IAccessibleText, get_selection) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex, /* [out] */ long *startOffset, /* [retval][out] */ long *endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_text) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_text )( IAccessibleHypertext2 * This, /* [in] */ long startOffset, /* [in] */ long endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textBeforeOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textBeforeOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4390,6 +4735,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAfterOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAfterOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4398,6 +4744,7 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, get_textAtOffset) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_textAtOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset, @@ -4406,30 +4753,36 @@ /* [out] */ long *endOffset, /* [retval][out] */ BSTR *text); + DECLSPEC_XFGVIRT(IAccessibleText, removeSelection) HRESULT ( STDMETHODCALLTYPE *removeSelection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex); + DECLSPEC_XFGVIRT(IAccessibleText, setCaretOffset) HRESULT ( STDMETHODCALLTYPE *setCaretOffset )( IAccessibleHypertext2 * This, /* [in] */ long offset); + DECLSPEC_XFGVIRT(IAccessibleText, setSelection) HRESULT ( STDMETHODCALLTYPE *setSelection )( IAccessibleHypertext2 * This, /* [in] */ long selectionIndex, /* [in] */ long startOffset, /* [in] */ long endOffset); + DECLSPEC_XFGVIRT(IAccessibleText, get_nCharacters) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nCharacters )( IAccessibleHypertext2 * This, /* [retval][out] */ long *nCharacters); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringTo) HRESULT ( STDMETHODCALLTYPE *scrollSubstringTo )( IAccessibleHypertext2 * This, /* [in] */ long startIndex, /* [in] */ long endIndex, /* [in] */ enum IA2ScrollType scrollType); + DECLSPEC_XFGVIRT(IAccessibleText, scrollSubstringToPoint) HRESULT ( STDMETHODCALLTYPE *scrollSubstringToPoint )( IAccessibleHypertext2 * This, /* [in] */ long startIndex, @@ -4438,28 +4791,34 @@ /* [in] */ long x, /* [in] */ long y); + DECLSPEC_XFGVIRT(IAccessibleText, get_newText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_newText )( IAccessibleHypertext2 * This, /* [retval][out] */ IA2TextSegment *newText); + DECLSPEC_XFGVIRT(IAccessibleText, get_oldText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_oldText )( IAccessibleHypertext2 * This, /* [retval][out] */ IA2TextSegment *oldText); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_nHyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nHyperlinks )( IAccessibleHypertext2 * This, /* [retval][out] */ long *hyperlinkCount); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlink) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlink )( IAccessibleHypertext2 * This, /* [in] */ long index, /* [retval][out] */ IAccessibleHyperlink **hyperlink); + DECLSPEC_XFGVIRT(IAccessibleHypertext, get_hyperlinkIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinkIndex )( IAccessibleHypertext2 * This, /* [in] */ long charIndex, /* [retval][out] */ long *hyperlinkIndex); + DECLSPEC_XFGVIRT(IAccessibleHypertext2, get_hyperlinks) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_hyperlinks )( IAccessibleHypertext2 * This, /* [size_is][size_is][out] */ IAccessibleHyperlink ***hyperlinks, @@ -4710,150 +5069,181 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTable * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTable * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTable * This); + DECLSPEC_XFGVIRT(IAccessibleTable, get_accessibleAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_accessibleAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_caption) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( IAccessibleTable * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_childIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childIndex )( IAccessibleTable * This, /* [in] */ long rowIndex, /* [in] */ long columnIndex, /* [retval][out] */ long *cellIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( IAccessibleTable * This, /* [in] */ long column, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnExtentAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtentAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ long *nColumnsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnHeader) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeader )( IAccessibleTable * This, /* [out] */ IAccessibleTable **accessibleTable, /* [retval][out] */ long *startingRowIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_columnIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( IAccessibleTable * This, /* [in] */ long cellIndex, /* [retval][out] */ long *columnIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( IAccessibleTable * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( IAccessibleTable * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedChildren) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedChildren )( IAccessibleTable * This, /* [retval][out] */ long *cellCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( IAccessibleTable * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_nSelectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( IAccessibleTable * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( IAccessibleTable * This, /* [in] */ long row, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowExtentAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtentAt )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ long *nRowsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowHeader) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeader )( IAccessibleTable * This, /* [out] */ IAccessibleTable **accessibleTable, /* [retval][out] */ long *startingColumnIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( IAccessibleTable * This, /* [in] */ long cellIndex, /* [retval][out] */ long *rowIndex); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedChildren) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedChildren )( IAccessibleTable * This, /* [in] */ long maxChildren, /* [length_is][length_is][size_is][size_is][out] */ long **children, /* [retval][out] */ long *nChildren); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( IAccessibleTable * This, /* [in] */ long maxColumns, /* [length_is][length_is][size_is][size_is][out] */ long **columns, /* [retval][out] */ long *nColumns); + DECLSPEC_XFGVIRT(IAccessibleTable, get_selectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( IAccessibleTable * This, /* [in] */ long maxRows, /* [length_is][length_is][size_is][size_is][out] */ long **rows, /* [retval][out] */ long *nRows); + DECLSPEC_XFGVIRT(IAccessibleTable, get_summary) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( IAccessibleTable * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isColumnSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( IAccessibleTable * This, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isRowSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( IAccessibleTable * This, /* [in] */ long row, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_isSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( IAccessibleTable * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, selectRow) HRESULT ( STDMETHODCALLTYPE *selectRow )( IAccessibleTable * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable, selectColumn) HRESULT ( STDMETHODCALLTYPE *selectColumn )( IAccessibleTable * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable, unselectRow) HRESULT ( STDMETHODCALLTYPE *unselectRow )( IAccessibleTable * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable, unselectColumn) HRESULT ( STDMETHODCALLTYPE *unselectColumn )( IAccessibleTable * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable, get_rowColumnExtentsAtIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtentsAtIndex )( IAccessibleTable * This, /* [in] */ long index, @@ -4863,6 +5253,7 @@ /* [out] */ long *columnExtents, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable, get_modelChange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( IAccessibleTable * This, /* [retval][out] */ IA2TableModelChange *modelChange); @@ -5081,103 +5472,126 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTable2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTable2 * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTable2 * This); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_cellAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_cellAt )( IAccessibleTable2 * This, /* [in] */ long row, /* [in] */ long column, /* [retval][out] */ IUnknown **cell); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_caption) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_caption )( IAccessibleTable2 * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_columnDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnDescription )( IAccessibleTable2 * This, /* [in] */ long column, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nColumns )( IAccessibleTable2 * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nRows )( IAccessibleTable2 * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedCells )( IAccessibleTable2 * This, /* [retval][out] */ long *cellCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedColumns )( IAccessibleTable2 * This, /* [retval][out] */ long *columnCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_nSelectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nSelectedRows )( IAccessibleTable2 * This, /* [retval][out] */ long *rowCount); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_rowDescription) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowDescription )( IAccessibleTable2 * This, /* [in] */ long row, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedCells )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ IUnknown ***cells, /* [retval][out] */ long *nSelectedCells); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedColumns) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedColumns )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ long **selectedColumns, /* [retval][out] */ long *nColumns); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_selectedRows) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedRows )( IAccessibleTable2 * This, /* [size_is][size_is][out] */ long **selectedRows, /* [retval][out] */ long *nRows); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_summary) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_summary )( IAccessibleTable2 * This, /* [retval][out] */ IUnknown **accessible); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isColumnSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isColumnSelected )( IAccessibleTable2 * This, /* [in] */ long column, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_isRowSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isRowSelected )( IAccessibleTable2 * This, /* [in] */ long row, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTable2, selectRow) HRESULT ( STDMETHODCALLTYPE *selectRow )( IAccessibleTable2 * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable2, selectColumn) HRESULT ( STDMETHODCALLTYPE *selectColumn )( IAccessibleTable2 * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectRow) HRESULT ( STDMETHODCALLTYPE *unselectRow )( IAccessibleTable2 * This, /* [in] */ long row); + DECLSPEC_XFGVIRT(IAccessibleTable2, unselectColumn) HRESULT ( STDMETHODCALLTYPE *unselectColumn )( IAccessibleTable2 * This, /* [in] */ long column); + DECLSPEC_XFGVIRT(IAccessibleTable2, get_modelChange) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_modelChange )( IAccessibleTable2 * This, /* [retval][out] */ IA2TableModelChange *modelChange); @@ -5333,48 +5747,59 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleTableCell * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleTableCell * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleTableCell * This); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnExtent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnExtent )( IAccessibleTableCell * This, /* [retval][out] */ long *nColumnsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnHeaderCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnHeaderCells )( IAccessibleTableCell * This, /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, /* [retval][out] */ long *nColumnHeaderCells); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_columnIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_columnIndex )( IAccessibleTableCell * This, /* [retval][out] */ long *columnIndex); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowExtent) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowExtent )( IAccessibleTableCell * This, /* [retval][out] */ long *nRowsSpanned); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowHeaderCells) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowHeaderCells )( IAccessibleTableCell * This, /* [size_is][size_is][out] */ IUnknown ***cellAccessibles, /* [retval][out] */ long *nRowHeaderCells); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowIndex) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowIndex )( IAccessibleTableCell * This, /* [retval][out] */ long *rowIndex); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_isSelected) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_isSelected )( IAccessibleTableCell * This, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_rowColumnExtents) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_rowColumnExtents )( IAccessibleTableCell * This, /* [out] */ long *row, @@ -5383,6 +5808,7 @@ /* [out] */ long *columnExtents, /* [retval][out] */ boolean *isSelected); + DECLSPEC_XFGVIRT(IAccessibleTableCell, get_table) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_table )( IAccessibleTableCell * This, /* [retval][out] */ IUnknown **table); @@ -5484,28 +5910,34 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleImage * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleImage * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleImage * This); + DECLSPEC_XFGVIRT(IAccessibleImage, get_description) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_description )( IAccessibleImage * This, /* [retval][out] */ BSTR *description); + DECLSPEC_XFGVIRT(IAccessibleImage, get_imagePosition) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imagePosition )( IAccessibleImage * This, /* [in] */ enum IA2CoordinateType coordinateType, /* [out] */ long *x, /* [retval][out] */ long *y); + DECLSPEC_XFGVIRT(IAccessibleImage, get_imageSize) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageSize )( IAccessibleImage * This, /* [out] */ long *height, @@ -5638,30 +6070,37 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleApplication * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleApplication * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleApplication * This); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appName )( IAccessibleApplication * This, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_appVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_appVersion )( IAccessibleApplication * This, /* [retval][out] */ BSTR *version); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitName) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitName )( IAccessibleApplication * This, /* [retval][out] */ BSTR *name); + DECLSPEC_XFGVIRT(IAccessibleApplication, get_toolkitVersion) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_toolkitVersion )( IAccessibleApplication * This, /* [retval][out] */ BSTR *version); @@ -5739,18 +6178,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IAccessibleDocument * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IAccessibleDocument * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IAccessibleDocument * This); + DECLSPEC_XFGVIRT(IAccessibleDocument, get_anchorTarget) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_anchorTarget )( IAccessibleDocument * This, /* [retval][out] */ IUnknown **accessible);
diff --git a/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c b/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c index 6b4c714..62f87ebd 100644 --- a/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c +++ b/third_party/win_build_output/midl/third_party/iaccessible2/x86/ia2_api_all_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ia2_api_all_MIDL_TYPE_FORMAT_STRING ia2_api_all__MIDL_TypeFormatString; extern const ia2_api_all_MIDL_PROC_FORMAT_STRING ia2_api_all__MIDL_ProcFormatString; @@ -6384,27 +6436,37 @@ } }; +XFG_TRAMPOLINES(BSTR) +XFG_TRAMPOLINES(HWND) +XFG_TRAMPOLINES(VARIANT) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree - }, - { - HWND_UserSize - ,HWND_UserMarshal - ,HWND_UserUnmarshal - ,HWND_UserFree - }, - { - VARIANT_UserSize - ,VARIANT_UserMarshal - ,VARIANT_UserUnmarshal - ,VARIANT_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + , + { + XFG_TRAMPOLINE_FPTR(HWND_UserSize) + ,XFG_TRAMPOLINE_FPTR(HWND_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(HWND_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(HWND_UserFree) + + } + , + { + XFG_TRAMPOLINE_FPTR(VARIANT_UserSize) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(VARIANT_UserFree) + + } + }; @@ -8427,7 +8489,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument.h index eb3e337..fc9d1bd5 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMDocument_FWD_DEFINED__ @@ -177,39 +185,48 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMDocument * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMDocument * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMDocument * This); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_URL) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *url); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_title) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_title )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *title); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_mimeType) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *mimeType); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_docType) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_docType )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *docType); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_nameSpaceURIForID) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nameSpaceURIForID )( ISimpleDOMDocument * This, /* [in] */ short nameSpaceID, /* [retval][out] */ BSTR *nameSpaceURI); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, put_alternateViewMediaTypes) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_alternateViewMediaTypes )( ISimpleDOMDocument * This, /* [in] */ BSTR *commaSeparatedMediaTypes);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_i.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_i.c index ce82af66..f7009aa 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_i.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_p.c index 36c21704..ea183e55 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/arm64/ISimpleDOMDocument_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMDocument.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString; extern const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString; @@ -372,15 +424,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -467,7 +523,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -529,5 +585,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h index c77a908..1002795 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMDocument_FWD_DEFINED__ @@ -177,39 +185,48 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMDocument * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMDocument * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMDocument * This); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_URL) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *url); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_title) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_title )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *title); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_mimeType) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *mimeType); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_docType) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_docType )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *docType); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_nameSpaceURIForID) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nameSpaceURIForID )( ISimpleDOMDocument * This, /* [in] */ short nameSpaceID, /* [retval][out] */ BSTR *nameSpaceURI); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, put_alternateViewMediaTypes) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_alternateViewMediaTypes )( ISimpleDOMDocument * This, /* [in] */ BSTR *commaSeparatedMediaTypes);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c index 0dda988..9430fa0 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x64/ISimpleDOMDocument_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString; extern const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString; @@ -348,15 +400,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -443,7 +499,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h index 933bf5f1..f90ded8 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMDocument_FWD_DEFINED__ @@ -177,39 +185,48 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMDocument * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMDocument * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMDocument * This); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_URL) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_URL )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *url); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_title) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_title )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *title); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_mimeType) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_mimeType )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *mimeType); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_docType) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_docType )( ISimpleDOMDocument * This, /* [retval][out] */ BSTR *docType); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, get_nameSpaceURIForID) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nameSpaceURIForID )( ISimpleDOMDocument * This, /* [in] */ short nameSpaceID, /* [retval][out] */ BSTR *nameSpaceURI); + DECLSPEC_XFGVIRT(ISimpleDOMDocument, put_alternateViewMediaTypes) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_alternateViewMediaTypes )( ISimpleDOMDocument * This, /* [in] */ BSTR *commaSeparatedMediaTypes);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c index 051e27fc..9e652fd 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMDocument.idl/x86/ISimpleDOMDocument_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMDocument_MIDL_TYPE_FORMAT_STRING ISimpleDOMDocument__MIDL_TypeFormatString; extern const ISimpleDOMDocument_MIDL_PROC_FORMAT_STRING ISimpleDOMDocument__MIDL_ProcFormatString; @@ -353,15 +405,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -448,7 +504,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode.h index 1d794083..096a451 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMNode_FWD_DEFINED__ @@ -288,18 +296,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMNode * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMNode * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMNode * This); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_nodeInfo) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeInfo )( ISimpleDOMNode * This, /* [out] */ BSTR *nodeName, @@ -309,6 +321,7 @@ /* [out] */ unsigned int *uniqueID, /* [retval][out] */ unsigned short *nodeType); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_attributes) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( ISimpleDOMNode * This, /* [in] */ unsigned short maxAttribs, @@ -317,6 +330,7 @@ /* [length_is][size_is][out] */ BSTR *attribValues, /* [retval][out] */ unsigned short *numAttribs); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_attributesForNames) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributesForNames )( ISimpleDOMNode * This, /* [in] */ unsigned short numAttribs, @@ -324,6 +338,7 @@ /* [length_is][size_is][in] */ short *nameSpaceID, /* [length_is][size_is][retval][out] */ BSTR *attribValues); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_computedStyle) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyle )( ISimpleDOMNode * This, /* [in] */ unsigned short maxStyleProperties, @@ -332,6 +347,7 @@ /* [length_is][size_is][out] */ BSTR *styleValues, /* [retval][out] */ unsigned short *numStyleProperties); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_computedStyleForProperties) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyleForProperties )( ISimpleDOMNode * This, /* [in] */ unsigned short numStyleProperties, @@ -339,43 +355,53 @@ /* [length_is][size_is][in] */ BSTR *styleProperties, /* [length_is][size_is][retval][out] */ BSTR *styleValues); + DECLSPEC_XFGVIRT(ISimpleDOMNode, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( ISimpleDOMNode * This, /* [in] */ boolean placeTopLeft); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_parentNode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_firstChild) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_lastChild) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_previousSibling) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_nextSibling) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_childAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childAt )( ISimpleDOMNode * This, /* [in] */ unsigned int childIndex, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_innerHTML) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerHTML )( ISimpleDOMNode * This, /* [retval][out] */ BSTR *innerHTML); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_localInterface) /* [local][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localInterface )( ISimpleDOMNode * This, /* [retval][out] */ void **localInterface); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_language) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( ISimpleDOMNode * This, /* [retval][out] */ BSTR *language);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_i.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_i.c index b8eb725..f5730183 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_i.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_p.c index e14b098..0bb8b34e 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/arm64/ISimpleDOMNode_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMNode.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString; extern const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString; @@ -911,15 +963,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -1024,7 +1080,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -1086,5 +1142,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h index ff7500d..e0a33cc7 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMNode_FWD_DEFINED__ @@ -288,18 +296,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMNode * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMNode * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMNode * This); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_nodeInfo) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeInfo )( ISimpleDOMNode * This, /* [out] */ BSTR *nodeName, @@ -309,6 +321,7 @@ /* [out] */ unsigned int *uniqueID, /* [retval][out] */ unsigned short *nodeType); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_attributes) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( ISimpleDOMNode * This, /* [in] */ unsigned short maxAttribs, @@ -317,6 +330,7 @@ /* [length_is][size_is][out] */ BSTR *attribValues, /* [retval][out] */ unsigned short *numAttribs); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_attributesForNames) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributesForNames )( ISimpleDOMNode * This, /* [in] */ unsigned short numAttribs, @@ -324,6 +338,7 @@ /* [length_is][size_is][in] */ short *nameSpaceID, /* [length_is][size_is][retval][out] */ BSTR *attribValues); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_computedStyle) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyle )( ISimpleDOMNode * This, /* [in] */ unsigned short maxStyleProperties, @@ -332,6 +347,7 @@ /* [length_is][size_is][out] */ BSTR *styleValues, /* [retval][out] */ unsigned short *numStyleProperties); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_computedStyleForProperties) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyleForProperties )( ISimpleDOMNode * This, /* [in] */ unsigned short numStyleProperties, @@ -339,43 +355,53 @@ /* [length_is][size_is][in] */ BSTR *styleProperties, /* [length_is][size_is][retval][out] */ BSTR *styleValues); + DECLSPEC_XFGVIRT(ISimpleDOMNode, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( ISimpleDOMNode * This, /* [in] */ boolean placeTopLeft); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_parentNode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_firstChild) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_lastChild) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_previousSibling) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_nextSibling) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_childAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childAt )( ISimpleDOMNode * This, /* [in] */ unsigned int childIndex, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_innerHTML) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerHTML )( ISimpleDOMNode * This, /* [retval][out] */ BSTR *innerHTML); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_localInterface) /* [local][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localInterface )( ISimpleDOMNode * This, /* [retval][out] */ void **localInterface); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_language) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( ISimpleDOMNode * This, /* [retval][out] */ BSTR *language);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c index 503ba38..e91dabb 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x64/ISimpleDOMNode_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString; extern const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString; @@ -839,15 +891,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -952,7 +1008,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h index 2dca526..a530e71 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMNode_FWD_DEFINED__ @@ -288,18 +296,22 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMNode * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMNode * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMNode * This); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_nodeInfo) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_nodeInfo )( ISimpleDOMNode * This, /* [out] */ BSTR *nodeName, @@ -309,6 +321,7 @@ /* [out] */ unsigned int *uniqueID, /* [retval][out] */ unsigned short *nodeType); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_attributes) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributes )( ISimpleDOMNode * This, /* [in] */ unsigned short maxAttribs, @@ -317,6 +330,7 @@ /* [length_is][size_is][out] */ BSTR *attribValues, /* [retval][out] */ unsigned short *numAttribs); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_attributesForNames) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_attributesForNames )( ISimpleDOMNode * This, /* [in] */ unsigned short numAttribs, @@ -324,6 +338,7 @@ /* [length_is][size_is][in] */ short *nameSpaceID, /* [length_is][size_is][retval][out] */ BSTR *attribValues); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_computedStyle) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyle )( ISimpleDOMNode * This, /* [in] */ unsigned short maxStyleProperties, @@ -332,6 +347,7 @@ /* [length_is][size_is][out] */ BSTR *styleValues, /* [retval][out] */ unsigned short *numStyleProperties); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_computedStyleForProperties) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_computedStyleForProperties )( ISimpleDOMNode * This, /* [in] */ unsigned short numStyleProperties, @@ -339,43 +355,53 @@ /* [length_is][size_is][in] */ BSTR *styleProperties, /* [length_is][size_is][retval][out] */ BSTR *styleValues); + DECLSPEC_XFGVIRT(ISimpleDOMNode, scrollTo) HRESULT ( STDMETHODCALLTYPE *scrollTo )( ISimpleDOMNode * This, /* [in] */ boolean placeTopLeft); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_parentNode) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_parentNode )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_firstChild) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_firstChild )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_lastChild) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_lastChild )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_previousSibling) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_previousSibling )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_nextSibling) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_nextSibling )( ISimpleDOMNode * This, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_childAt) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_childAt )( ISimpleDOMNode * This, /* [in] */ unsigned int childIndex, /* [retval][out] */ ISimpleDOMNode **node); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_innerHTML) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_innerHTML )( ISimpleDOMNode * This, /* [retval][out] */ BSTR *innerHTML); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_localInterface) /* [local][propget] */ HRESULT ( STDMETHODCALLTYPE *get_localInterface )( ISimpleDOMNode * This, /* [retval][out] */ void **localInterface); + DECLSPEC_XFGVIRT(ISimpleDOMNode, get_language) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_language )( ISimpleDOMNode * This, /* [retval][out] */ BSTR *language);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c index b255a15..55b0701 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMNode.idl/x86/ISimpleDOMNode_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMNode_MIDL_TYPE_FORMAT_STRING ISimpleDOMNode__MIDL_TypeFormatString; extern const ISimpleDOMNode_MIDL_PROC_FORMAT_STRING ISimpleDOMNode__MIDL_ProcFormatString; @@ -836,15 +888,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -949,7 +1005,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText.h index 4060d18..487724b 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMText_FWD_DEFINED__ @@ -164,22 +172,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMText * This); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_domText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_domText )( ISimpleDOMText * This, /* [retval][out] */ BSTR *domText); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_clippedSubstringBounds) HRESULT ( STDMETHODCALLTYPE *get_clippedSubstringBounds )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, @@ -189,6 +202,7 @@ /* [out] */ int *width, /* [out] */ int *height); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_unclippedSubstringBounds) HRESULT ( STDMETHODCALLTYPE *get_unclippedSubstringBounds )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, @@ -198,11 +212,13 @@ /* [out] */ int *width, /* [out] */ int *height); + DECLSPEC_XFGVIRT(ISimpleDOMText, scrollToSubstring) HRESULT ( STDMETHODCALLTYPE *scrollToSubstring )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, /* [in] */ unsigned int endIndex); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_fontFamily) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_fontFamily )( ISimpleDOMText * This, /* [retval][out] */ BSTR *fontFamily);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_i.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_i.c index 9c037576..f1d983f4 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_i.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_p.c index 7126025..aebcea6c 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/arm64/ISimpleDOMText_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../third_party/isimpledom/ISimpleDOMText.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString; extern const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString; @@ -410,15 +462,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -503,7 +559,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -565,5 +621,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h index f2038fc..8bf096e 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMText_FWD_DEFINED__ @@ -164,22 +172,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMText * This); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_domText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_domText )( ISimpleDOMText * This, /* [retval][out] */ BSTR *domText); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_clippedSubstringBounds) HRESULT ( STDMETHODCALLTYPE *get_clippedSubstringBounds )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, @@ -189,6 +202,7 @@ /* [out] */ int *width, /* [out] */ int *height); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_unclippedSubstringBounds) HRESULT ( STDMETHODCALLTYPE *get_unclippedSubstringBounds )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, @@ -198,11 +212,13 @@ /* [out] */ int *width, /* [out] */ int *height); + DECLSPEC_XFGVIRT(ISimpleDOMText, scrollToSubstring) HRESULT ( STDMETHODCALLTYPE *scrollToSubstring )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, /* [in] */ unsigned int endIndex); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_fontFamily) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_fontFamily )( ISimpleDOMText * This, /* [retval][out] */ BSTR *fontFamily);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c index 15e050cd..4c4f68f1 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x64/ISimpleDOMText_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString; extern const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString; @@ -382,15 +434,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -475,7 +531,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h index ce9ceeb7..e22d142e8 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __ISimpleDOMText_FWD_DEFINED__ @@ -164,22 +172,27 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ISimpleDOMText * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( ISimpleDOMText * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( ISimpleDOMText * This); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_domText) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_domText )( ISimpleDOMText * This, /* [retval][out] */ BSTR *domText); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_clippedSubstringBounds) HRESULT ( STDMETHODCALLTYPE *get_clippedSubstringBounds )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, @@ -189,6 +202,7 @@ /* [out] */ int *width, /* [out] */ int *height); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_unclippedSubstringBounds) HRESULT ( STDMETHODCALLTYPE *get_unclippedSubstringBounds )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, @@ -198,11 +212,13 @@ /* [out] */ int *width, /* [out] */ int *height); + DECLSPEC_XFGVIRT(ISimpleDOMText, scrollToSubstring) HRESULT ( STDMETHODCALLTYPE *scrollToSubstring )( ISimpleDOMText * This, /* [in] */ unsigned int startIndex, /* [in] */ unsigned int endIndex); + DECLSPEC_XFGVIRT(ISimpleDOMText, get_fontFamily) /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_fontFamily )( ISimpleDOMText * This, /* [retval][out] */ BSTR *fontFamily);
diff --git a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c index 40a85ed..5097222 100644 --- a/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c +++ b/third_party/win_build_output/midl/third_party/isimpledom/ISimpleDOMText.idl/x86/ISimpleDOMText_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ISimpleDOMText_MIDL_TYPE_FORMAT_STRING ISimpleDOMText__MIDL_TypeFormatString; extern const ISimpleDOMText_MIDL_PROC_FORMAT_STRING ISimpleDOMText__MIDL_ProcFormatString; @@ -388,15 +440,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -481,7 +537,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible.h b/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible.h index a11352f..4679021 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible.h +++ b/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible.h
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../ui/accessibility/platform/ichromeaccessible.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IChromeAccessibleDelegate_FWD_DEFINED__ @@ -116,23 +124,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IChromeAccessibleDelegate * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IChromeAccessibleDelegate * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IChromeAccessibleDelegate * This); + DECLSPEC_XFGVIRT(IChromeAccessibleDelegate, put_bulkFetchResult) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_bulkFetchResult )( IChromeAccessibleDelegate * This, /* [in] */ LONG requestID, /* [in] */ BSTR resultJson); + DECLSPEC_XFGVIRT(IChromeAccessibleDelegate, put_hitTestResult) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_hitTestResult )( IChromeAccessibleDelegate * This, /* [in] */ LONG requestID, @@ -213,24 +226,29 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IChromeAccessible * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IChromeAccessible * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IChromeAccessible * This); + DECLSPEC_XFGVIRT(IChromeAccessible, get_bulkFetch) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bulkFetch )( IChromeAccessible * This, /* [in] */ BSTR inputJson, /* [in] */ LONG requestID, /* [in] */ IChromeAccessibleDelegate *delegate); + DECLSPEC_XFGVIRT(IChromeAccessible, get_hitTest) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hitTest )( IChromeAccessible * This, /* [in] */ LONG screenPhysicalPixelX,
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_i.c b/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_i.c index d0fd160..ca17f14 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_i.c +++ b/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_i.c
@@ -9,7 +9,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../ui/accessibility/platform/ichromeaccessible.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level:
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_p.c b/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_p.c index 9ed5a330..2c16caa 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_p.c +++ b/third_party/win_build_output/midl/ui/accessibility/platform/arm64/ichromeaccessible_p.c
@@ -7,7 +7,7 @@ /* at a redacted point in time */ /* Compiler settings for ../../ui/accessibility/platform/ichromeaccessible.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=ARM64 8.01.0626 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -16,7 +16,7 @@ */ /* @@MIDL_FILE_HEADING( ) */ -#if defined(_M_ARM64) +#if defined(_M_ARM64) || defined(_M_ARM64EC) #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ichromeaccessible_MIDL_TYPE_FORMAT_STRING ichromeaccessible__MIDL_TypeFormatString; extern const ichromeaccessible_MIDL_PROC_FORMAT_STRING ichromeaccessible__MIDL_ProcFormatString; @@ -367,15 +419,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -506,7 +562,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */ @@ -568,5 +624,5 @@ #endif -#endif /* defined(_M_ARM64)*/ +#endif /* defined(_M_ARM64) || defined(_M_ARM64EC)*/
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible.h b/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible.h index 907300b7..2a30325 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible.h +++ b/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IChromeAccessibleDelegate_FWD_DEFINED__ @@ -116,23 +124,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IChromeAccessibleDelegate * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IChromeAccessibleDelegate * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IChromeAccessibleDelegate * This); + DECLSPEC_XFGVIRT(IChromeAccessibleDelegate, put_bulkFetchResult) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_bulkFetchResult )( IChromeAccessibleDelegate * This, /* [in] */ LONG requestID, /* [in] */ BSTR resultJson); + DECLSPEC_XFGVIRT(IChromeAccessibleDelegate, put_hitTestResult) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_hitTestResult )( IChromeAccessibleDelegate * This, /* [in] */ LONG requestID, @@ -213,24 +226,29 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IChromeAccessible * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IChromeAccessible * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IChromeAccessible * This); + DECLSPEC_XFGVIRT(IChromeAccessible, get_bulkFetch) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bulkFetch )( IChromeAccessible * This, /* [in] */ BSTR inputJson, /* [in] */ LONG requestID, /* [in] */ IChromeAccessibleDelegate *delegate); + DECLSPEC_XFGVIRT(IChromeAccessible, get_hitTest) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hitTest )( IChromeAccessible * This, /* [in] */ LONG screenPhysicalPixelX,
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible_p.c b/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible_p.c index db78378..e2c9587 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible_p.c +++ b/third_party/win_build_output/midl/ui/accessibility/platform/x64/ichromeaccessible_p.c
@@ -74,6 +74,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ichromeaccessible_MIDL_TYPE_FORMAT_STRING ichromeaccessible__MIDL_TypeFormatString; extern const ichromeaccessible_MIDL_PROC_FORMAT_STRING ichromeaccessible__MIDL_ProcFormatString; @@ -347,15 +399,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -486,7 +542,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible.h b/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible.h index 5886709..bdd55af 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible.h +++ b/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible.h
@@ -43,6 +43,14 @@ #pragma once #endif +#ifndef DECLSPEC_XFGVIRT +#if _CONTROL_FLOW_GUARD_XFG +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + /* Forward Declarations */ #ifndef __IChromeAccessibleDelegate_FWD_DEFINED__ @@ -116,23 +124,28 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IChromeAccessibleDelegate * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IChromeAccessibleDelegate * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IChromeAccessibleDelegate * This); + DECLSPEC_XFGVIRT(IChromeAccessibleDelegate, put_bulkFetchResult) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_bulkFetchResult )( IChromeAccessibleDelegate * This, /* [in] */ LONG requestID, /* [in] */ BSTR resultJson); + DECLSPEC_XFGVIRT(IChromeAccessibleDelegate, put_hitTestResult) /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_hitTestResult )( IChromeAccessibleDelegate * This, /* [in] */ LONG requestID, @@ -213,24 +226,29 @@ { BEGIN_INTERFACE + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) HRESULT ( STDMETHODCALLTYPE *QueryInterface )( IChromeAccessible * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); + DECLSPEC_XFGVIRT(IUnknown, AddRef) ULONG ( STDMETHODCALLTYPE *AddRef )( IChromeAccessible * This); + DECLSPEC_XFGVIRT(IUnknown, Release) ULONG ( STDMETHODCALLTYPE *Release )( IChromeAccessible * This); + DECLSPEC_XFGVIRT(IChromeAccessible, get_bulkFetch) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_bulkFetch )( IChromeAccessible * This, /* [in] */ BSTR inputJson, /* [in] */ LONG requestID, /* [in] */ IChromeAccessibleDelegate *delegate); + DECLSPEC_XFGVIRT(IChromeAccessible, get_hitTest) /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_hitTest )( IChromeAccessible * This, /* [in] */ LONG screenPhysicalPixelX,
diff --git a/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible_p.c b/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible_p.c index 659c1b0..d4d7115 100644 --- a/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible_p.c +++ b/third_party/win_build_output/midl/ui/accessibility/platform/x86/ichromeaccessible_p.c
@@ -77,6 +77,58 @@ static const RPC_SYNTAX_IDENTIFIER _RpcTransferSyntax = {{0x8A885D04,0x1CEB,0x11C9,{0x9F,0xE8,0x08,0x00,0x2B,0x10,0x48,0x60}},{2,0}}; +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define XFG_TRAMPOLINES(ObjectType)\ +static unsigned long ObjectType ## _UserSize_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree(pFlags, pObject);\ +} +#define XFG_TRAMPOLINES64(ObjectType)\ +static unsigned long ObjectType ## _UserSize64_XFG(unsigned long * pFlags, unsigned long Offset, void * pObject)\ +{\ +return ObjectType ## _UserSize64(pFlags, Offset, pObject);\ +}\ +static unsigned char * ObjectType ## _UserMarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserMarshal64(pFlags, pBuffer, pObject);\ +}\ +static unsigned char * ObjectType ## _UserUnmarshal64_XFG(unsigned long * pFlags, unsigned char * pBuffer, void * pObject)\ +{\ +return ObjectType ## _UserUnmarshal64(pFlags, pBuffer, pObject);\ +}\ +static void ObjectType ## _UserFree64_XFG(unsigned long * pFlags, void * pObject)\ +{\ +ObjectType ## _UserFree64(pFlags, pObject);\ +} +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType)\ +static void* ObjectType ## _bind_XFG(HandleType pObject)\ +{\ +return ObjectType ## _bind((ObjectType) pObject);\ +}\ +static void ObjectType ## _unbind_XFG(HandleType pObject, handle_t ServerHandle)\ +{\ +ObjectType ## _unbind((ObjectType) pObject, ServerHandle);\ +} +#define XFG_TRAMPOLINE_FPTR(Function) Function ## _XFG +#else +#define XFG_TRAMPOLINES(ObjectType) +#define XFG_TRAMPOLINES64(ObjectType) +#define XFG_BIND_TRAMPOLINES(HandleType, ObjectType) +#define XFG_TRAMPOLINE_FPTR(Function) Function +#endif + extern const ichromeaccessible_MIDL_TYPE_FORMAT_STRING ichromeaccessible__MIDL_TypeFormatString; extern const ichromeaccessible_MIDL_PROC_FORMAT_STRING ichromeaccessible__MIDL_ProcFormatString; @@ -354,15 +406,19 @@ } }; +XFG_TRAMPOLINES(BSTR) + static const USER_MARSHAL_ROUTINE_QUADRUPLE UserMarshalRoutines[ WIRE_MARSHAL_TABLE_SIZE ] = { { - BSTR_UserSize - ,BSTR_UserMarshal - ,BSTR_UserUnmarshal - ,BSTR_UserFree + XFG_TRAMPOLINE_FPTR(BSTR_UserSize) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserMarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserUnmarshal) + ,XFG_TRAMPOLINE_FPTR(BSTR_UserFree) + } + }; @@ -493,7 +549,7 @@ 1, /* -error bounds_check flag */ 0x50002, /* Ndr library version */ 0, - 0x801026e, /* MIDL Version 8.1.622 */ + 0x8010272, /* MIDL Version 8.1.626 */ 0, UserMarshalRoutines, 0, /* notify & notify_flag routine table */
diff --git a/third_party/zlib/inflate.c b/third_party/zlib/inflate.c index 68902e8..89b20b9 100644 --- a/third_party/zlib/inflate.c +++ b/third_party/zlib/inflate.c
@@ -1435,6 +1435,8 @@ /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; + if (state->mode == HEAD) + state->wrap = 0; /* never processed header, so assume raw */ in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; @@ -1533,7 +1535,7 @@ if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; - if (check) + if (check && state->wrap) state->wrap |= 4; else state->wrap &= ~4;
diff --git a/tools/attribution_reporting/simulator_main.cc b/tools/attribution_reporting/simulator_main.cc index 748b46c..d915691e 100644 --- a/tools/attribution_reporting/simulator_main.cc +++ b/tools/attribution_reporting/simulator_main.cc
@@ -43,6 +43,7 @@ "randomized_response_rate_navigation"; constexpr char kSwitchRandomizedResponseRateEvent[] = "randomized_response_rate_event"; +constexpr char kSwitchRemoveAssembledReport[] = "remove_assembled_report"; constexpr const char* kAllowedSwitches[] = { kSwitchHelp, @@ -72,6 +73,7 @@ [--input_mode=<input_mode>] [--remove_report_ids] [--report_time_format=<format>] + [--remove_assembled_report] attribution_reporting_simulator is a command-line tool that simulates the Attribution Reporting API for for sources and triggers specified in an input @@ -160,6 +162,13 @@ `iso8601`: Report times are ISO 8601 strings, e.g. "2022-01-28T22:19:33.000Z". + --remove_assembled_report - Optional. If present, removes the `shared_info`, + `aggregation_service_payloads` and + `source_registration_time` fields from + aggregatable report bodies, as they are randomly + generated. Use this switch to make the tool's + output more deterministic. + --version - Outputs the tool version and exits. Input JSON format: @@ -275,7 +284,7 @@ { // List of zero or more reports. - "reports": [ + "event_level_reports": [ { // Time at which the report would have been sent in seconds since the // UNIX epoch. @@ -529,6 +538,8 @@ .delay_mode = delay_mode, .remove_report_ids = command_line.HasSwitch(kSwitchRemoveReportIds), .report_time_format = report_time_format, + .remove_assembled_report = + command_line.HasSwitch(kSwitchRemoveAssembledReport), }); // Required for setting up the test environment.
diff --git a/tools/clang/scripts/build.py b/tools/clang/scripts/build.py index 11e5926..306a4a7 100755 --- a/tools/clang/scripts/build.py +++ b/tools/clang/scripts/build.py
@@ -650,6 +650,8 @@ '-DLLVM_ENABLE_CURL=OFF', # Build libclang.a as well as libclang.so '-DLIBCLANG_BUILD_STATIC=ON', + # TODO(https://crbug.com/1312610): remove once we figure out what's going on + '-DLLVM_DISABLE_ASSEMBLY_FILES=ON', ] if args.gcc_toolchain:
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 90060e95..cfd915b9 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -50044,6 +50044,7 @@ <enum name="LanguagePackMojoFeatureId"> <int value="0" label="Unknown and unsupported feature"/> <int value="1" label="Handwriting recognition"/> + <int value="2" label="Text-To-Speech (TTS)"/> </enum> <enum name="LanguagePackMojoPackState"> @@ -51778,6 +51779,7 @@ <int value="-2140007754" label="HomepageSettingsUIConversion:disabled"/> <int value="-2139379065" label="StoragePressureUI:enabled"/> <int value="-2138883960" label="AutofillRejectCompanyBirthyearName:disabled"/> + <int value="-2138128164" label="FeedbackOnContinueSectionRemove:enabled"/> <int value="-2136173537" label="QuickAnswers:enabled"/> <int value="-2134886830" label="ChromeWideEchoCancellation:disabled"/> <int value="-2134333982" label="ShowArcFilesApp:enabled"/> @@ -54242,6 +54244,7 @@ <int value="-508346329" label="TerminalSystemAppLegacySettings:disabled"/> <int value="-508250572" label="ServiceWorkerLongRunningMessage:disabled"/> <int value="-508143738" label="disable-accelerated-fixed-root-background"/> + <int value="-507719964" label="FeedbackOnContinueSectionRemove:disabled"/> <int value="-507066244" label="AndroidDarkSearch:enabled"/> <int value="-506706655" label="respect-autocomplete-off-autofill"/> <int value="-506366023" label="VizHitTest:enabled"/> @@ -79164,6 +79167,7 @@ <enum name="SafeBrowsingPageLoadTokenClearReason"> <int value="0" label="Safe Browsing state changed"/> + <int value="1" label="Cookies deleted"/> </enum> <enum name="SafeBrowsingParseV4HashResult">
diff --git a/tools/metrics/histograms/metadata/ash/histograms.xml b/tools/metrics/histograms/metadata/ash/histograms.xml index f8bc5819..1571688 100644 --- a/tools/metrics/histograms/metadata/ash/histograms.xml +++ b/tools/metrics/histograms/metadata/ash/histograms.xml
@@ -1172,6 +1172,30 @@ </summary> </histogram> +<histogram name="Ash.Desks.AnimationLatency.DeskActivation" units="ms" + expires_after="2023-04-23"> + <owner>amusbach@chromium.org</owner> + <owner>afakhry@chromium.org</owner> + <owner>tclaiborne@chromium.org</owner> + <summary> + Emitted when the virtual desks activation animation begins, to report the + latency of starting this animation. In a continuous desk animation, this + metric is recorded only for the first desk switch. + </summary> +</histogram> + +<histogram name="Ash.Desks.AnimationLatency.DeskRemoval" units="ms" + expires_after="2023-04-23"> + <owner>amusbach@chromium.org</owner> + <owner>afakhry@chromium.org</owner> + <owner>tclaiborne@chromium.org</owner> + <summary> + Emitted when the virtual desks removal animation begins, to report the + latency of starting this animation. In a continuous desk animation, this + metric is recorded only for the first desk switch. + </summary> +</histogram> + <histogram name="Ash.Desks.AnimationSmoothness.DeskActivation" units="%" expires_after="2023-04-23"> <owner>afakhry@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/blink/histograms.xml b/tools/metrics/histograms/metadata/blink/histograms.xml index f842e1a..4528376 100644 --- a/tools/metrics/histograms/metadata/blink/histograms.xml +++ b/tools/metrics/histograms/metadata/blink/histograms.xml
@@ -1525,6 +1525,10 @@ <histogram name="Blink.Input.GestureScrollBeginAsCursorControl" enum="BooleanSuccess" expires_after="M91"> + <obsolete> + Cursor Control feature is launched, the metrics is no longer needed. Removed + in March 2022. + </obsolete> <owner>ctzsm@chromium.org</owner> <owner>changwan@chromium.org</owner> <owner>input-dev@chromium.org</owner>
diff --git a/tools/metrics/histograms/metadata/network/histograms.xml b/tools/metrics/histograms/metadata/network/histograms.xml index 212c76b..5110d07 100644 --- a/tools/metrics/histograms/metadata/network/histograms.xml +++ b/tools/metrics/histograms/metadata/network/histograms.xml
@@ -1119,18 +1119,6 @@ </summary> </histogram> -<histogram name="Network.Shill.Cellular.Disconnect" - enum="NetworkDisconnectType" expires_after="2022-12-30"> - <owner>ejcaruso@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network usage metric that tracks whether the cellular network was - disconnected due to an error or was explicitly disconnected by the user. - - NOTE: This metric was expired from 2021-12-01 to 2022-04-01. - </summary> -</histogram> - <histogram name="Network.Shill.Cellular.Drop" enum="NetworkCellularTechnology" expires_after="2022-12-30"> <owner>ejcaruso@chromium.org</owner> @@ -1346,14 +1334,15 @@ </histogram> <histogram name="Network.Shill.ConnectionDiagnosticsIssue" - enum="ConnectionDiagnosticsIssue" expires_after="2022-04-10"> - <owner>stevenjb@chromium.org</owner> + enum="ConnectionDiagnosticsIssue" expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> - Chrome OS network metric that tracks the connectivity issue diagnosed by the - ConnectionDiagnostics class in Shill. This metric is logged each time a - ConnectionDiagnostics object completes its diagnostics actions and reports - the results to its caller. + Chrome OS network metric that tracks Layer 3 connectivity issues diagnosed + by the ConnectionDiagnostics class in Shill ran on a connected network after + Shill portal detection has failed to validate the network. This metric is + logged each time a ConnectionDiagnostics object completes its diagnostics + actions and reports the results to its caller. </summary> </histogram> @@ -1423,42 +1412,9 @@ </summary> </histogram> -<histogram name="Network.Shill.DHCPClientMTUValue" units="bytes" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network diagnostic metric sampling the MTU value proposed by the - DHCP server. A sample is emitted each time the DHCP client completes - negotiation with a server. - </summary> -</histogram> - -<histogram name="Network.Shill.DHCPClientStatus" enum="NetworkDhcpClientStatus" - expires_after="2022-04-24"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network diagnostic metric sampling the current state of the DHCP - client. A sample is emitted each time the DHCP client state changes. - </summary> -</histogram> - -<histogram name="Network.Shill.DHCPOptionFailureDetected" - enum="NetworkTechnology" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network metric that tracks the number of DHCP option failures - encountered by Shill for each network technology. This indicates that Shill - is using minimal DHCP options due to suspected MTU issues on the return path - from the DHCP server back to the client. - </summary> -</histogram> - <histogram name="Network.Shill.Ethernet.DevicePresenceStatus" - enum="BooleanPresent" expires_after="2022-04-24"> - <owner>stevenjb@chromium.org</owner> + enum="BooleanPresent" expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network metric that tracks the presence of an Ethernet device in @@ -1466,114 +1422,60 @@ </summary> </histogram> -<histogram name="Network.Shill.Ethernet.Disconnect" - enum="NetworkDisconnectType" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network usage metric that tracks whether the Ethernet network was - disconnected due to an error or was explicitly disconnected by the user. - </summary> -</histogram> - <histogram name="Network.Shill.Ethernet.ExpiredLeaseLengthSeconds2" - units="seconds" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + units="seconds" expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network performance metric that tracks the length of a lease for an Ethernet network at the time it expired without the DHCP client being able to renew it. - </summary> -</histogram> -<histogram name="Network.Shill.Ethernet.LinkMonitorBroadcastErrorsAtFailure" - units="units" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network performance metric that tracks the number of LinkMonitor - broadcast errors that were accrued on an Ethernet network at the time that - the link was declaired to be failed. - </summary> -</histogram> - -<histogram name="Network.Shill.Ethernet.LinkMonitorFailure" - enum="LinkMonitorFailureType" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS metric that signals the type of failure the LinkMonitor - encountered which caused it to stop monitoring an Ethernet network. - </summary> -</histogram> - -<histogram name="Network.Shill.Ethernet.LinkMonitorResponseTimeSample" - units="ms" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network performance metric that tracks the number of milliseconds - between an ARP request and a received reply on an Ethernet network. - </summary> -</histogram> - -<histogram name="Network.Shill.Ethernet.LinkMonitorSecondsToFailure" - units="seconds" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network performance metric that tracks the number of seconds from - the start of the LinkMonitor until failure on an Ethernet network. - </summary> -</histogram> - -<histogram name="Network.Shill.Ethernet.LinkMonitorUnicastErrorsAtFailure" - units="units" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> - <owner>cros-network-metrics@google.com</owner> - <summary> - Chrome OS network performance metric that tracks the number of LinkMonitor - unicast errors that were accrued on an Ethernet network at the time that the - link was declaired to be failed. + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.PortalAttempts" units="units" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network diagnostic metric sampling the number of portal detection attempts per pass for an Ethernet network. This includes failure, timeout and successful attempts. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.PortalAttemptsToOnline" units="units" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network diagnostic metric sampling the total number of portal detection attempts performed for an Ethernet network between the Connected and Online state. This includes failure, timeout and successful attempts. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.PortalResult" - enum="NetworkPortalResult" expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + enum="NetworkPortalResult" expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network diagnostic metric sampling the result of portal detections for an Ethernet network. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.ServiceErrors" - enum="NetworkServiceError" expires_after="2023-01-01"> - <owner>kuabhs@chromium.org</owner> + enum="NetworkServiceError" expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS connection manager service errors for ethernet interface. NOTE: @@ -1582,59 +1484,69 @@ </histogram> <histogram name="Network.Shill.Ethernet.TimeOnline" units="seconds" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network metric sampling the time spent using Ethernet to transport data. These data are mostly useful when summed and compared to TimeOnline for other network technologies (e.g. WiFi vs Cellular). + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.TimeToConfig" units="ms" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network performance metric sampling the time to join a wired Ethernet network and configure Layer 3 state (typically acquire a DHCP lease). + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.TimeToInitialize" units="ms" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network performance metric sampling the time to initialize an Ethernet device. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.TimeToOnline" units="ms" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network performance metric sampling the time to determine that an Ethernet network is online after configuring Layer 3 state. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.TimeToPortal" units="ms" - expires_after="2021-12-01"> - <owner>stevenjb@chromium.org</owner> + expires_after="2022-12-31"> + <owner>hugobenichi@google.com</owner> <owner>cros-network-metrics@google.com</owner> <summary> Chrome OS network performance metric sampling the time to determine that an Ethernet network is in a captive portal after configuring Layer 3 state. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram> <histogram name="Network.Shill.Ethernet.TimeToRedirectFound" units="ms" - expires_after="2021-12-01"> + expires_after="2022-12-31"> <owner>matthewmwang@chromium.org</owner> <owner>hugobenichi@chromium.org</owner> <owner>cros-network-metrics@google.com</owner> @@ -1642,6 +1554,8 @@ Chrome OS network performance metric sampling the time to determine that an Ethernet network is in a captive portal with a valid redirect URL after configuring Layer 3 state. + + NOTE: This metric was expired from 2021-12-01 to 2022-04-01. </summary> </histogram>
diff --git a/tools/metrics/histograms/metadata/quota/OWNERS b/tools/metrics/histograms/metadata/quota/OWNERS index 37216910..52c4597 100644 --- a/tools/metrics/histograms/metadata/quota/OWNERS +++ b/tools/metrics/histograms/metadata/quota/OWNERS
@@ -7,4 +7,4 @@ ayui@chromium.org # Secondary -pwnall@chromium.org +
diff --git a/tools/metrics/histograms/metadata/service/OWNERS b/tools/metrics/histograms/metadata/service/OWNERS index 7f7f93d..695cb2f 100644 --- a/tools/metrics/histograms/metadata/service/OWNERS +++ b/tools/metrics/histograms/metadata/service/OWNERS
@@ -7,4 +7,4 @@ wanderview@chromium.org # Secondary -pwnall@chromium.org +ayui@chromium.org
diff --git a/tools/metrics/histograms/metadata/storage/OWNERS b/tools/metrics/histograms/metadata/storage/OWNERS index c97d2132..51e70147 100644 --- a/tools/metrics/histograms/metadata/storage/OWNERS +++ b/tools/metrics/histograms/metadata/storage/OWNERS
@@ -7,5 +7,4 @@ ayui@chromium.org # Secondary -pwnall@chromium.org wanderview@chromium.org
diff --git a/tools/visual_debugger/OWNERS b/tools/visual_debugger/OWNERS new file mode 100644 index 0000000..4a8dc1f --- /dev/null +++ b/tools/visual_debugger/OWNERS
@@ -0,0 +1,3 @@ +petermcneeley@google.com +sadrul@chromium.org +
diff --git a/tools/visual_debugger/README.md b/tools/visual_debugger/README.md new file mode 100644 index 0000000..3a2e4463 --- /dev/null +++ b/tools/visual_debugger/README.md
@@ -0,0 +1,48 @@ + +# //tools/visual_debugger/ + +## Chromium Visual Debugger App + +The Chromium Visual Debugger App is the viewer for the debug stream from a (remote) chromium instance. +For information on the chromium integration of debug capture see: `//components/viz/service/debugger/README.md` + +### Launching +To use the Visual Debugger, Chromium must be launch with remote debugging support. + +` --remote-debugging-port=7777` + +To launch the Debugging App simply run the python server from this directory. The default port is 7777. + +` ./server.py [portnumber]` + +This command will also launch the debugger as a Web App in a separate instance of the default browser. + +In official builds (`is_official_build=true` gn arg) the debugger is disabled by default but can be force enabled locally with the flag below in **args.gn**. + +` use_viz_debugger=true` + +### Usage + +Once the Debugging App launches one should be able to simply click **Connect** to establish a remote debugging stream to the live instance of chromium. + +The in App filters `frame.root.quad` and `frame.root.damage` have been provided by default to give immediate feedback and intuition. The debug macros corresponding to these filters, and all others, can be found directly in the source. + +[Default Filter Debug Macros](https://source.chromium.org/chromium/chromium/src/+/main:components/viz/service/display/display.cc;l=640;drc=5af781c328bdc091651764b5d9ea0f6d77828fed?q=display.cc&ss=chromium%2Fchromium%2Fsrc) + +### Operation +The debugging macros feed information into the VizDebugger static instance. At the end of each frame this cached information is fed upstream and eventually reaches the remote client. + + + + +### Performance +The Debugger App preforms nominally in most basic debugging situations. +Excessive debug logging, specifically text, can make the App feel sluggish. +It is recommended to delete unused filters and disable filters to improve App performance. + + +### Security + +For official builds all visual debug macros are compiled out and the VizDebugger is reduced to a selective few method stubs. This means there are no security concerns for this system with exception of mutable side effects in the creation of input variables to the logging macros. These concerns for mutable side effects already exist for any other code; so no special attention is warranted for these macros. + +For non-official (debug) builds the dev-tools remote debugging port command line argument must be provided for the viz debugger to collect and stream data. Thus the security of this new system is identical to that of the remote dev tools for the case of debugging builds.
diff --git a/tools/visual_debugger/app.html b/tools/visual_debugger/app.html new file mode 100644 index 0000000..84e6f1d --- /dev/null +++ b/tools/visual_debugger/app.html
@@ -0,0 +1,428 @@ +<!DOCTYPE html> +<html lang="en"> +<!-- + Copyright 2022 The Chromium Authors. All rights reserved. + Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. + --> + +<head> + <style> + #scrubberframe::-webkit-slider-thumb { + appearance: none; + width: 20px; + height: 20px; + background-color: grey; + } + + #scrubberframe::slider-thumb { + appearance: none; + width: 20px; + height: 20px; + background-color: grey; + } + + #scrubberframe { + margin-top: 10px; + flex-grow: 1; + appearance: none; + background-color: #f0f0f0; + width: 100%; + } + + #scrubberdraw::-webkit-slider-thumb { + appearance: none; + width: 15px; + height: 20px; + background-color: grey; + } + + #scrubberdraw::slider-thumb { + appearance: none; + width: 20px; + height: 20px; + background-color: grey; + } + + #scrubberdraw { + margin-top: 10px; + flex-grow: 1; + appearance: none; + background-color: #f0f0f0; + width: 100%; + } + + #url { + font-family: monospace; + font-size: smaller; + } + + #controls {} + + #controls>#buttons { + display: flex; + } + + #log { + min-height: 100px; + max-height: 100%; + font-family: monospace; + overflow: auto; + } + + #connectionPanel, + #saveload { + display: inline-block; + } + + #connectionPanel, + #saveload, + #topPanel { + padding-bottom: 10px; + } + + #topPanel { + display: flex; + } + + #settings { + display: flex; + flex-direction: column; + font-size: small; + } + + .panelSection { + margin-right: 20px; + } + + .panelSection:last-child { + margin-right: 0px; + flex-grow: 1; + } + + #connection-status { + color: limegreen; + font-size: large; + padding-right: 5px; + } + + #connection-status.disconnected { + color: orange; + } + </style> + <link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet"> + <script src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script> + <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons+Outlined"> + + <link rel='stylesheet' href='style.css'> + <script src='filter.js'></script> + <script src='filter-ui.js'></script> + <script src='frame.js'></script> + <script src='connection.js'></script> +</head> + +<div id='connectionPanel'> + <div class='sectionTitle'> + <font class='disconnected' id='connection-status'>●</font>Connection + </div> + <div class='section'> + <div title="Expert usage only. Autoconnect should provide the dev tools websocket through /json/version discovery."> + <input id='url' name='url' size=60 type="text" + placeholder='WebSocket URL or leave empty for autoconnect...'></input> + </div> + <button class="mdc-button mdc-button--outline" id='connect'> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Connect</span> + </button> + <button class="mdc-button mdc-button--outline" id='disconnect' disabled=true> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Disconnect</span> + </button> + </div> +</div> + +<div id='saveload'> + <div class='sectionTitle'>Save/Load ...</div> + <div class='section'> + <button id='demo' class="mdc-button mdc-button--outline"> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Load demo data</span> + </button> + <button id='savedata' class="mdc-button mdc-button--outline" + title="Serializes current session stream to json file."> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Save to disk</span> + </button> + <button id='loaddata' class="mdc-button mdc-button--outline" + title="Deserializes json file of previous session and imports these frames into the App."> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Load from disk</span> + </button> + </div> +</div> + +<div id='logsPanel'> + <div class='panelSection'> + <div class='sectionTitle'> + Logs + <!--input size=40 placeholder='Comma separated filter ...'>(TODO)</input--> + </div> + <div class='section'> + <div id='log'></div> + </div> + </div> +</div> + +<div class='panelSection'> + <div class='sectionTitle' + title="Filter debug data stream. Filter operations occur in a left to right order with first match being applied."> + <i class="material-icons-outlined">filter_list</i> Filters + </div> + <div class='section'> + <div id='filters' class="mdc-chip-set mdc-chip-set--filter" role="grid" + title="Filter debug data stream. Filter operations occur in a left to right order with first match being applied."> + </div> + <button class="mdc-button mdc-button--outline" id='createfilter'> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label"><i class="material-icons-outlined">add_box</i> Add new filter</span> + </button> + </div> +</div> + +<div class='panelSection'> + <div class='sectionTitle'>Viewer Controls</div> + <div class='section' id='controls'> + <div id='buttons'> + <button class="mdc-button mdc-button--outline" id='prev'> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label"><i class="material-icons-outlined">skip_previous</i> Previous frame</span> + </button> + <button class="mdc-button mdc-button--outline" id='play'> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label"><i class="material-icons-outlined">play_circle_outline</i> Play</span> + </button> + <button class="mdc-button mdc-button--outline" id='pause'> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label"><i class="material-icons-outlined">pause_circle_outline</i> Pause</span> + </button> + <button class="mdc-button mdc-button--outline" id='next'> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Next frame <i class="material-icons-outlined">skip_next</i></span> + </button> + + </div> + <div class='panelSection'> + <div class='sectionTitle'>Frame Selection</div> + <input type='range' min='0' max='0' value='0' id='scrubberframe'></input> + </div> + <div class='panelSection'> + <div class='sectionTitle'>Draw Selection</div> + <input type='range' min='0' max='0' value='0' id='scrubberdraw'></input> + </div> + </div> +</div> + +<div> + <div class='sectionTitle'> + Viewer + </div> + <div style='float: right' class='sectionTitle'> + Scale + <select id="viewerscale"> + <option>100%</option> + <option>50%</option> + <option>200%</option> + </select> + </div> + <div class='section'> + <canvas id='canvas'></canvas> + </div> + + <div class='modalContainer'></div> +</div> + +<div id='importtracing'> + <div class='sectionTitle'>Tracing (Prototype)...</div> + <div class='section'> + <button id='importtracebutton' class="mdc-button mdc-button--outline" + title="Import tracing data (json) into visual debugger app."> + <div class="mdc-button__ripple"></div> + <span class="mdc-button__label">Import Trace</span> + </button> + </div> +</div> + +<script> + function processIncomingFrame(json) { + if (!json) return; + + new DrawFrame(json); + Player.instance.onNewFrame(); + } + + async function testAnimate() { + const f = await fetch('demo.json'); + const text = await f.text(); + const json = JSON.parse(text); + for (const frame of json) { + processIncomingFrame(frame); + } + } + + async function saveDemoDataToDisk() { + const text = JSON.stringify(DrawFrame.instances.map(d => d.toJSON())); + const blob = new Blob([text], { type: 'text/plain' }); + const link = document.createElement('a'); + link.download = 'cvd-stream.json'; + link.href = window.URL.createObjectURL(blob); + link.click(); + } + + window.onload = function () { + + Connection.initialize(); + + const addFilterButton = document.querySelector('#createfilter'); + addFilterButton.addEventListener('click', () => { + showCreateFilterPopup(addFilterButton); + }); + + const container = document.querySelector('.modalContainer'); + container.addEventListener('click', (event) => { + if (event.target == container) + hideModal(); + }); + + const demo = document.querySelector('#demo'); + demo.addEventListener('click', testAnimate); + + const savedata = document.querySelector('#savedata'); + savedata.addEventListener('click', saveDemoDataToDisk); + + const loaddata = document.querySelector('#loaddata'); + loaddata.addEventListener('click', () => { + const f = document.createElement('input'); + f.type = 'file'; + f.addEventListener('change', () => { + const file = new FileReader(f.files[0]); + file.addEventListener('load', () => { + const json = JSON.parse(file.result); + for (const frame of json) { + processIncomingFrame(frame); + } + }); + file.readAsText(f.files[0]); + }); + f.click(); + }); + + const importtracedata = document.querySelector('#importtracebutton'); + importtracedata.addEventListener('click', () => { + const f = document.createElement('input'); + f.type = 'file'; + f.addEventListener('change', () => { + const file = new FileReader(f.files[0]); + file.addEventListener('load', () => { + const json = JSON.parse(file.result); + const traceEvents = json.traceEvents; + + let src_frame = { + "drawcalls": [], "frame": "80631", "logs": [], "new_sources": [{ "anno": "frame.root.display_rect", "file": "x", "func": "x", "index": 0, "line": 0 }], "text": [], "time": "0", + "version": 1, "windowx": 2400, "windowy": 1600 + }; + processIncomingFrame(src_frame); + curr_frame = "0"; + curr_draws = []; + for (const event of traceEvents) { + if (event.name == "VisualDebuggerSync") { + single_frame = { "drawcalls": [], "frame": "80631", "logs": [], "new_sources": [], "text": [], "time": "0", "version": 1, "windowx": 2400, "windowy": 1600 }; + single_frame.drawcalls = curr_draws; + curr_frame = event.args.last_presented_trace_id; + single_frame.frame = curr_frame; + processIncomingFrame(single_frame); + curr_draws = [] + } + if (event.name == "VizTestRootRect") { + let single_call = { "drawindex": curr_draws.length, "option": { "alpha": 0, "color": "#ff0000" }, "pos": [832, 670], "size": [112, 112], "source_index": 0 }; + single_call.pos[0] = parseInt(event.args.args.pos_x); + single_call.pos[1] = parseInt(event.args.args.pos_y); + single_call.size[0] = parseInt(event.args.args.size_x); + single_call.size[1] = parseInt(event.args.args.size_y); + curr_draws.push(single_call); + } + } + }); + file.readAsText(f.files[0]); + }); + f.click(); + }); + + setUpPlayer(); + FilterUIDefault.initialize(); + } + + function setUpPlayer() { + // First, set up the viewer. + const canvas = document.querySelector('#canvas'); + const logContainer = document.querySelector('#log'); + const viewer = new Viewer(canvas, logContainer); + // Now create the player for the viewer. + const player = new Player(viewer, (frame) => { + // TODO: This feels like a hack. Find a cleaner way to update the scrubbers? + const scrubberFrame = document.querySelector('#scrubberframe'); + scrubberFrame.max = DrawFrame.count(); + scrubberFrame.value = player.currentFrameIndex; + + const scrubberDraw = document.querySelector('#scrubberdraw'); + scrubberDraw.max = frame.submissionCount() - 1; + scrubberDraw.value = frame.submissionFreezeIndex(); + }); + + document.querySelector('#pause').addEventListener('click', () => { + player.pause(); + }); + + document.querySelector('#play').addEventListener('click', () => { + player.play(); + }); + + document.querySelector('#prev').addEventListener('click', () => { + player.rewind(); + }); + + document.querySelector('#next').addEventListener('click', () => { + player.forward(); + }); + + const scrubberFrame = document.querySelector('#scrubberframe'); + scrubberFrame.addEventListener('input', () => { + player.freezeFrame(scrubberFrame.value); + }); + + const scrubberDraw = document.querySelector('#scrubberdraw'); + scrubberDraw.addEventListener('input', () => { + player.freezeFrame(scrubberFrame.value, scrubberDraw.value); + }); + const viewerScale = document.querySelector("#viewerscale"); + viewerScale.addEventListener('input', () => { + player.setViewerScale(viewerScale.value); + }); + } + + + function showModal(element) { + const container = document.querySelector('.modalContainer'); + container.appendChild(element); + container.style.display = 'block'; + element.focus(); + } + + function hideModal() { + const container = document.querySelector('.modalContainer'); + container.style.display = 'none'; + container.textContent = ''; + } + +</script> + +</html> \ No newline at end of file
diff --git a/tools/visual_debugger/connection.js b/tools/visual_debugger/connection.js new file mode 100644 index 0000000..100b295 --- /dev/null +++ b/tools/visual_debugger/connection.js
@@ -0,0 +1,106 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +/** + * @fileoverview Keeps the websocket connection and allows sending messages + */ + +const Connection = { + + initialize() { + const connect = document.querySelector('#connect'); + connect.addEventListener('click', () => { + var url = document.querySelector('#url').value; + if (!url) { + var http_requester = new XMLHttpRequest(); + // Sync request to avoid complexity but is poor form. + try { + http_requester.open("GET", location.origin + '/discover.html', false); + http_requester.send(null); + } + catch (req_error) { + window.alert("Visual Debugger local server is inaccessible. \n" + + "Please launch the server with command:\n " + + " ./launchdebugger {app_port} {remote_port} \n" + + " remote_port defaults to 7777 \n" + + " corresponds to the chromium command line\n " + + " --remote-debugging-port=7777 \n" + + " app_port defaults to 8777. Currently app_port=" + location.port); + console.log(req_error); + return; + } + + if (http_requester.status != 200) { + window.alert("Server reports error=" + http_requester.responseText); + return; + } + else { + var discover_json = JSON.parse(http_requester.responseText); + // console.log(discover_json); + url = discover_json.webSocketDebuggerUrl; + } + } + + // Create WebSocket connection. + this.socket = new WebSocket(url); + const status = document.querySelector('#connection-status'); + const connect = document.querySelector('#connect'); + const disconnect = document.querySelector('#disconnect'); + + this.next_command_id = 1; + + // Connection opened + this.socket.addEventListener('open', (event) => { + const message = {}; + message['method'] = 'VisualDebugger.startStream'; + this.sendMessage(message) + + connect.setAttribute('disabled', true); + disconnect.removeAttribute('disabled'); + status.classList.remove('disconnected'); + }); + + // Listen for messages + this.socket.addEventListener('message', (event) => { + const json = JSON.parse(event.data); + // We now use devtool events so our frame data is packed + // into the args of the method. + if (json.method === "VisualDebugger.frameResponse") { + const frame_json = json.params.frameData; + if (frame_json.connection == "ok") { + Filter.sendStreamFilters(); + } else if (frame_json.frame && frame_json.drawcalls) { + processIncomingFrame(frame_json); + } + } + else if (json.error) { + window.alert("Visual Debugger could not start stream.\n " + + "please add 'use_viz_debugger=true' to args.gn"); + console.log(json.error); + this.socket.close(); + } + }); + + this.socket.addEventListener('close', () => { + connect.removeAttribute('disabled'); + disconnect.setAttribute('disabled', true); + status.classList.add('disconnected'); + }); + + disconnect.addEventListener('click', () => { + const message = {}; + message['method'] = 'VisualDebugger.stopStream'; + this.sendMessage(message) + this.socket.close(); + }); + }); + }, + + sendMessage(message) { + if (!this.socket) + return; + message['id'] = this.next_command_id++; + this.socket.send(JSON.stringify(message)); + } +};
diff --git a/tools/visual_debugger/demo.json b/tools/visual_debugger/demo.json new file mode 100644 index 0000000..eb6b230 --- /dev/null +++ b/tools/visual_debugger/demo.json
@@ -0,0 +1 @@ +[{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95587","logs":[],"new_sources":[{"anno":"aggregator.surface.log","file":"../../components/viz/service/display/surface_aggregator.cc","func":"DebugLogSurface","index":0,"line":2572},{"anno":"frame.root.numquads","file":"../../components/viz/service/display/display.cc","func":"DebugDrawFrame","index":1,"line":646},{"anno":"frame.root.damage","file":"../../components/viz/service/display/display.cc","func":"DebugDrawFrame","index":2,"line":648},{"anno":"frame.root.material","file":"../../components/viz/service/display/display.cc","func":"DebugDrawFrame","index":3,"line":656},{"anno":"frame.root.display_rect","file":"../../components/viz/service/display/display.cc","func":"DebugDrawFrame","index":4,"line":658},{"anno":"frame.root.quad","file":"../../components/viz/service/display/display.cc","func":"DebugDrawFrame","index":5,"line":659},{"anno":"overlay.incoming.damage","file":"../../components/viz/service/display/overlay_processor_using_strategy.cc","func":"ProcessForOverlays","index":6,"line":140},{"anno":"overlay.surface.damage","file":"../../components/viz/service/display/overlay_processor_using_strategy.cc","func":"ProcessForOverlays","index":7,"line":142},{"anno":"overlay.outgoing.damage","file":"../../components/viz/service/display/overlay_processor_using_strategy.cc","func":"ProcessForOverlays","index":8,"line":174},{"anno":"candidate.surface.id","file":"../../components/viz/service/display/overlay_processor_using_strategy.cc","func":"SortProposedOverlayCandidatesPrioritized","index":9,"line":453},{"anno":"candidate.mean.damage","file":"../../components/viz/service/display/overlay_processor_using_strategy.cc","func":"SortProposedOverlayCandidatesPrioritized","index":10,"line":460},{"anno":"overlay.selected.rect","file":"../../components/viz/service/display/overlay_processor_using_strategy.cc","func":"ProcessForOverlays","index":11,"line":172}],"text":[],"time":"259989421069","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[],"frame":"95588","logs":[],"new_sources":[],"text":[],"time":"259989427080","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[],"frame":"95589","logs":[],"new_sources":[],"text":[],"time":"259989454578","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[],"frame":"95590","logs":[],"new_sources":[],"text":[],"time":"259989465910","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95591","logs":[],"new_sources":[],"text":[],"time":"259989487884","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,494],"size":[6,4],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95592","logs":[],"new_sources":[],"text":[],"time":"259989501726","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95593","logs":[],"new_sources":[],"text":[],"time":"259989521006","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,494],"size":[6,4],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95594","logs":[],"new_sources":[],"text":[],"time":"259989540637","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95595","logs":[],"new_sources":[],"text":[],"time":"259989554335","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,254],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95596","logs":[],"new_sources":[],"text":[],"time":"259989577021","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,254],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95597","logs":[],"new_sources":[],"text":[],"time":"259989612347","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,254],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95598","logs":[],"new_sources":[],"text":[],"time":"259989648419","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,254],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95599","logs":[],"new_sources":[],"text":[],"time":"259989684467","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95600","logs":[],"new_sources":[],"text":[],"time":"259989720974","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,494],"size":[6,4],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95601","logs":[],"new_sources":[],"text":[],"time":"259989727152","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95602","logs":[],"new_sources":[],"text":[],"time":"259989754359","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,464],"size":[87,34],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95603","logs":[],"new_sources":[],"text":[],"time":"259989769102","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95604","logs":[],"new_sources":[],"text":[],"time":"259989787716","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,494],"size":[6,4],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95605","logs":[],"new_sources":[],"text":[],"time":"259989807387","version":1,"windowx":1920,"windowy":1080},{"drawcalls":[{"drawindex":0,"option":{"alpha":0,"color":"#ff0000"},"pos":[1070,244],"size":[450,253],"source_index":2},{"drawindex":1,"option":{"alpha":0,"color":"#000000"},"pos":[974.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":2,"option":{"alpha":0,"color":"#000000"},"pos":[904.0001220703125,1026],"size":[48,52],"source_index":5},{"drawindex":3,"option":{"alpha":0,"color":"#000000"},"pos":[915.0000610351562,1064],"size":[25,17],"source_index":5},{"drawindex":4,"option":{"alpha":0,"color":"#000000"},"pos":[1862,1030],"size":[37,40],"source_index":5},{"drawindex":5,"option":{"alpha":0,"color":"#000000"},"pos":[1839,1030],"size":[15,40],"source_index":5},{"drawindex":6,"option":{"alpha":0,"color":"#000000"},"pos":[1809,1030],"size":[23,40],"source_index":5},{"drawindex":7,"option":{"alpha":0,"color":"#000000"},"pos":[1794,1020],"size":[126,60],"source_index":5},{"drawindex":8,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1030],"size":[45,40],"source_index":5},{"drawindex":9,"option":{"alpha":0,"color":"#000000"},"pos":[1739,1020],"size":[55,60],"source_index":5},{"drawindex":10,"option":{"alpha":0,"color":"#000000"},"pos":[1687,1030],"size":[40,40],"source_index":5},{"drawindex":11,"option":{"alpha":0,"color":"#000000"},"pos":[1684,1020],"size":[55,60],"source_index":5},{"drawindex":12,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":13,"option":{"alpha":0,"color":"#000000"},"pos":[8,1028],"size":[45,45],"source_index":5},{"drawindex":14,"option":{"alpha":0,"color":"#000000"},"pos":[0,1020],"size":[1920,135],"source_index":5},{"drawindex":15,"option":{"alpha":0,"color":"#000000"},"pos":[-1,994],"size":[410,28],"source_index":5},{"drawindex":16,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":17,"option":{"alpha":0,"color":"#000000"},"pos":[1767,160],"size":[133,71],"source_index":5},{"drawindex":18,"option":{"alpha":0,"color":"#000000"},"pos":[300,160],"size":[991,70],"source_index":5},{"drawindex":19,"option":{"alpha":0,"color":"#000000"},"pos":[1291,160],"size":[609,70],"source_index":5},{"drawindex":20,"option":{"alpha":0,"color":"#000000"},"pos":[300,159],"size":[1600,73],"source_index":5},{"drawindex":21,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,70],"source_index":5},{"drawindex":22,"option":{"alpha":0,"color":"#000000"},"pos":[1067,244],"size":[453,260],"source_index":5},{"drawindex":23,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,253],"source_index":5},{"drawindex":24,"option":{"alpha":0,"color":"#000000"},"pos":[1070,244],"size":[450,254],"source_index":5},{"drawindex":25,"option":{"alpha":0,"color":"#000000"},"pos":[1055,229],"size":[480,535],"source_index":5},{"drawindex":26,"option":{"alpha":0,"color":"#000000"},"pos":[0,555],"size":[280,50],"source_index":5},{"drawindex":27,"option":{"alpha":0,"color":"#000000"},"pos":[0,505],"size":[280,50],"source_index":5},{"drawindex":28,"option":{"alpha":0,"color":"#000000"},"pos":[0,455],"size":[280,50],"source_index":5},{"drawindex":29,"option":{"alpha":0,"color":"#000000"},"pos":[0,159],"size":[280,862],"source_index":5},{"drawindex":30,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[300,809],"source_index":5},{"drawindex":31,"option":{"alpha":0,"color":"#000000"},"pos":[0,898],"size":[300,123],"source_index":5},{"drawindex":32,"option":{"alpha":0,"color":"#000000"},"pos":[1560,941],"size":[191,22],"source_index":5},{"drawindex":33,"option":{"alpha":0,"color":"#000000"},"pos":[1170,941],"size":[109,22],"source_index":5},{"drawindex":34,"option":{"alpha":0,"color":"#000000"},"pos":[1105,655],"size":[780,336],"source_index":5},{"drawindex":35,"option":{"alpha":0,"color":"#000000"},"pos":[780,941],"size":[97,22],"source_index":5},{"drawindex":36,"option":{"alpha":0,"color":"#000000"},"pos":[715,655],"size":[780,336],"source_index":5},{"drawindex":37,"option":{"alpha":0,"color":"#000000"},"pos":[390,941],"size":[150,22],"source_index":5},{"drawindex":38,"option":{"alpha":0,"color":"#000000"},"pos":[325,655],"size":[780,336],"source_index":5},{"drawindex":39,"option":{"alpha":0,"color":"#000000"},"pos":[1560,540],"size":[197,22],"source_index":5},{"drawindex":40,"option":{"alpha":0,"color":"#000000"},"pos":[1170,540],"size":[152,22],"source_index":5},{"drawindex":41,"option":{"alpha":0,"color":"#000000"},"pos":[1105,254],"size":[780,361],"source_index":5},{"drawindex":42,"option":{"alpha":0,"color":"#000000"},"pos":[780,540],"size":[79,22],"source_index":5},{"drawindex":43,"option":{"alpha":0,"color":"#000000"},"pos":[715,254],"size":[780,361],"source_index":5},{"drawindex":44,"option":{"alpha":0,"color":"#000000"},"pos":[0,89],"size":[1900,255],"source_index":5},{"drawindex":45,"option":{"alpha":0,"color":"#000000"},"pos":[0,344],"size":[1900,254],"source_index":5},{"drawindex":46,"option":{"alpha":0,"color":"#000000"},"pos":[0,598],"size":[1900,254],"source_index":5},{"drawindex":47,"option":{"alpha":0,"color":"#000000"},"pos":[0,852],"size":[1900,169],"source_index":5},{"drawindex":48,"option":{"alpha":0,"color":"#000000"},"pos":[1900,89],"size":[20,932],"source_index":5},{"drawindex":49,"option":{"alpha":0,"color":"#000000"},"pos":[1795,46],"size":[35,35],"source_index":5},{"drawindex":50,"option":{"alpha":0,"color":"#000000"},"pos":[135,46],"size":[1650,37],"source_index":5},{"drawindex":51,"option":{"alpha":0,"color":"#000000"},"pos":[0,0],"size":[1920,287],"source_index":5}],"frame":"95606","logs":[],"new_sources":[],"text":[],"time":"259989820882","version":1,"windowx":1920,"windowy":1080}] \ No newline at end of file
diff --git a/tools/visual_debugger/filter-ui.js b/tools/visual_debugger/filter-ui.js new file mode 100644 index 0000000..cd6b15f3 --- /dev/null +++ b/tools/visual_debugger/filter-ui.js
@@ -0,0 +1,356 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +const MDCMenu = mdc.menu.MDCMenu; +const MDCMenuFoundation = mdc.menu.MDCMenuFoundation; + +class FilterUI extends HTMLElement { + constructor() { + super(); + } + + connectedCallback() { + this.innerHTML = ` +<style> +.row { + display: flex; + justify-content: space-between; + padding-bottom: 10px; +} + +#filter-container { + max-width: 400px; + min-width: 350px; + font-family: Roboto; + font-size: 10pt; + background-color: white; + padding: 10px; +} + +#saveFilter { + margin: 20px 10px; + margin-right: 0px; +} + +</style> +<div id='filter-container'> + <div class='sectionTitle' id='filter-ui-title'>Add Filter</div> + <div class='section'> + <div class='row'> + <div class='label' title='Filter annotation to match. + For example frame.root.damage' >Annotation </div> + <div class='input'> + <input placeholder='Substring to match' id='annotation' size=40> + <!-- TODO: A fancy drop-down here would be nice. --> + </div> + </div> + <div class='row'> + <div class='label'>File name</div> + <div class='input'> + <input placeholder='Substring to match (usually empty!)' + id='filename' size=40> + <!-- TODO: A fancy drop-down here would be nice. --> + </div> + </div> + <div class='row'> + <div class='label'>Function</div> + <div class='input'> + <input placeholder='Substring to match (usually empty!)' + id='functionname' size=40> + <!-- TODO: A fancy drop-down here would be nice. --> + </div> + </div> + + + </div> + <div style='display: flex'> + <div style='flex-grow: 1'> + <div class='sectionTitle'>Action</div> + <div class='section'> + <div> + <form id="actionform"> + <input type='radio' name='dowhat' value='drawfilter'/>Override + <input type='color' name='drawcolor' value='#000000'/> + opacity <input type='range' name='fillalpha' min='0' max='100' + step='10' value='50' list='alphastep'/> + <datalist id='alphastep'> + <option>0</option><option>10</option><option>20</option> + <option>30</option><option>40</option><option>50</option> + <option>60</option> <option>70</option><option>80</option> + <option>90</option><option>100</option> + </datalist> + <input checked type='radio' name='dowhat' value='drawcaller'/> + Draw with caller color and opacity + <br/> + <input type='radio' name='dowhat' value='skip' + title='Used as a discard filter'/>Do not draw + <br/> + </form> + </div> + </div> + </div> + <button id='saveFilter'>Save</button> + </div> +<div> +`; + this.setUpButtons_(); + } + + setUpButtons_() { + const button = this.querySelector('#saveFilter'); + button.addEventListener('click', () => { + let input = this.querySelector('#filename'); + const filename = input.value || undefined; + input = this.querySelector('#functionname'); + const func = input.value || undefined; + input = this.querySelector('#annotation'); + const anno = input.value || undefined; + + input = this.querySelector('input[name="dowhat"]:checked'); + const action = { skipDraw: input.value === 'skip' }; + if (input.value === 'drawfilter') { + action.color = this.querySelector('input[name="drawcolor"]').value; + action.alpha = this.querySelector('input[name="fillalpha"]').value; + } + + this.dispatchEvent(new CustomEvent('saveFilter', { + detail: { selector: { filename, func, anno }, action } + })); + }); + } +}; + +window.customElements.define('filter-ui', FilterUI); + +function createFilterChip(filter) { + const chip = document.createElement('div'); + chip.className = "mdc-chip"; + chip.setAttribute("role", "row"); + chip.style.margin = '5px'; + chip.style.borderRadius = '0px'; + if (filter.shouldDraw) { + chip.style.border = filter.drawColor ? + `2px solid ${filter.drawColor}` : `1px solid black`; + if (filter.fillAlpha > 0) { + var alpha = Math.min(.6, parseFloat(filter.fillAlpha) / 100); + var rgba = filter.drawColor + DrawCall.alphaFloatToHex(alpha); + chip.style.backgroundColor = rgba; + chip.style.fontWeight = 'bold'; + } + else { + chip.style.backgroundColor = `white`; + } + } + else { + chip.style.border = `1px dashed grey`; + chip.style.backgroundColor = `white`; + } + + chip.innerHTML = + ` + <input checked type="checkbox"/> + <span role="gridcell"> + <span class="mdc-chip__text" id="filterstring"></span> + </span> + <span role="gridcell"> + <div class="mdc-menu-surface--anchor"> + <i class="material-icons-outlined mdc-chip__icon mdc-chip__icon--trailing" + tabindex="-1" role="button" id="filtermenu">more_vert</i> + <div id="filterchipmenu" class="mdc-menu mdc-menu-surface"> + <ul class="mdc-list" role="menu" aria-hidden="true" + aria-orientation="vertical" tabindex="-1"> + <li class="mdc-list-item" role="menuitem" + id="filter-moveprev" onclick="movePrev(this)"> + <span class="mdc-list-item__ripple"></span> + <span class="mdc-list-item__text"> + <i class="material-icons-outlined">arrow_back_ios</i>Move Previous + </span> + </li> + <li class="mdc-list-item" role="menuitem" + id="filter-movenext" onclick="moveNext(this)"> + <span class="mdc-list-item__ripple"></span> + <span class="mdc-list-item__text"> + <i class="material-icons-outlined">arrow_forward_ios</i> Move Next + </span> + </li> + <li class="mdc-list-item" + role="menuitem" id="filter-edit" onclick="showEditFilterPopup(this)"> + <span class="mdc-list-item__ripple"></span> + <span class="mdc-list-item__text"> + <i class="material-icons-outlined">edit</i> Edit</span> + </li> + <li class="mdc-list-item" role="menuitem" + id="filter-delete" onclick="deleteFilter(this)"> + <span class="mdc-list-item__ripple"></span> + <span class="mdc-list-item__text"> + <i class="material-icons-outlined">delete</i> Delete</span> + </li> + </ul> + </div> + </div> + </span> + `; + + chip.querySelector('#filterstring').innerHTML = filter.createUIString(); + + chip.querySelector('#filtermenu').addEventListener('click', () => { + const menu = new MDCMenu(chip.querySelector('#filterchipmenu')); + menu.setAnchorMargin({ top: 25 }) + menu.open = true; + }); + + const check = chip.querySelector('input'); + check.addEventListener('change', () => { + filter.enabled = !!check.checked; + Player.instance.refresh(); + Filter.sendStreamFilters(); + }); + + return chip; +} + +function showCreateFilterPopup(anchor) { + const filterUi = document.createElement('filter-ui'); + filterUi.addEventListener('saveFilter', (event) => { + if (event.detail.selector && event.detail.action) { + const filter = new Filter(event.detail.selector, event.detail.action); + const chip = createFilterChip(filter); + const list = document.querySelector('#filters'); + list.appendChild(chip); + hideModal(); + refreshFilterSet(); + } + }); + filterUi.style.position = 'absolute'; + filterUi.style.top = (anchor.offsetTop + anchor.offsetHeight) + 'px'; + filterUi.style.left = (anchor.offsetLeft + 20) + 'px'; + + showModal(filterUi); +} + +function refreshFilterSet() { + const list = document.querySelector('#filters'); + for (var chip = list.firstElementChild; + chip !== null; chip = chip.nextSibling) { + if (chip === list.firstElementChild) { + chip.querySelector('#filter-moveprev') + .classList.add("mdc-list-item--disabled"); + } + else { + chip.querySelector('#filter-moveprev') + .classList.remove("mdc-list-item--disabled"); + } + if (chip.nextSibling === null) { + chip.querySelector('#filter-movenext') + .classList.add("mdc-list-item--disabled"); + } + else { + chip.querySelector('#filter-movenext') + .classList.remove("mdc-list-item--disabled"); + } + } + + Player.instance.refresh(); + + Filter.sendStreamFilters(); +} + +function movePrev(item) { + if (item.classList.contains("mdc-list-item--disabled")) { + return; + } + var chip = item.closest(".mdc-chip"); + const menu = new MDCMenu(chip.querySelector('#filterchipmenu')); + menu.open = false; + var index = Array.prototype.indexOf.call(chip.parentNode.children, chip); + Filter.swapFilters(index - 1, index); + var prevChip = chip.previousElementSibling; + chip.parentNode.insertBefore(chip, prevChip); + refreshFilterSet(); +} + +function moveNext(item) { + if (item.classList.contains("mdc-list-item--disabled")) { + return; + } + var chip = item.closest(".mdc-chip"); + const menu = new MDCMenu(chip.querySelector('#filterchipmenu')); + menu.open = false; + var index = Array.prototype.indexOf.call(chip.parentNode.children, chip); + Filter.swapFilters(index, index + 1); + var nextChip = chip.nextElementSibling; + chip.parentNode.insertBefore(nextChip, chip); + refreshFilterSet(); +} + +function createFilterComplete(selector, action, index) { + var newFilter = + new Filter(selector, action, index); + const newChip = createFilterChip(newFilter); + const list = document.querySelector('#filters'); + list.appendChild(newChip); + hideModal(); + refreshFilterSet(); + return newChip; +} + +function showEditFilterPopup(item) { + var chip = item.closest(".mdc-chip"); + var index = Array.prototype.indexOf.call(chip.parentNode.children, chip); + + const menu = new MDCMenu(chip.querySelector('#filterchipmenu')); + menu.open = false; + + const filterUi = document.createElement('filter-ui'); + filterUi.addEventListener('saveFilter', (event) => { + if (event.detail.selector && event.detail.action) { + var newChip = createFilterComplete(event.detail.selector, + event.detail.action, index); + chip.replaceWith(newChip); + } + }); + filterUi.style.position = 'absolute'; + filterUi.style.top = (chip.offsetTop + chip.offsetHeight) + 'px'; + filterUi.style.left = (chip.offsetLeft + 20) + 'px'; + // Copyright 2022 The Chromium Authors. All rights reserved. + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + + showModal(filterUi); + + var filter = Filter.getFilter(index); + + // fill form from filter data + filterUi.querySelector('#filter-ui-title').innerHTML = "Edit Filter"; + filterUi.querySelector('#filename').value = filter.file; + filterUi.querySelector('#functionname').value = filter.func; + filterUi.querySelector('#annotation').value = filter.anno; + + var actionform = filterUi.querySelector('#actionform'); + actionform.dowhat.value = !filter.shouldDraw ? 'skip' : + filter.drawColor ? 'drawfilter' : 'drawcaller'; + actionform.drawcolor.value = filter.drawColor; + actionform.fillalpha.value = filter.fillAlpha; +} + +function deleteFilter(item) { + var chip = item.closest(".mdc-chip"); + const menu = new MDCMenu(chip.querySelector('#filterchipmenu')); + menu.open = false; + var index = Array.prototype.indexOf.call(chip.parentNode.children, chip); + Filter.deleteFilter(index); + chip.parentNode.removeChild(chip); + refreshFilterSet(); +} + +// Default filters should probably load off disk. +const FilterUIDefault = { + initialize() { + createFilterComplete({ filename: "", func: "", anno: "frame.root.quad" }, + { skipDraw: false, color: '#000000', alpha: "10" }); + createFilterComplete({ filename: "", func: "", anno: "frame.root.damage" }, + { skipDraw: false, color: '#FF0000', alpha: "20" }); + } +}; +
diff --git a/tools/visual_debugger/filter.js b/tools/visual_debugger/filter.js new file mode 100644 index 0000000..85d36c8 --- /dev/null +++ b/tools/visual_debugger/filter.js
@@ -0,0 +1,231 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Represents a source for a draw call, or a log, etc. +// +class Source { + static instances = []; + + constructor(json) { + this.file_ = json.file; + this.func_ = json.func; + this.line_ = json.line; + this.anno_ = json.anno; + const index = parseInt(json.index); + Source.instances[index] = this; + } + + get file() { return this.file_; } + get func() { return this.func_; } + get anno() { return this.anno_; } +}; + +// Represents a draw call. +// This is currently only used for drawing rect. But this (or something like +// this) could potentially be also used for drawing logs etc. +// +class DrawCall { + constructor(json) { + // e.g. {"drawindex":"44","option":{"alpha":"1.000000","color":"#ffffff"} + // ,"pos":"0.000000,763.000000","size":"255x5","source_index":"0"} + this.sourceIndex_ = parseInt(json.source_index); + this.drawIndex_ = parseInt(json.drawindex); + this.size_ = { + width: json.size[0], + height: json.size[1], + }; + + this.pos_ = { + x: json.pos[0], + y: json.pos[1], + }; + if (json.option) { + this.color_ = json.option.color; + this.alpha_ = DrawCall.alphaIntToHex(json.option.alpha) + } + } + + // Used in conversion of Json. + static alphaIntToHex(value) { + value = Math.trunc(value); + value = Math.max(0, Math.min(value, 255)); + return value.toString(16).padStart(2, '0'); + } + + // Used internally to convert from UI filter to hex. + static alphaFloatToHex(value) { + value = Math.trunc(value * 255); + value = Math.max(0, Math.min(value, 255)); + return value.toString(16).padStart(2, '0'); + } + + draw(canvas, scale) { + let filter = undefined; + const filters = Filter.enabledInstances(); + // TODO: multiple filters can match the same draw call. For now, let's just + // pick the earliest filter that matches, and let it decide what to do. + for (const f of filters) { + if (f.matches(Source.instances[this.sourceIndex_])) { + filter = f; + break; + } + } + + // No filters match this draw. So skip. + if (!filter) return; + if (!filter.shouldDraw) return; + + var color = (filter && filter.drawColor) ? filter.drawColor : this.color_ + var alpha = (filter && filter.fillAlpha) ? + DrawCall.alphaFloatToHex(parseFloat(filter.fillAlpha) / 100) : this.alpha_; + if (color && alpha) { + canvas.fillStyle = color + alpha; + canvas.fillRect(this.pos_.x * scale, this.pos_.y * scale, + this.size_.width * scale, this.size_.height * scale); + } + + canvas.strokeStyle = color; + canvas.strokeRect(this.pos_.x * scale, this.pos_.y * scale, + this.size_.width * scale, this.size_.height * scale); + } +}; + + +// Represents a filter for draw calls. A filter specifies a selector (e.g. +// filename, and/or function name), and the action to take (e.g. skip draw, or +// color to use for draw, etc.) if the filter matches. +class Filter { + static instances = []; + + constructor(selector, action, index) { + this.selector_ = { + filename: selector.filename, + func: selector.func, + anno: selector.anno, + }; + + console.log(selector); + console.log(action); + // XXX: If there are multiple selectors that apply to the same draw, then + // I guess the newest filter will take effect. + this.action_ = { + skipDraw: action.skipDraw, + color: action.color, + alpha: action.alpha, + }; + + // Enabled by default. + this.enabled_ = true; + + if (index === undefined) { + Filter.instances.push(this); + this.index_ = Filter.instances.length - 1; + } + else { + Filter.instances[index] = this; + this.index_ = index; + } + } + + get enabled() { return this.enabled_; } + set enabled(e) { this.enabled_ = e; } + + get file() { return this.selector_.filename || ""; } + get func() { return this.selector_.func || ""; } + get anno() { return this.selector_.anno || "" }; + + get shouldDraw() { return !this.action_.skipDraw; } + // undefined if using caller color + get drawColor() { return this.action_.color; } + // undefined if using caller alpha + get fillAlpha() { return this.action_.alpha; } + + get index() { return this.index_; } + + get streamFilter() { + return { + selector: { + file: this.selector_.filename, + func: this.selector_.func, + anno: this.selector_.anno + }, + active: !this.action_.skipDraw, + enabled: this.enabled_ + } + } + + matches(source) { + if (!(source instanceof Source)) return false; + if (!this.enabled) return false; + + if (this.selector_.filename) { + const m = source.file.search(this.selector_.filename); + if (m == -1) return false; + } + + if (this.selector_.func) { + const m = source.func.search(this.selector_.func); + if (m == -1) return false; + } + + if (this.selector_.anno) { + const m = source.anno.search(this.selector_.anno); + if (m == -1) return false; + } + + return true; + } + + createUIString() { + let str = ''; + if (this.selector_.filename) { + const parts = this.selector_.filename.split('/'); + str += ` <i class="material-icons-outlined md-18"> + text_snippet</i>${parts[parts.length - 1]}`; + } + if (this.selector_.func) { + str += ` <i class="material-icons-outlined md-18"> + code</i>${this.selector_.func}`; + } + if (this.selector_.anno) { + str += ` <i class="material-icons-outlined md-18"> + message</i>${this.selector_.anno}`; + } + return str; + } + + static enabledInstances() { + return Filter.instances.filter(f => f.enabled); + } + + static getFilter(index) { + return Filter.instances[index]; + } + + static swapFilters(indexA, indexB) { + var filterA = Filter.instances[indexA]; + var filterB = Filter.instances[indexB]; + filterA.index_ = indexB; + filterB.index_ = indexA; + Filter.instances[indexB] = filterA; + Filter.instances[indexA] = filterB; + } + + static deleteFilter(index) { + Filter.instances.splice(index, 1); + for (var i = index; i < Filter.instances.length; i++) { + Filter.instances[i].index_ -= 1; + } + } + + static sendStreamFilters() { + const message = {}; + message['method'] = 'VisualDebugger.filterStream'; + message['params'] = { + filter: { filters: Filter.instances.map((f) => f.streamFilter) } + }; + Connection.sendMessage(message); + } +}; +
diff --git a/tools/visual_debugger/frame.js b/tools/visual_debugger/frame.js new file mode 100644 index 0000000..9e74440d --- /dev/null +++ b/tools/visual_debugger/frame.js
@@ -0,0 +1,289 @@ +// Copyright 2022 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Represents a single frame, and contains all associated data. +// +class DrawFrame { + static instances = []; + + static count() { return DrawFrame.instances.length; } + + static get(index) { + const ins = DrawFrame.instances; + if (index < 0) return ins[index]; + if (index >= ins.length) return ins[ins.length - 1]; + return ins[index]; + } + + constructor(json) { + this.num_ = parseInt(json.frame); + this.size_ = { + width: parseInt(json.windowx), + height: parseInt(json.windowy), + }; + this.logs_ = json.logs; + this.drawTexts_ = json.text; + this.drawCalls_ = json.drawcalls.map(c => new DrawCall(c)); + this.submissionFreezeIndex_ = -1; + if (json.new_sources) { + for (const s of json.new_sources) { + new Source(s); + } + } + + // Retain the original JSON, so that the file can be saved to local disk. + // Ideally, the JSON would be constructed on demand, but generating + // |new_sources| requires some work. So for now, do the easy thing. + this.json_ = json; + + DrawFrame.instances.push(this); + } + + submissionCount() { + return this.drawCalls_.length + this.drawTexts_.length + this.logs_.length; + } + + submissionFreezeIndex() { + return this.submissionFreezeIndex_ >= 0 ? (this.submissionFreezeIndex_) : + (this.submissionCount() - 1); + } + + updateCanvasSize(canvas, scale) { + canvas.width = this.size_.width * scale; + canvas.height = this.size_.height * scale; + } + + getFilter(source_index) { + const filters = Filter.enabledInstances(); + let filter = undefined; + // TODO: multiple filters can match the same draw call. For now, let's just + // pick the earliest filter that matches, and let it decide what to do. + for (const f of filters) { + if (f.matches(Source.instances[source_index])) { + filter = f; + break; + } + } + + // No filters match this draw. So skip. + if (!filter) return undefined; + if (!filter.shouldDraw) return undefined; + + return filter; + } + + draw(canvas, scale) { + for (const call of this.drawCalls_) { + if (call.drawIndex_ > this.submissionFreezeIndex()) break; + + call.draw(canvas, scale); + } + + canvas.fillStyle = 'black'; + canvas.font = "16px Courier bold"; + canvas.fillText(this.num_, 3, 15); + + for (const text of this.drawTexts_) { + if (text.drawindex > this.submissionFreezeIndex()) break; + + let filter = this.getFilter(text.source_index); + if (!filter) continue; + + var color = (filter && filter.drawColor) ? + filter.drawColor : text.option.color; + canvas.fillStyle = color; + // TODO: This should also create some DrawText object or something. + canvas.fillText(text.text, text.pos[0] * scale, text.pos[1] * scale); + } + } + + appendLogs(logContainer) { + for (const log of this.logs_) { + if (log.drawindex > this.submissionFreezeIndex()) break; + + let filter = this.getFilter(log.source_index); + if (!filter) continue; + + var color = (filter && filter.drawColor) ? + filter.drawColor : log.option.color; + var container = document.createElement("span"); + var new_node = document.createTextNode(log.value); + container.style.color = color; + container.appendChild(new_node) + logContainer.appendChild(container); + logContainer.appendChild(document.createElement('br')); + } + } + + unfreeze() { + this.submissionFreezeIndex_ = -1; + } + + freeze(index) { + this.submissionFreezeIndex_ = index; + } + + toJSON() { + return this.json_; + } +} + + +// Controller for the viewer. +// +class Viewer { + constructor(canvas, log) { + this.canvas_ = canvas; + this.logContainer_ = log; + this.drawContext_ = this.canvas_.getContext('2d'); + + this.currentFrameIndex_ = -1; + this.viewScale = 1.0; + } + + updateCurrentFrame() { + this.redrawCurrentFrame_(); + this.updateLogs_(); + } + + drawNextFrame() { + // When we switch to a different frame, we need to unfreeze the current + // frame (to make sure the frame draws completely the next time it is drawn + // in the player). + this.unfreeze(); + if (DrawFrame.get(this.currentFrameIndex_ + 1)) { + ++this.currentFrameIndex_; + this.updateCurrentFrame(); + return true; + } + } + + drawPreviousFrame() { + // When we switch to a different frame, we need to unfreeze the current + // frame (to make sure the frame draws completely the next time it is drawn + // in the player). + this.unfreeze(); + if (DrawFrame.get(this.currentFrameIndex_ - 1)) { + --this.currentFrameIndex_; + this.updateCurrentFrame(); + } + } + + redrawCurrentFrame_() { + const frame = this.getCurrentFrame(); + if (!frame) return; + frame.updateCanvasSize(this.canvas_, this.viewScale); + frame.draw(this.drawContext_, this.viewScale); + } + + updateLogs_() { + this.logContainer_.textContent = ''; + const frame = this.getCurrentFrame(); + if (!frame) return; + frame.appendLogs(this.logContainer_); + } + + getCurrentFrame() { + return DrawFrame.get(this.currentFrameIndex_); + } + + get currentFrameIndex() { return this.currentFrameIndex_; } + + setViewerScale(scaleAsInt) { + this.viewScale = scaleAsInt / 100.0; + } + + freezeFrame(frameIndex, drawIndex) { + if (DrawFrame.get(frameIndex)) { + this.currentFrameIndex_ = frameIndex; + this.getCurrentFrame().freeze(drawIndex); + this.updateCurrentFrame(); + } + } + + unfreeze() { + const frame = this.getCurrentFrame(); + if (frame) frame.unfreeze(); + } +}; + +// Controls the player. +// +class Player { + static instances = []; + + constructor(viewer, draw_cb) { + this.viewer_ = viewer; + this.paused_ = false; + this.nextFrameScheduled_ = false; + + this.drawCb_ = draw_cb; + + Player.instances[0] = this; + } + + play() { + this.paused_ = false; + if (this.nextFrameScheduled_) return; + + const drawn = this.viewer_.drawNextFrame(); + this.didDrawNewFrame_(); + if (!drawn) return; + + this.nextFrameScheduled_ = true; + requestAnimationFrame(() => { + this.nextFrameScheduled_ = false; + if (!this.paused_) + this.play(); + }); + } + + pause() { + this.paused_ = true; + } + + rewind() { + this.pause(); + this.viewer_.drawPreviousFrame(); + this.didDrawNewFrame_(); + } + + forward() { + this.pause(); + this.viewer_.drawNextFrame(); + this.didDrawNewFrame_(); + } + + // Pauses after drawing at most |drawIndex| number of calls of the + // |frameIndex|-th frame. + // Draws all calls if |drawIndex| is not set. + freezeFrame(frameIndex, drawIndex = -1) { + this.pause(); + this.viewer_.freezeFrame(parseInt(frameIndex), parseInt(drawIndex)); + this.didDrawNewFrame_(); + } + + setViewerScale(scaleAsString) { + this.viewer_.setViewerScale(parseInt(scaleAsString)); + this.refresh(); + } + + refresh() { + this.viewer_.updateCurrentFrame(); + } + + didDrawNewFrame_() { + this.drawCb_(this.viewer_.getCurrentFrame()); + } + + get currentFrameIndex() { return this.viewer_.currentFrameIndex; } + + onNewFrame() { + // If the player is not paused, and a new frame is received, then make sure + // the next frame is drawn. + if (!this.paused_) this.play(); + } + + static get instance() { return Player.instances[0]; } +};
diff --git a/tools/visual_debugger/server.py b/tools/visual_debugger/server.py new file mode 100755 index 0000000..3dbaa07 --- /dev/null +++ b/tools/visual_debugger/server.py
@@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +# Copyright 2022 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +from http.server import HTTPServer, SimpleHTTPRequestHandler, test +import sys +import urllib.request +import socketserver +import webbrowser + +debugger_port = 0 +remote_port = 7777 + + +class CORSRequestHandler(SimpleHTTPRequestHandler): + def do_GET(self): + if (self.path == "/discover.html"): + try: + contents = urllib.request.urlopen("http://localhost:" + + str(remote_port) + + "/json/version").read() + self.send_response(200) + + except Exception: + contents =\ + "\n Cannot connect to remote discovery page on localhost:"+\ + str(remote_port) +\ + "\n check for target command line parameter: \n" +\ + " --remote-debugging-port=" + str(remote_port) +\ + "\n and if the target is a remote DUT tunnel forwarding"+\ + " is required from local to remote : " + \ + "\n ssh root@$DUT_IP -L " + \ + str(remote_port)+":localhost:" + str(remote_port) + contents = bytes(contents, 'UTF-8') + self.send_response(400) + + self.send_header("Content-type", "text/html") + self.send_header("Content-length", len(contents)) + self.end_headers() + self.wfile.write(contents) + else: + SimpleHTTPRequestHandler.do_GET(self) + + +if __name__ == '__main__': + try: + remote_port = int(sys.argv[1]) if len(sys.argv) > 1 else remote_port + debugger_port = int(sys.argv[2]) if len(sys.argv) > 2 else debugger_port + Handler = CORSRequestHandler + socketserver.TCPServer.allow_reuse_address = True + tpc_server = socketserver.TCPServer(("", debugger_port), Handler) + # If socket is not specified it was assigned so we must grab it. + if (debugger_port == 0): + debugger_port = tpc_server.server_address[1] + print("Server running on port", debugger_port) + webbrowser.open("http://localhost:" + str(debugger_port) + "/app.html", + new=1, + autoraise=True) + tpc_server.serve_forever() + except KeyboardInterrupt: + tpc_server.server_close() + sys.exit()
diff --git a/tools/visual_debugger/style.css b/tools/visual_debugger/style.css new file mode 100644 index 0000000..fde9136 --- /dev/null +++ b/tools/visual_debugger/style.css
@@ -0,0 +1,82 @@ +/* Copyright 2022 The Chromium Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. */ + +.sectionTitle { + margin-left: 10px; + padding-left: 5px; + padding-right: 5px; + margin-right: 10px; + background-color: white; + display: inline-block; + font-family: Roboto; +} + +.section { + margin-top: -10px; + padding-top: 10px; + border: 1px dashed silver; + font-family: Roboto; + padding-left: 5px; + padding-bottom: 10px; + padding-right: 10px; +} + +.modalContainer { + width: 100%; + height: 100%; + position: absolute; + top: 0px; + left: 0px; + background-color: rgba(100, 100, 100, 0.4); + display: none; +} + +:root { + --mdc-theme-primary: rgb(69, 69, 85); + --mdc-theme-secondary: rgb(141, 157, 177); + --mdc-theme-on-primary: rgb(208, 219, 166); + --mdc-theme-on-secondary: rgb(231, 233, 205); + --mdc-theme-surface: rgb(238, 235, 235); + --mdc-theme-on-surface: black; +} + +.mdc-button { + font-size:x-small; + border: 1px solid #725b44; +} + +.mdc-text-field { + font-size:small; +} + +.mdc-chip { + z-index: 2; +} + +.mdc-list { + padding: 4px 0; +} + +.mdc-list-item { + padding: 0 8px; +} + +.mdc-list-item__text { + font-size:small; + line-height: 1.25rem; +} + +.material-icons-outlined { + font-size:18px; +} + +button#connect { + --mdc-theme-primary:green; + --mdc-theme-on-primary: white; +} + +button#disconnect { + --mdc-theme-primary:darkred; + --mdc-theme-on-primary: white; +} \ No newline at end of file
diff --git a/tools/visual_debugger/visual_debugger_communications.png b/tools/visual_debugger/visual_debugger_communications.png new file mode 100644 index 0000000..003c0ccb --- /dev/null +++ b/tools/visual_debugger/visual_debugger_communications.png Binary files differ
diff --git a/tools/web_dev_style/eslint.py b/tools/web_dev_style/eslint.py index 31696cf8..4ece743d 100755 --- a/tools/web_dev_style/eslint.py +++ b/tools/web_dev_style/eslint.py
@@ -10,6 +10,7 @@ _SRC_PATH = os_path.normpath(os_path.join(_HERE_PATH, '..', '..')) _NODE_PATH = os_path.join(_SRC_PATH, 'third_party', 'node') + import os import sys old_sys_path = sys.path[:] sys.path.append(_NODE_PATH) @@ -18,11 +19,29 @@ finally: sys.path = old_sys_path - return node.RunNode([ - node_modules.PathToEsLint(), - '--resolve-plugins-relative-to', - os_path.join(_NODE_PATH, 'node_modules'), - ] + args) + # When running git cl presubmit --all this presubmit may be asked to check + # ~1,100 files, leading to a command line that is about 92,000 characters. + # This goes past the Windows 8191 character cmd.exe limit and causes cryptic + # failures. To avoid these we break the command up into smaller pieces. The + # non-Windows limit is chosen so that the code that splits up commands will + # get some exercise on other platforms. + # Depending on how long the command is on Windows the error may be: + # The command line is too long. + # Or it may be: + # OSError: Execution failed with error: [WinError 206] The filename or + # extension is too long. + # I suspect that the latter error comes from CreateProcess hitting its 32768 + # character limit. + files_per_command = 50 if os.name == 'nt' else 1000 + results = [] + for i in range(0, len(args), files_per_command): + results.append( + node.RunNode([ + node_modules.PathToEsLint(), + '--resolve-plugins-relative-to', + os_path.join(_NODE_PATH, 'node_modules'), + ] + args[i:i + files_per_command])) + return results if __name__ == '__main__':
diff --git a/ui/base/data_transfer_policy/OWNERS b/ui/base/data_transfer_policy/OWNERS index c68ffbf..d453886 100644 --- a/ui/base/data_transfer_policy/OWNERS +++ b/ui/base/data_transfer_policy/OWNERS
@@ -2,5 +2,5 @@ ayaelattar@chromium.org # Secondary: -mek@chromium.org -pwnall@chromium.org +asully@chromium.org +ayui@chromium.org
diff --git a/ui/base/x/x11_whole_screen_move_loop.cc b/ui/base/x/x11_whole_screen_move_loop.cc index ed9f007e..d408a17 100644 --- a/ui/base/x/x11_whole_screen_move_loop.cc +++ b/ui/base/x/x11_whole_screen_move_loop.cc
@@ -26,7 +26,6 @@ #include "ui/events/x/x11_event_translation.h" #include "ui/gfx/x/connection.h" #include "ui/gfx/x/keysyms/keysyms.h" -#include "ui/gfx/x/window_cache.h" #include "ui/gfx/x/x11_window_event_manager.h" #include "ui/gfx/x/xproto.h" @@ -152,10 +151,6 @@ auto* connection = x11::Connection::Get(); CreateDragInputWindow(connection); - // Keep a window cache alive for the duration of the drag so that the drop - // target under the drag window can be quickly determined. - x11::WindowCache cache(connection, connection->default_root(), true); - // Only grab mouse capture of |grab_input_window_| if |can_grab_pointer| is // true aka the source that initiated the move loop doesn't have explicit // grab.
diff --git a/ui/gfx/geometry/insets.h b/ui/gfx/geometry/insets.h index 59bfc468..294b0d7 100644 --- a/ui/gfx/geometry/insets.h +++ b/ui/gfx/geometry/insets.h
@@ -22,17 +22,6 @@ public: using InsetsOutsetsBase::InsetsOutsetsBase; - // These are for Chromium UI code to replace the original usages of - // Insets::Insets(top, left, bottom, right) and Insets(vertical, horizontal). - static constexpr Insets TLBR(int top, int left, int bottom, int right) { - return Insets().set_top_bottom(top, bottom).set_left_right(left, right); - } - static constexpr Insets VH(int vertical, int horizontal) { - return Insets() - .set_top_bottom(vertical, vertical) - .set_left_right(horizontal, horizontal); - } - // Conversion from Insets to Outsets negates all components. Outsets ToOutsets() const;
diff --git a/ui/gfx/geometry/insets_f.h b/ui/gfx/geometry/insets_f.h index 9d11b08..44c4185 100644 --- a/ui/gfx/geometry/insets_f.h +++ b/ui/gfx/geometry/insets_f.h
@@ -17,23 +17,6 @@ public: using InsetsOutsetsFBase::InsetsOutsetsFBase; - // These are for Chromium UI code to replace the original usages of - // InsetsF(top, left, bottom, right) and InsetsF(vertical, horizontal). - static constexpr inline InsetsF TLBR(float top, - float left, - float bottom, - float right) { - return InsetsF().set_top(top).set_left(left).set_bottom(bottom).set_right( - right); - } - static constexpr inline InsetsF VH(float vertical, float horizontal) { - return InsetsF() - .set_top(vertical) - .set_left(horizontal) - .set_bottom(vertical) - .set_right(horizontal); - } - // Conversion from InsetsF to OutsetsF negates all components. OutsetsF ToOutsets() const; };
diff --git a/ui/gfx/geometry/insets_outsets_base.h b/ui/gfx/geometry/insets_outsets_base.h index 342e255..ce8fc3f 100644 --- a/ui/gfx/geometry/insets_outsets_base.h +++ b/ui/gfx/geometry/insets_outsets_base.h
@@ -86,6 +86,18 @@ return *static_cast<T*>(this); } + // In addition to the above, we can also use the following methods to + // construct Insets/Outsets. + // TLBR() is for Chomium UI code. We should not use it in blink code because + // the order of parameters is different from the normal orders used in blink. + // Blink code can use the above setters and VH(). + static constexpr T TLBR(int top, int left, int bottom, int right) { + return T().set_top_bottom(top, bottom).set_left_right(left, right); + } + static constexpr T VH(int vertical, int horizontal) { + return TLBR(vertical, horizontal, vertical, horizontal); + } + // Sets each side to the maximum of the side and the corresponding side of // |other|. void SetToMax(const T& other) {
diff --git a/ui/gfx/geometry/insets_outsets_f_base.h b/ui/gfx/geometry/insets_outsets_f_base.h index 2d99140..175655b 100644 --- a/ui/gfx/geometry/insets_outsets_f_base.h +++ b/ui/gfx/geometry/insets_outsets_f_base.h
@@ -58,6 +58,21 @@ return *static_cast<T*>(this); } + // In addition to the above, we can also use the following methods to + // construct InsetsF/OutsetsF. + // TLBR() is for Chomium UI code. We should not use it in blink code because + // the order of parameters is different from the normal orders used in blink. + // Blink code can use the above setters and VH(). + static constexpr inline T TLBR(float top, + float left, + float bottom, + float right) { + return T().set_top(top).set_left(left).set_bottom(bottom).set_right(right); + } + static constexpr inline T VH(float vertical, float horizontal) { + return TLBR(vertical, horizontal, vertical, horizontal); + } + // Sets each side to the maximum of the side and the corresponding side of // |other|. void SetToMax(const T& other) {
diff --git a/ui/gfx/geometry/rect.cc b/ui/gfx/geometry/rect.cc index d99593b..ec3ee00 100644 --- a/ui/gfx/geometry/rect.cc +++ b/ui/gfx/geometry/rect.cc
@@ -115,19 +115,9 @@ } void Rect::Inset(const Insets& insets) { - Inset(insets.left(), insets.top(), insets.right(), insets.bottom()); -} - -void Rect::Inset(int left, int top, int right, int bottom) { - origin_ += Vector2d(left, top); - // left+right might overflow/underflow, but width() - (left+right) might - // overflow as well. - set_width(base::ClampSub(width(), base::ClampAdd(left, right))); - set_height(base::ClampSub(height(), base::ClampAdd(top, bottom))); -} - -void Rect::Outset(const Outsets& outsets) { - Outset(outsets.left(), outsets.top(), outsets.right(), outsets.bottom()); + origin_ += Vector2d(insets.left(), insets.top()); + set_width(base::ClampSub(width(), insets.width())); + set_height(base::ClampSub(height(), insets.height())); } void Rect::Offset(const Vector2d& distance) {
diff --git a/ui/gfx/geometry/rect.h b/ui/gfx/geometry/rect.h index 1f719cf2..2bec049 100644 --- a/ui/gfx/geometry/rect.h +++ b/ui/gfx/geometry/rect.h
@@ -20,6 +20,8 @@ #include "base/numerics/clamped_math.h" #include "base/numerics/safe_conversions.h" #include "build/build_config.h" +#include "ui/gfx/geometry/insets.h" +#include "ui/gfx/geometry/outsets.h" #include "ui/gfx/geometry/point.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/vector2d.h" @@ -32,9 +34,6 @@ namespace gfx { -class Insets; -class Outsets; - class GEOMETRY_EXPORT Rect { public: constexpr Rect() = default; @@ -144,25 +143,28 @@ } // Shrink the rectangle by |inset| on all sides. - void Inset(int inset) { Inset(inset, inset); } - // Shrink the rectangle by a horizontal and vertical distance on all sides. - void Inset(int horizontal, int vertical) { - Inset(horizontal, vertical, horizontal, vertical); - } - - // Shrink the rectangle by the given insets. + void Inset(int inset) { Inset(Insets(inset)); } + // Shrink the rectangle by the given |insets|. void Inset(const Insets& insets); - // Shrink the rectangle by the specified amount on each side. - void Inset(int left, int top, int right, int bottom); - - // Expand the rectangle by the specified amount on each side. + // Expand the rectangle by |outset| on all sides. void Outset(int outset) { Inset(-outset); } + // Expand the rectangle by the given |outsets|. + void Outset(const Outsets& outsets) { Inset(outsets.ToInsets()); } + + // TODO(crbug.com/1302500): Remove these functions in favor of the above + // functions, because these functions are error-prone about the order of the + // parameters. + void Inset(int horizontal, int vertical) { + Inset(Insets::VH(vertical, horizontal)); + } void Outset(int horizontal, int vertical) { Inset(-horizontal, -vertical); } + void Inset(int left, int top, int right, int bottom) { + Inset(Insets::TLBR(top, left, bottom, right)); + } void Outset(int left, int top, int right, int bottom) { Inset(-left, -top, -right, -bottom); } - void Outset(const Outsets& outsets); // Move the rectangle by a horizontal and vertical distance. void Offset(int horizontal, int vertical) {
diff --git a/ui/gfx/geometry/rect_f.cc b/ui/gfx/geometry/rect_f.cc index 7c5b93b1..c9084cf 100644 --- a/ui/gfx/geometry/rect_f.cc +++ b/ui/gfx/geometry/rect_f.cc
@@ -44,17 +44,9 @@ #endif void RectF::Inset(const InsetsF& insets) { - Inset(insets.left(), insets.top(), insets.right(), insets.bottom()); -} - -void RectF::Inset(float left, float top, float right, float bottom) { - origin_ += Vector2dF(left, top); - set_width(std::max(width() - left - right, 0.0f)); - set_height(std::max(height() - top - bottom, 0.0f)); -} - -void RectF::Outset(const OutsetsF& outsets) { - Outset(outsets.left(), outsets.top(), outsets.right(), outsets.bottom()); + origin_ += Vector2dF(insets.left(), insets.top()); + set_width(width() - insets.width()); + set_height(height() - insets.height()); } void RectF::Offset(float horizontal, float vertical) {
diff --git a/ui/gfx/geometry/rect_f.h b/ui/gfx/geometry/rect_f.h index 26d2d254..c21cbc1 100644 --- a/ui/gfx/geometry/rect_f.h +++ b/ui/gfx/geometry/rect_f.h
@@ -9,6 +9,8 @@ #include <string> #include "build/build_config.h" +#include "ui/gfx/geometry/insets_f.h" +#include "ui/gfx/geometry/outsets_f.h" #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/size_f.h" @@ -20,9 +22,6 @@ namespace gfx { -class InsetsF; -class OutsetsF; - // A floating version of gfx::Rect. class GEOMETRY_EXPORT RectF { public: @@ -89,28 +88,31 @@ size_.SetSize(width, height); } - // Shrink the rectangle by |inset| on all sides. - void Inset(float inset) { Inset(inset, inset); } - // Shrink the rectangle by a horizontal and vertical distance on all sides. - void Inset(float horizontal, float vertical) { - Inset(horizontal, vertical, horizontal, vertical); - } - - // Shrink the rectangle by the given insets. + // Shrinks the rectangle by |inset| on all sides. + void Inset(float inset) { Inset(InsetsF(inset)); } + // Shrinks the rectangle by the given |insets|. void Inset(const InsetsF& insets); - // Shrink the rectangle by the specified amount on each side. - void Inset(float left, float top, float right, float bottom); - - // Expand the rectangle by the specified amount on each side. + // Expands the rectangle by |outset| on all sides. void Outset(float outset) { Inset(-outset); } + // Expands the rectangle by the given |outsets|. + void Outset(const OutsetsF& outsets) { Inset(outsets.ToInsets()); } + + // TODO(crbug.com/1302500): Remove these functions in favor of the above + // functions, because these functions are error-prone about the order of the + // parameters. + void Inset(float horizontal, float vertical) { + Inset(InsetsF::VH(vertical, horizontal)); + } void Outset(float horizontal, float vertical) { Inset(-horizontal, -vertical); } + void Inset(float left, float top, float right, float bottom) { + Inset(InsetsF::TLBR(top, left, bottom, right)); + } void Outset(float left, float top, float right, float bottom) { Inset(-left, -top, -right, -bottom); } - void Outset(const OutsetsF& outsets); // Move the rectangle by a horizontal and vertical distance. void Offset(float horizontal, float vertical);
diff --git a/ui/gfx/x/window_cache.cc b/ui/gfx/x/window_cache.cc index ced704d..0f1fa29 100644 --- a/ui/gfx/x/window_cache.cc +++ b/ui/gfx/x/window_cache.cc
@@ -11,6 +11,8 @@ #include "base/notreached.h" #include "base/ranges/algorithm.h" #include "base/run_loop.h" +#include "base/threading/thread_task_runner_handle.h" +#include "base/time/time.h" #include "ui/gfx/geometry/insets.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/vector2d.h" @@ -22,19 +24,23 @@ namespace x11 { +const base::TimeDelta kDestroyTimerInterval = base::Seconds(3); + Window GetWindowAtPoint(const gfx::Point& point_px, const base::flat_set<Window>* ignore) { auto* connection = Connection::Get(); Window root = connection->default_root(); - if (auto* instance = WindowCache::instance()) { - instance->WaitUntilReady(); - return instance->GetWindowAtPoint(point_px, root, ignore); + if (!WindowCache::instance()) { + auto instance = + std::make_unique<WindowCache>(connection, connection->default_root()); + auto* cache = instance.get(); + cache->BeginDestroyTimer(std::move(instance)); } - WindowCache cache(connection, connection->default_root(), false); - cache.WaitUntilReady(); - return cache.GetWindowAtPoint(point_px, root, ignore); + auto* instance = WindowCache::instance(); + instance->WaitUntilReady(); + return instance->GetWindowAtPoint(point_px, root, ignore); } ScopedShapeEventSelector::ScopedShapeEventSelector(Connection* connection, @@ -56,24 +62,21 @@ // static WindowCache* WindowCache::instance_ = nullptr; -WindowCache::WindowCache(Connection* connection, Window root, bool track_events) +WindowCache::WindowCache(Connection* connection, Window root) : connection_(connection), root_(root), - track_events_(track_events), gtk_frame_extents_(GetAtom("_GTK_FRAME_EXTENTS")) { DCHECK(!instance_) << "Only one WindowCache should be active at a time"; instance_ = this; connection_->AddEventObserver(this); - if (track_events_) { - // We select for SubstructureNotify events on all windows (to receive - // CreateNotify events), which will cause events to be sent for all child - // windows. This means we need to additionally select for StructureNotify - // changes for the root window. - root_events_ = std::make_unique<XScopedEventSelector>( - root_, EventMask::StructureNotify); - } + // We select for SubstructureNotify events on all windows (to receive + // CreateNotify events), which will cause events to be sent for all child + // windows. This means we need to additionally select for StructureNotify + // changes for the root window. + root_events_ = + std::make_unique<XScopedEventSelector>(root_, EventMask::StructureNotify); AddWindow(root_, Window::None); } @@ -103,6 +106,16 @@ last_processed_event_ = events[event - 1].sequence(); } +void WindowCache::BeginDestroyTimer(std::unique_ptr<WindowCache> self) { + DCHECK_EQ(this, self.get()); + delete_when_destroy_timer_fires_ = false; + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, + base::BindOnce(&WindowCache::OnDestroyTimerExpired, + base::Unretained(this), std::move(self)), + kDestroyTimerInterval); +} + void WindowCache::SyncForTest() { do { // Perform a blocking sync to prevent spinning while waiting for replies. @@ -114,6 +127,7 @@ Window WindowCache::GetWindowAtPoint(gfx::Point point_px, Window window, const base::flat_set<Window>* ignore) { + delete_when_destroy_timer_fires_ = true; if (ignore && ignore->contains(window)) return Window::None; auto* info = GetInfo(window); @@ -251,12 +265,10 @@ return; WindowInfo& info = windows_[window]; info.parent = parent; - if (track_events_) { - // Events must be selected before getting the initial window info to - // prevent race conditions. - info.events = std::make_unique<XScopedEventSelector>( - window, EventMask::SubstructureNotify | EventMask::PropertyChange); - } + // Events must be selected before getting the initial window info to + // prevent race conditions. + info.events = std::make_unique<XScopedEventSelector>( + window, EventMask::SubstructureNotify | EventMask::PropertyChange); AddRequest(connection_->GetWindowAttributes(window), &WindowCache::OnGetWindowAttributesResponse, window); @@ -270,10 +282,8 @@ auto& shape = connection_->shape(); if (shape.present()) { - if (track_events_) { - info.shape_events = - std::make_unique<ScopedShapeEventSelector>(connection_, window); - } + info.shape_events = + std::make_unique<ScopedShapeEventSelector>(connection_, window); for (auto kind : {Shape::Sk::Bounding, Shape::Sk::Input}) { AddRequest(shape.GetRectangles(window, kind), @@ -381,4 +391,11 @@ } } +void WindowCache::OnDestroyTimerExpired(std::unique_ptr<WindowCache> self) { + if (!delete_when_destroy_timer_fires_) + return; // destroy `this` + + BeginDestroyTimer(std::move(self)); +} + } // namespace x11
diff --git a/ui/gfx/x/window_cache.h b/ui/gfx/x/window_cache.h index d62632f..2d11968 100644 --- a/ui/gfx/x/window_cache.h +++ b/ui/gfx/x/window_cache.h
@@ -77,7 +77,7 @@ // If `track_events` is true, the WindowCache will keep the cache state synced // with the server's state over time. It may be set to false if the cache is // short-lived, if only a single GetWindowAtPoint call is made. - WindowCache(Connection* connection, Window root, bool track_events); + WindowCache(Connection* connection, Window root); WindowCache(const WindowCache&) = delete; WindowCache& operator=(const WindowCache&) = delete; ~WindowCache() override; @@ -91,6 +91,10 @@ // Blocks until all outstanding requests are processed. void WaitUntilReady(); + // Destroys |self| if no calls to GetWindowAtPoint() are made within + // a time window. + void BeginDestroyTimer(std::unique_ptr<WindowCache> self); + void SyncForTest(); const std::unordered_map<Window, WindowInfo>& windows() const { @@ -142,11 +146,12 @@ Shape::Sk kind, Shape::GetRectanglesResponse response); + void OnDestroyTimerExpired(std::unique_ptr<WindowCache> self); + static WindowCache* instance_; Connection* const connection_; const Window root_; - const bool track_events_; const Atom gtk_frame_extents_; std::unique_ptr<XScopedEventSelector> root_events_; @@ -158,6 +163,9 @@ // processed in order. absl::optional<uint32_t> last_processed_event_; + // True iff GetWindowAtPoint() was called since the last timer interval. + bool delete_when_destroy_timer_fires_ = false; + // Although only one instance of WindowCache may be created at a time, the // instance will be created and destroyed as needed, so WeakPtrs are still // necessary.
diff --git a/ui/gfx/x/window_cache_unittest.cc b/ui/gfx/x/window_cache_unittest.cc index e973844e..a4c2378 100644 --- a/ui/gfx/x/window_cache_unittest.cc +++ b/ui/gfx/x/window_cache_unittest.cc
@@ -20,7 +20,7 @@ protected: void ResetCache() { cache_.reset(); - cache_ = std::make_unique<WindowCache>(connection_, root_, true); + cache_ = std::make_unique<WindowCache>(connection_, root_); cache_->SyncForTest(); }