diff --git a/CefGlue.Common/CommonBrowserAdapter.cs b/CefGlue.Common/CommonBrowserAdapter.cs
index 5f249930..df8d88d7 100644
--- a/CefGlue.Common/CommonBrowserAdapter.cs
+++ b/CefGlue.Common/CommonBrowserAdapter.cs
@@ -173,7 +173,7 @@ private void NavigateTo(string url)
// Remove leading whitespace from the URL
url = url.TrimStart();
- // to play safe, load url must be called after OnBrowserCreated(CefBrowser) which runs on CefThreadId.UI,
+ // to play safe, load url must be called after OnBrowserCreated(CefBrowser) which runs on CefThreadId.UI,
// otherwise the navigation will be aborted
ActionTask.Run(() =>
{
@@ -599,6 +599,8 @@ void ICefBrowserHost.HandleLoadStart(CefBrowser browser, CefFrame frame, CefTran
void ICefBrowserHost.HandleLoadEnd(CefBrowser browser, CefFrame frame, int httpStatusCode)
{
+ // Register all objects
+ _objectRegistry.SetBrowser(browser);
LoadEnd?.Invoke(_eventsEmitter, new LoadEndEventArgs(frame, httpStatusCode));
}
diff --git a/CefGlue.Common/ObjectBinding/NativeObjectRegistry.cs b/CefGlue.Common/ObjectBinding/NativeObjectRegistry.cs
index f0450bcb..b3861731 100644
--- a/CefGlue.Common/ObjectBinding/NativeObjectRegistry.cs
+++ b/CefGlue.Common/ObjectBinding/NativeObjectRegistry.cs
@@ -13,7 +13,7 @@ internal class NativeObjectRegistry : IDisposable
private readonly object _registrationSyncRoot = new object();
///
- ///
+ ///
///
///
///
@@ -24,7 +24,7 @@ public bool Register(object obj, string name, MethodCallHandler methodHandler =
{
return false;
}
-
+
var nativeObj = new NativeObject(name, obj, methodHandler);
lock (_registrationSyncRoot)
@@ -36,8 +36,9 @@ public bool Register(object obj, string name, MethodCallHandler methodHandler =
}
_registeredObjects.Add(name, nativeObj);
-
- if (_browser != null)
+
+ // If the browser is loading the object will be registered by CommonBrowserAdapter.HandleLoadEnd
+ if (_browser != null && !_browser.IsLoading)
{
SendRegistrationMessage(nativeObj);
}