MCPcopy Create free account
hub / github.com/MicrosoftEdge/WebView2Samples / Extensions

Class Extensions

SampleApps/WebView2WpfBrowser/Extensions.xaml.cs:20–155  ·  view source on GitHub ↗

Interaction logic for Extensions.xaml

Source from the content-addressed store, hash-verified

18 /// Interaction logic for Extensions.xaml
19 /// </summary>
20 public partial class Extensions : Window
21 {
22 private CoreWebView2 m_coreWebView2;
23 public Extensions(CoreWebView2 coreWebView2)
24 {
25 m_coreWebView2 = coreWebView2;
26 InitializeComponent();
27 _ = FillViewAsync();
28 }
29
30 public class ListEntry
31 {
32 public string Name;
33 public string Id;
34 public bool Enabled;
35
36 public override string ToString()
37 {
38 return (Enabled ? "" : "Disabled ") + Name + " (" + Id + ")";
39 }
40 }
41
42 List<ListEntry> m_listData = new List<ListEntry>();
43
44 private async System.Threading.Tasks.Task FillViewAsync()
45 {
46 IReadOnlyList<CoreWebView2BrowserExtension> extensionsList = await m_coreWebView2.Profile.GetBrowserExtensionsAsync();
47
48 m_listData.Clear();
49 for (int i = 0; i < extensionsList.Count; ++i)
50 {
51 ListEntry entry = new ListEntry();
52 entry.Name = extensionsList[i].Name;
53 entry.Id = extensionsList[i].Id;
54 entry.Enabled = extensionsList[i].IsEnabled;
55 m_listData.Add(entry);
56 }
57 ExtensionsList.ItemsSource = m_listData;
58 ExtensionsList.Items.Refresh();
59 }
60
61 private void ExtensionsToggleEnabled(object sender, RoutedEventArgs e)
62 {
63 _ = ExtensionsToggleEnabledAsync(sender, e);
64 }
65
66 private async System.Threading.Tasks.Task ExtensionsToggleEnabledAsync(object sender, RoutedEventArgs e)
67 {
68 ListEntry entry = (ListEntry)ExtensionsList.SelectedItem;
69 IReadOnlyList<CoreWebView2BrowserExtension> extensionsList = await m_coreWebView2.Profile.GetBrowserExtensionsAsync();
70 bool found = false;
71 for (int i = 0; i < extensionsList.Count; ++i)
72 {
73 if (extensionsList[i].Id == entry.Id)
74 {
75 try
76 {
77 await extensionsList[i].EnableAsync(extensionsList[i].IsEnabled ? false : true);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected