Skip to main content

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