Skip to content

Commit 1a75c9f

Browse files
committed
Merge pull request #798 from cefsharp/feature/added-load-started-event-handler
Added LoadStarted event handler
2 parents 5222541 + 15085de commit 1a75c9f

File tree

10 files changed

+53
-16
lines changed

10 files changed

+53
-16
lines changed

CefSharp.WinForms/WebView.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -332,16 +332,19 @@ namespace WinForms
332332
ConsoleMessage(this, gcnew ConsoleMessageEventArgs(message, source, line));
333333
}
334334

335-
void WebView::OnFrameLoadStart(String^ url)
335+
void WebView::OnFrameLoadStart(String^ url, bool isMainFrame)
336336
{
337337
_browserCore->OnFrameLoadStart();
338+
339+
LoadStartedEventArgs^ args = gcnew LoadStartedEventArgs(url, isMainFrame);
340+
LoadStarted(this, args);
338341
}
339342

340-
void WebView::OnFrameLoadEnd(String^ url)
343+
void WebView::OnFrameLoadEnd(String^ url, bool isMainFrame)
341344
{
342345
_browserCore->OnFrameLoadEnd();
343346

344-
LoadCompletedEventArgs^ args = gcnew LoadCompletedEventArgs(url);
347+
LoadCompletedEventArgs^ args = gcnew LoadCompletedEventArgs(url, isMainFrame);
345348
LoadCompleted(this, args);
346349
}
347350

CefSharp.WinForms/WebView.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ namespace WinForms
4646
virtual event ConsoleMessageEventHandler^ ConsoleMessage;
4747
virtual event KeyEventHandler^ BrowserKey;
4848
virtual event LoadCompletedEventHandler^ LoadCompleted;
49+
virtual event LoadStartedEventHandler^ LoadStarted;
4950

5051
WebView()
5152
{
@@ -181,8 +182,8 @@ namespace WinForms
181182

182183
virtual void SetNavState(bool isLoading, bool canGoBack, bool canGoForward);
183184

184-
virtual void OnFrameLoadStart(String^ url);
185-
virtual void OnFrameLoadEnd(String^ url);
185+
virtual void OnFrameLoadStart(String^ url, bool isMainFrame);
186+
virtual void OnFrameLoadEnd(String^ url, bool isMainFrame);
186187
virtual void OnTakeFocus(bool next);
187188
virtual void OnConsoleMessage(String^ message, String^ source, int line);
188189

CefSharp.Wpf/WebView.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -623,16 +623,19 @@ namespace CefSharp
623623
return _browserCore->GetBoundObjects();
624624
}
625625

626-
void WebView::OnFrameLoadStart(String^ url)
626+
void WebView::OnFrameLoadStart(String^ url, bool isMainFrame)
627627
{
628628
_browserCore->OnFrameLoadStart();
629+
630+
LoadStartedEventArgs^ args = gcnew LoadStartedEventArgs(url, isMainFrame);
631+
LoadStarted(this, args);
629632
}
630633

631-
void WebView::OnFrameLoadEnd(String^ url)
634+
void WebView::OnFrameLoadEnd(String^ url, bool isMainFrame)
632635
{
633636
_browserCore->OnFrameLoadEnd();
634637

635-
LoadCompletedEventArgs^ args = gcnew LoadCompletedEventArgs(url);
638+
LoadCompletedEventArgs^ args = gcnew LoadCompletedEventArgs(url, isMainFrame);
636639
LoadCompleted(this, args);
637640
}
638641

CefSharp.Wpf/WebView.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ namespace CefSharp
128128
virtual event ConsoleMessageEventHandler^ ConsoleMessage;
129129
virtual event KeyEventHandler^ BrowserKey;
130130
virtual event LoadCompletedEventHandler^ LoadCompleted;
131+
virtual event LoadStartedEventHandler^ LoadStarted;
131132

132133
WebView()
133134
{
@@ -291,8 +292,8 @@ namespace CefSharp
291292

292293
virtual void SetNavState(bool isLoading, bool canGoBack, bool canGoForward);
293294

294-
virtual void OnFrameLoadStart(String^ url);
295-
virtual void OnFrameLoadEnd(String^ url);
295+
virtual void OnFrameLoadStart(String^ url, bool isMainFrame);
296+
virtual void OnFrameLoadEnd(String^ url, bool isMainFrame);
296297
virtual void OnTakeFocus(bool next);
297298
virtual void OnConsoleMessage(String^ message, String^ source, int line);
298299

CefSharp/CefSharp.vcxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@
165165
<ClInclude Include="ISchemeHandler.h" />
166166
<ClInclude Include="IWebBrowser.h" />
167167
<ClInclude Include="LoadCompletedEventArgs.h" />
168+
<ClInclude Include="LoadStartedEventArgs.h" />
168169
<ClInclude Include="MCefRefPtr.h" />
169170
<ClInclude Include="Internals\JavascriptBinding\PropertyAccessor.h" />
170171
<ClInclude Include="RenderClientAdapter.h" />

CefSharp/CefSharp.vcxproj.filters

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,5 +190,8 @@
190190
<ClInclude Include="ISchemeHandler.h">
191191
<Filter>Header Files</Filter>
192192
</ClInclude>
193+
<ClInclude Include="LoadStartedEventArgs.h">
194+
<Filter>Header Files</Filter>
195+
</ClInclude>
193196
</ItemGroup>
194197
</Project>

CefSharp/ClientAdapter.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ namespace CefSharp
123123
_browserControl->SetNavState(true, false, false);
124124
}
125125

126-
_browserControl->OnFrameLoadStart(toClr(frame->GetURL()));
126+
_browserControl->OnFrameLoadStart(toClr(frame->GetURL()), frame->IsMain());
127127
}
128128

129129
void ClientAdapter::OnLoadEnd(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, int httpStatusCode)
@@ -139,7 +139,7 @@ namespace CefSharp
139139
_browserControl->SetNavState(false, browser->CanGoBack(), browser->CanGoForward());
140140
}
141141

142-
_browserControl->OnFrameLoadEnd(toClr(frame->GetURL()));
142+
_browserControl->OnFrameLoadEnd(toClr(frame->GetURL()), frame->IsMain());
143143
}
144144

145145
bool ClientAdapter::OnLoadError(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, ErrorCode errorCode, const CefString& failedUrl, CefString& errorText)

CefSharp/IWebBrowser.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include "BrowserCore.h"
55
#include "ConsoleMessageEventArgs.h"
66
#include "LoadCompletedEventArgs.h"
7+
#include "LoadStartedEventArgs.h"
78

89
using namespace System;
910
using namespace System::ComponentModel;
@@ -65,8 +66,8 @@ namespace CefSharp
6566

6667
void SetNavState(bool isLoading, bool canGoBack, bool canGoForward);
6768

68-
void OnFrameLoadStart(String^ url);
69-
void OnFrameLoadEnd(String^ url);
69+
void OnFrameLoadStart(String^ url, bool isMainFrame);
70+
void OnFrameLoadEnd(String^ url, bool isMainFrame);
7071
void OnTakeFocus(bool next);
7172
void OnConsoleMessage(String^ message, String^ source, int line);
7273

CefSharp/LoadCompletedEventArgs.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@ namespace CefSharp
88
public ref class LoadCompletedEventArgs : EventArgs
99
{
1010
String^ _url;
11+
bool _isMainFrame;
1112

1213
public:
13-
LoadCompletedEventArgs(String^ url)
14-
: _url(url) {}
14+
LoadCompletedEventArgs(String^ url, bool isMainFrame)
15+
: _url(url), _isMainFrame(isMainFrame) {}
1516

1617
property String^ Url { String^ get() { return _url; } }
18+
property bool IsMainFrame { bool get() { return _isMainFrame; } }
1719
};
1820

1921
public delegate void LoadCompletedEventHandler(Object^ sender, LoadCompletedEventArgs^ url);

CefSharp/LoadStartedEventArgs.h

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#include "Stdafx.h"
2+
#pragma once
3+
4+
using namespace System;
5+
6+
namespace CefSharp
7+
{
8+
public ref class LoadStartedEventArgs : EventArgs
9+
{
10+
String^ _url;
11+
bool _isMainFrame;
12+
13+
public:
14+
LoadStartedEventArgs(String^ url, bool isMainFrame)
15+
: _url(url), _isMainFrame(isMainFrame) {}
16+
17+
property String^ Url { String^ get() { return _url; } }
18+
property bool IsMainFrame { bool get() { return _isMainFrame; } }
19+
};
20+
21+
public delegate void LoadStartedEventHandler(Object^ sender, LoadStartedEventArgs^ url);
22+
}

0 commit comments

Comments
 (0)