@@ -84,6 +84,154 @@ public event Action OnDidFinishLoad
8484
8585 private event Action _didFinishLoad ;
8686
87+ /// <summary>
88+ /// Emitted when any frame (including main) starts navigating.
89+ /// </summary>
90+ public event Action < string > OnDidStartNavigation
91+ {
92+ add
93+ {
94+ if ( _didStartNavigation == null )
95+ {
96+ BridgeConnector . Socket . On < string > ( "webContents-didStartNavigation" + Id , ( url ) =>
97+ {
98+ _didStartNavigation ( url ) ;
99+ } ) ;
100+
101+ BridgeConnector . Socket . Emit ( "register-webContents-didStartNavigation" , Id ) ;
102+ }
103+ _didStartNavigation += value ;
104+ }
105+ remove
106+ {
107+ _didStartNavigation -= value ;
108+
109+ if ( _didStartNavigation == null )
110+ BridgeConnector . Socket . Off ( "webContents-didStartNavigation" + Id ) ;
111+ }
112+ }
113+
114+ private event Action < string > _didStartNavigation ;
115+
116+ /// <summary>
117+ /// Emitted when a main frame navigation is done.
118+ /// This event is not emitted for in-page navigations, such as clicking anchor links or updating the window.location.hash. Use did-navigate-in-page event for this purpose.
119+ /// </summary>
120+ public event Action < OnDidNavigateInfo > OnDidNavigate
121+ {
122+ add
123+ {
124+ if ( _didNavigate == null )
125+ {
126+ BridgeConnector . Socket . On < OnDidNavigateInfo > ( "webContents-didNavigate" + Id , ( data ) =>
127+ {
128+ _didNavigate ( data ) ;
129+ } ) ;
130+
131+ BridgeConnector . Socket . Emit ( "register-webContents-didNavigate" , Id ) ;
132+ }
133+ _didNavigate += value ;
134+ }
135+ remove
136+ {
137+ _didNavigate -= value ;
138+
139+ if ( _didNavigate == null )
140+ BridgeConnector . Socket . Off ( "webContents-didNavigate" + Id ) ;
141+ }
142+ }
143+
144+ private event Action < OnDidNavigateInfo > _didNavigate ;
145+
146+ /// <summary>
147+ /// Emitted when a server side redirect occurs during navigation. For example a 302 redirect.
148+ /// This event will be emitted after OnDidStartNavigation and always before the OnDidRedirectNavigation event for the same navigation.
149+ /// </summary>
150+ public event Action < string > OnWillRedirect
151+ {
152+ add
153+ {
154+ if ( _willRedirect == null )
155+ {
156+ BridgeConnector . Socket . On < string > ( "webContents-willRedirect" + Id , ( url ) =>
157+ {
158+ _willRedirect ( url ) ;
159+ } ) ;
160+
161+ BridgeConnector . Socket . Emit ( "register-webContents-willRedirect" , Id ) ;
162+ }
163+ _willRedirect += value ;
164+ }
165+ remove
166+ {
167+ _willRedirect -= value ;
168+
169+ if ( _willRedirect == null )
170+ BridgeConnector . Socket . Off ( "webContents-willRedirect" + Id ) ;
171+ }
172+ }
173+
174+ private event Action < string > _willRedirect ;
175+
176+ /// <summary>
177+ /// Emitted after a server side redirect occurs during navigation. For example a 302 redirect.
178+ /// </summary>
179+ public event Action < string > OnDidRedirectNavigation
180+ {
181+ add
182+ {
183+ if ( _didRedirectNavigation == null )
184+ {
185+ BridgeConnector . Socket . On ( "webContents-didRedirectNavigation" + Id , ( url ) =>
186+ {
187+ _didRedirectNavigation ( url ? . ToString ( ) ) ;
188+ } ) ;
189+
190+ BridgeConnector . Socket . Emit ( "register-webContents-didRedirectNavigation" , Id ) ;
191+ }
192+ _didRedirectNavigation += value ;
193+ }
194+ remove
195+ {
196+ _didRedirectNavigation -= value ;
197+
198+ if ( _didRedirectNavigation == null )
199+ BridgeConnector . Socket . Off ( "webContents-didRedirectNavigation" + Id ) ;
200+ }
201+ }
202+
203+ private event Action < string > _didRedirectNavigation ;
204+
205+
206+ /// <summary>
207+ /// This event is like OnDidFinishLoad but emitted when the load failed.
208+ /// </summary>
209+ public event Action < OnDidFailLoadInfo > OnDidFailLoad
210+ {
211+ add
212+ {
213+ if ( _didFailLoad == null )
214+ {
215+ BridgeConnector . Socket . On ( "webContents-willRedirect" + Id , ( data ) =>
216+ {
217+ _didFailLoad ( ( ( JObject ) data ) . ToObject < OnDidFailLoadInfo > ( ) ) ;
218+ } ) ;
219+
220+ BridgeConnector . Socket . Emit ( "register-webContents-willRedirect" , Id ) ;
221+ }
222+ _didFailLoad += value ;
223+ }
224+ remove
225+ {
226+ _didFailLoad -= value ;
227+
228+ if ( _didFailLoad == null )
229+ BridgeConnector . Socket . Off ( "webContents-willRedirect" + Id ) ;
230+ }
231+ }
232+
233+ private event Action < OnDidFailLoadInfo > _didFailLoad ;
234+
87235 /// <summary>
88236 /// Emitted when an input event is sent to the WebContents.
89237 /// </summary>
0 commit comments