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("ICoreWebView2FocusChangedEventHandler");
38    interfaces.insert("ICoreWebView2FrameContentLoadingEventHandler");
39    interfaces.insert("ICoreWebView2FrameCreatedEventHandler");
40    interfaces.insert("ICoreWebView2FrameDOMContentLoadedEventHandler");
41    interfaces.insert("ICoreWebView2FrameDestroyedEventHandler");
42    interfaces.insert("ICoreWebView2FrameNameChangedEventHandler");
43    interfaces.insert("ICoreWebView2FrameNavigationCompletedEventHandler");
44    interfaces.insert("ICoreWebView2FrameNavigationStartingEventHandler");
45    interfaces.insert("ICoreWebView2FramePermissionRequestedEventHandler");
46    interfaces.insert("ICoreWebView2FrameScreenCaptureStartingEventHandler");
47    interfaces.insert("ICoreWebView2FrameWebMessageReceivedEventHandler");
48    interfaces.insert("ICoreWebView2GetCookiesCompletedHandler");
49    interfaces.insert("ICoreWebView2GetFaviconCompletedHandler");
50    interfaces.insert("ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler");
51    interfaces.insert("ICoreWebView2GetProcessExtendedInfosCompletedHandler");
52    interfaces.insert("ICoreWebView2HistoryChangedEventHandler");
53    interfaces.insert("ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler");
54    interfaces.insert("ICoreWebView2IsDocumentPlayingAudioChangedEventHandler");
55    interfaces.insert("ICoreWebView2IsMutedChangedEventHandler");
56    interfaces.insert("ICoreWebView2LaunchingExternalUriSchemeEventHandler");
57    interfaces.insert("ICoreWebView2MoveFocusRequestedEventHandler");
58    interfaces.insert("ICoreWebView2NavigationCompletedEventHandler");
59    interfaces.insert("ICoreWebView2NavigationStartingEventHandler");
60    interfaces.insert("ICoreWebView2NewBrowserVersionAvailableEventHandler");
61    interfaces.insert("ICoreWebView2NewWindowRequestedEventHandler");
62    interfaces.insert("ICoreWebView2NonClientRegionChangedEventHandler");
63    interfaces.insert("ICoreWebView2NotificationCloseRequestedEventHandler");
64    interfaces.insert("ICoreWebView2NotificationReceivedEventHandler");
65    interfaces.insert("ICoreWebView2PermissionRequestedEventHandler");
66    interfaces.insert("ICoreWebView2PrintCompletedHandler");
67    interfaces.insert("ICoreWebView2PrintToPdfCompletedHandler");
68    interfaces.insert("ICoreWebView2PrintToPdfStreamCompletedHandler");
69    interfaces.insert("ICoreWebView2ProcessFailedEventHandler");
70    interfaces.insert("ICoreWebView2ProcessInfosChangedEventHandler");
71    interfaces.insert("ICoreWebView2ProfileAddBrowserExtensionCompletedHandler");
72    interfaces.insert("ICoreWebView2ProfileDeletedEventHandler");
73    interfaces.insert("ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler");
74    interfaces.insert("ICoreWebView2RasterizationScaleChangedEventHandler");
75    interfaces.insert("ICoreWebView2SaveAsUIShowingEventHandler");
76    interfaces.insert("ICoreWebView2SaveFileSecurityCheckStartingEventHandler");
77    interfaces.insert("ICoreWebView2ScreenCaptureStartingEventHandler");
78    interfaces.insert("ICoreWebView2ScriptDialogOpeningEventHandler");
79    interfaces.insert("ICoreWebView2ServerCertificateErrorDetectedEventHandler");
80    interfaces.insert("ICoreWebView2SetPermissionStateCompletedHandler");
81    interfaces.insert("ICoreWebView2ShowSaveAsUICompletedHandler");
82    interfaces.insert("ICoreWebView2SourceChangedEventHandler");
83    interfaces.insert("ICoreWebView2StateChangedEventHandler");
84    interfaces.insert("ICoreWebView2StatusBarTextChangedEventHandler");
85    interfaces.insert("ICoreWebView2TrySuspendCompletedHandler");
86    interfaces.insert("ICoreWebView2WebMessageReceivedEventHandler");
87    interfaces.insert("ICoreWebView2WebResourceRequestedEventHandler");
88    interfaces.insert("ICoreWebView2WebResourceResponseReceivedEventHandler");
89    interfaces.insert("ICoreWebView2WebResourceResponseViewGetContentCompletedHandler");
90    interfaces.insert("ICoreWebView2WindowCloseRequestedEventHandler");
91    interfaces.insert("ICoreWebView2ZoomFactorChangedEventHandler");
92
93    interfaces
94}
95
96/// Generate a list of all `ICoreWebView2EnvironmentOptions` interfaces declared in `WebView2.h`.
97/// This is for testing purposes to make sure they are all covered in
98/// [options.rs](../../webview2-com/src/options.rs).
99pub fn all_declared_options() -> BTreeSet<&'static str> {
100    let mut interfaces = BTreeSet::new();
101
102    interfaces.insert("ICoreWebView2EnvironmentOptions");
103    interfaces.insert("ICoreWebView2EnvironmentOptions2");
104    interfaces.insert("ICoreWebView2EnvironmentOptions3");
105    interfaces.insert("ICoreWebView2EnvironmentOptions4");
106    interfaces.insert("ICoreWebView2EnvironmentOptions5");
107    interfaces.insert("ICoreWebView2EnvironmentOptions6");
108    interfaces.insert("ICoreWebView2EnvironmentOptions7");
109    interfaces.insert("ICoreWebView2EnvironmentOptions8");
110
111    interfaces
112}