Skip to content

Commit 4569c93

Browse files
committed
Add DOMContentLoaded
1 parent edd4316 commit 4569c93

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

src/Avalonia.WebView2.Sample/WebView2Compat.xaml.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,21 @@ public WebView2Compat()
99
{
1010
InitializeComponent();
1111
WebView2 = this.FindControl<AvaloniaWebView2>("WebView2");
12+
WebView2.IsVisible = false;
1213
TextBlock = this.FindControl<TextBlock>("TextBlock");
1314
if (!AvaloniaWebView2.IsSupported)
1415
{
1516
TextBlock.Text = "Couldn't find a compatible Webview2 Runtime installation to host WebViews.";
1617
}
18+
else
19+
{
20+
WebView2.DOMContentLoaded += WebView2_DOMContentLoaded;
21+
}
22+
}
23+
24+
void WebView2_DOMContentLoaded(object? sender, CoreWebView2DOMContentLoadedEventArgs e)
25+
{
26+
WebView2.IsVisible = true;
1727
}
1828

1929
private void InitializeComponent()

src/Avalonia.WebView2/WebView2.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ void UnsubscribeHandlersAndCloseController(bool browserCrashed = false)
179179
CoreWebView2.SourceChanged -= new EventHandler<CoreWebView2SourceChangedEventArgs>(CoreWebView2_SourceChanged);
180180
CoreWebView2.WebMessageReceived -= new EventHandler<CoreWebView2WebMessageReceivedEventArgs>(CoreWebView2_WebMessageReceived);
181181
CoreWebView2.ContentLoading -= new EventHandler<CoreWebView2ContentLoadingEventArgs>(CoreWebView2_ContentLoading);
182+
CoreWebView2.DOMContentLoaded -= new EventHandler<CoreWebView2DOMContentLoadedEventArgs>(CoreWebView2_DOMContentLoaded);
182183
CoreWebView2.ProcessFailed -= new EventHandler<CoreWebView2ProcessFailedEventArgs>(CoreWebView2_ProcessFailed);
183184
_coreWebView2Controller!.ZoomFactorChanged -= new EventHandler<object>(CoreWebView2Controller_ZoomFactorChanged);
184185
//_coreWebView2Controller.MoveFocusRequested -= new EventHandler<CoreWebView2MoveFocusRequestedEventArgs>(CoreWebView2Controller_MoveFocusRequested);
@@ -372,7 +373,7 @@ async Task InitCoreWebView2Async(CoreWebView2Environment? environment = null, Co
372373
sender._coreWebView2Controller.ZoomFactor = sender._zoomFactor;
373374
sender._coreWebView2Controller.DefaultBackgroundColor = sender._defaultBackgroundColor;
374375
OnBoundsChanged(EventArgs.Empty);
375-
sender._coreWebView2Controller.IsVisible = false;
376+
sender._coreWebView2Controller.IsVisible = IsVisible;
376377
try
377378
{
378379
sender._coreWebView2Controller.AllowExternalDrop = sender._allowExternalDrop;
@@ -388,6 +389,7 @@ async Task InitCoreWebView2Async(CoreWebView2Environment? environment = null, Co
388389
sender.CoreWebView2.SourceChanged += new EventHandler<CoreWebView2SourceChangedEventArgs>(sender.CoreWebView2_SourceChanged);
389390
sender.CoreWebView2.WebMessageReceived += new EventHandler<CoreWebView2WebMessageReceivedEventArgs>(sender.CoreWebView2_WebMessageReceived);
390391
sender.CoreWebView2.ContentLoading += new EventHandler<CoreWebView2ContentLoadingEventArgs>(sender.CoreWebView2_ContentLoading);
392+
sender.CoreWebView2.DOMContentLoaded += new EventHandler<CoreWebView2DOMContentLoadedEventArgs>(sender.CoreWebView2_DOMContentLoaded);
391393
sender.CoreWebView2.ProcessFailed += new EventHandler<CoreWebView2ProcessFailedEventArgs>(sender.CoreWebView2_ProcessFailed);
392394
if (sender.Focusable)
393395
sender._coreWebView2Controller.MoveFocus(CoreWebView2MoveFocusReason.Programmatic);
@@ -839,6 +841,8 @@ void VerifyBrowserNotCrashedGuard()
839841
/// </summary>
840842
/// <seealso cref="E:Microsoft.Web.WebView2.Core.CoreWebView2.ContentLoading" />
841843
public event EventHandler<CoreWebView2ContentLoadingEventArgs>? ContentLoading;
844+
845+
public event EventHandler<CoreWebView2DOMContentLoadedEventArgs>? DOMContentLoaded;
842846
#endif
843847

844848
/// <summary>
@@ -884,13 +888,20 @@ void CoreWebView2_SourceChanged(object? sender, CoreWebView2SourceChangedEventAr
884888

885889
void CoreWebView2_ContentLoading(object? sender, CoreWebView2ContentLoadingEventArgs e)
886890
{
887-
if (_coreWebView2Controller != null && !_coreWebView2Controller.IsVisible) _coreWebView2Controller.IsVisible = true;
888891
var contentLoading = ContentLoading;
889892
if (contentLoading == null)
890893
return;
891894
contentLoading(this, e);
892895
}
893896

897+
void CoreWebView2_DOMContentLoaded(object? sender, CoreWebView2DOMContentLoadedEventArgs e)
898+
{
899+
var contentLoading = DOMContentLoaded;
900+
if (contentLoading == null)
901+
return;
902+
contentLoading(this, e);
903+
}
904+
894905
void CoreWebView2_ProcessFailed(object? sender, CoreWebView2ProcessFailedEventArgs e)
895906
{
896907
if (e.ProcessFailedKind != CoreWebView2ProcessFailedKind.BrowserProcessExited)

0 commit comments

Comments
 (0)