webview2_com_sys/
declared_interfaces.rs

1use std::collections::BTreeSet;
2
3/// Generate a list of all `ICoreWebView2...Handler` interfaces declared in `WebView2.h`. This is
4/// for testing purposes to make sure they are all covered in
5/// [callback.rs](../../webview2-com/src/callback.rs).
6pub fn all_declared_callbacks() -> BTreeSet<&'static str> {
7    let mut interfaces = BTreeSet::new();
8
9    interfaces.insert("ICoreWebView2AcceleratorKeyPressedEventHandler");
10    interfaces.insert("ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler");
11    interfaces.insert("ICoreWebView2BasicAuthenticationRequestedEventHandler");
12    interfaces.insert("ICoreWebView2BrowserExtensionEnableCompletedHandler");
13    interfaces.insert("ICoreWebView2BrowserExtensionRemoveCompletedHandler");
14    interfaces.insert("ICoreWebView2BrowserProcessExitedEventHandler");
15    interfaces.insert("ICoreWebView2BytesReceivedChangedEventHandler");
16    interfaces.insert("ICoreWebView2CallDevToolsProtocolMethodCompletedHandler");
17    interfaces.insert("ICoreWebView2CapturePreviewCompletedHandler");
18    interfaces.insert("ICoreWebView2ClearBrowsingDataCompletedHandler");
19    interfaces.insert("ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler");
20    interfaces.insert("ICoreWebView2ClientCertificateRequestedEventHandler");
21    interfaces.insert("ICoreWebView2ContainsFullScreenElementChangedEventHandler");
22    interfaces.insert("ICoreWebView2ContentLoadingEventHandler");
23    interfaces.insert("ICoreWebView2ContextMenuRequestedEventHandler");
24    interfaces.insert("ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler");
25    interfaces.insert("ICoreWebView2CreateCoreWebView2ControllerCompletedHandler");
26    interfaces.insert("ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler");
27    interfaces.insert("ICoreWebView2CursorChangedEventHandler");
28    interfaces.insert("ICoreWebView2CustomItemSelectedEventHandler");
29    interfaces.insert("ICoreWebView2DOMContentLoadedEventHandler");
30    interfaces.insert("ICoreWebView2DevToolsProtocolEventReceivedEventHandler");
31    interfaces.insert("ICoreWebView2DocumentTitleChangedEventHandler");
32    interfaces.insert("ICoreWebView2DownloadStartingEventHandler");
33    interfaces.insert("ICoreWebView2EstimatedEndTimeChangedEventHandler");
34    interfaces.insert("ICoreWebView2ExecuteScriptCompletedHandler");
35    interfaces.insert("ICoreWebView2ExecuteScriptWithResultCompletedHandler");
36    interfaces.insert("ICoreWebView2FaviconChangedEventHandler");
37    interfaces.insert("ICoreWebView2FindActiveMatchIndexChangedEventHandler");
38    interfaces.insert("ICoreWebView2FindMatchCountChangedEventHandler");
39    interfaces.insert("ICoreWebView2FindStartCompletedHandler");
40    interfaces.insert("ICoreWebView2FocusChangedEventHandler");
41    interfaces.insert("ICoreWebView2FrameChildFrameCreatedEventHandler");
42    interfaces.insert("ICoreWebView2FrameContentLoadingEventHandler");
43    interfaces.insert("ICoreWebView2FrameCreatedEventHandler");
44    interfaces.insert("ICoreWebView2FrameDOMContentLoadedEventHandler");
45    interfaces.insert("ICoreWebView2FrameDestroyedEventHandler");
46    interfaces.insert("ICoreWebView2FrameNameChangedEventHandler");
47    interfaces.insert("ICoreWebView2FrameNavigationCompletedEventHandler");
48    interfaces.insert("ICoreWebView2FrameNavigationStartingEventHandler");
49    interfaces.insert("ICoreWebView2FramePermissionRequestedEventHandler");
50    interfaces.insert("ICoreWebView2FrameScreenCaptureStartingEventHandler");
51    interfaces.insert("ICoreWebView2FrameWebMessageReceivedEventHandler");
52    interfaces.insert("ICoreWebView2GetCookiesCompletedHandler");
53    interfaces.insert("ICoreWebView2GetFaviconCompletedHandler");
54    interfaces.insert("ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler");
55    interfaces.insert("ICoreWebView2GetProcessExtendedInfosCompletedHandler");
56    interfaces.insert("ICoreWebView2HistoryChangedEventHandler");
57    interfaces.insert("ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler");
58    interfaces.insert("ICoreWebView2IsDocumentPlayingAudioChangedEventHandler");
59    interfaces.insert("ICoreWebView2IsMutedChangedEventHandler");
60    interfaces.insert("ICoreWebView2LaunchingExternalUriSchemeEventHandler");
61    interfaces.insert("ICoreWebView2MoveFocusRequestedEventHandler");
62    interfaces.insert("ICoreWebView2NavigationCompletedEventHandler");
63    interfaces.insert("ICoreWebView2NavigationStartingEventHandler");
64    interfaces.insert("ICoreWebView2NewBrowserVersionAvailableEventHandler");
65    interfaces.insert("ICoreWebView2NewWindowRequestedEventHandler");
66    interfaces.insert("ICoreWebView2NonClientRegionChangedEventHandler");
67    interfaces.insert("ICoreWebView2NotificationCloseRequestedEventHandler");
68    interfaces.insert("ICoreWebView2NotificationReceivedEventHandler");
69    interfaces.insert("ICoreWebView2PermissionRequestedEventHandler");
70    interfaces.insert("ICoreWebView2PrintCompletedHandler");
71    interfaces.insert("ICoreWebView2PrintToPdfCompletedHandler");
72    interfaces.insert("ICoreWebView2PrintToPdfStreamCompletedHandler");
73    interfaces.insert("ICoreWebView2ProcessFailedEventHandler");
74    interfaces.insert("ICoreWebView2ProcessInfosChangedEventHandler");
75    interfaces.insert("ICoreWebView2ProfileAddBrowserExtensionCompletedHandler");
76    interfaces.insert("ICoreWebView2ProfileDeletedEventHandler");
77    interfaces.insert("ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler");
78    interfaces.insert("ICoreWebView2RasterizationScaleChangedEventHandler");
79    interfaces.insert("ICoreWebView2SaveAsUIShowingEventHandler");
80    interfaces.insert("ICoreWebView2SaveFileSecurityCheckStartingEventHandler");
81    interfaces.insert("ICoreWebView2ScreenCaptureStartingEventHandler");
82    interfaces.insert("ICoreWebView2ScriptDialogOpeningEventHandler");
83    interfaces.insert("ICoreWebView2ServerCertificateErrorDetectedEventHandler");
84    interfaces.insert("ICoreWebView2SetPermissionStateCompletedHandler");
85    interfaces.insert("ICoreWebView2ShowSaveAsUICompletedHandler");
86    interfaces.insert("ICoreWebView2SourceChangedEventHandler");
87    interfaces.insert("ICoreWebView2StateChangedEventHandler");
88    interfaces.insert("ICoreWebView2StatusBarTextChangedEventHandler");
89    interfaces.insert("ICoreWebView2TrySuspendCompletedHandler");
90    interfaces.insert("ICoreWebView2WebMessageReceivedEventHandler");
91    interfaces.insert("ICoreWebView2WebResourceRequestedEventHandler");
92    interfaces.insert("ICoreWebView2WebResourceResponseReceivedEventHandler");
93    interfaces.insert("ICoreWebView2WebResourceResponseViewGetContentCompletedHandler");
94    interfaces.insert("ICoreWebView2WindowCloseRequestedEventHandler");
95    interfaces.insert("ICoreWebView2ZoomFactorChangedEventHandler");
96
97    interfaces
98}
99
100/// Generate a list of all `ICoreWebView2EnvironmentOptions` interfaces declared in `WebView2.h`.
101/// This is for testing purposes to make sure they are all covered in
102/// [options.rs](../../webview2-com/src/options.rs).
103pub fn all_declared_options() -> BTreeSet<&'static str> {
104    let mut interfaces = BTreeSet::new();
105
106    interfaces.insert("ICoreWebView2EnvironmentOptions");
107    interfaces.insert("ICoreWebView2EnvironmentOptions2");
108    interfaces.insert("ICoreWebView2EnvironmentOptions3");
109    interfaces.insert("ICoreWebView2EnvironmentOptions4");
110    interfaces.insert("ICoreWebView2EnvironmentOptions5");
111    interfaces.insert("ICoreWebView2EnvironmentOptions6");
112    interfaces.insert("ICoreWebView2EnvironmentOptions7");
113    interfaces.insert("ICoreWebView2EnvironmentOptions8");
114
115    interfaces
116}