Skip to content
This repository was archived by the owner on Aug 31, 2021. It is now read-only.

Commit 1a2da22

Browse files
committed
[[ Bug 16694 ]] Add OnNavigationRequestUnhandled event to browser event handler
1 parent fb0e438 commit 1a2da22

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

engine/src/browser.lcb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,9 @@ public constant kMCBrowserRequestTypeMap is ["navigate", "documentLoad"]
149149
public constant kMCBrowserRequestStateBegin is 0
150150
public constant kMCBrowserRequestStateComplete is 1
151151
public constant kMCBrowserRequestStateFailed is 2
152+
public constant kMCBrowserRequestStateUnhandled is 3
152153

153-
public constant kMCBrowserRequestStateMap is ["begin", "complete", "failed"]
154+
public constant kMCBrowserRequestStateMap is ["begin", "complete", "failed", "unhandled"]
154155

155156
--
156157

libbrowser/include/libbrowser.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ class MCBrowserEventHandler : public MCBrowserRefCounted
4848
virtual void OnDocumentLoadBegin(MCBrowser *p_browser, bool p_in_frame, const char *p_url) = 0;
4949
virtual void OnDocumentLoadComplete(MCBrowser *p_browser, bool p_in_frame, const char *p_url) = 0;
5050
virtual void OnDocumentLoadFailed(MCBrowser *p_browser, bool p_in_frame, const char *p_url, const char *p_error) = 0;
51+
52+
virtual void OnNavigationRequestUnhandled(MCBrowser *p_browser, bool p_in_frame, const char *p_url) = 0;
5153
};
5254

5355
// Javascript call handler
@@ -256,6 +258,7 @@ enum MCBrowserRequestState
256258
kMCBrowserRequestStateBegin,
257259
kMCBrowserRequestStateComplete,
258260
kMCBrowserRequestStateFailed,
261+
kMCBrowserRequestStateUnhandled,
259262
};
260263

261264
typedef void (*MCBrowserRequestCallback)(void *p_context, MCBrowserRef p_browser, MCBrowserRequestType p_type, MCBrowserRequestState p_state, bool p_in_frame, const char *p_url, const char *p_error);

libbrowser/src/libbrowser.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,12 @@ void MCBrowserBase::OnDocumentLoadFailed(bool p_in_frame, const char *p_url, con
9797
m_event_handler->OnDocumentLoadFailed(this, p_in_frame, p_url, p_error);
9898
}
9999

100+
void MCBrowserBase::OnNavigationRequestUnhandled(bool p_in_frame, const char *p_url)
101+
{
102+
if (m_event_handler)
103+
m_event_handler->OnNavigationRequestUnhandled(this, p_in_frame, p_url);
104+
}
105+
100106
void MCBrowserBase::SetJavaScriptHandler(MCBrowserJavaScriptHandler *p_handler)
101107
{
102108
if (p_handler)
@@ -396,6 +402,12 @@ class MCBrowserEventHandlerWrapper : public MCBrowserEventHandler
396402
m_callback(m_context, p_browser, kMCBrowserRequestTypeDocumentLoad, kMCBrowserRequestStateFailed, p_in_frame, p_url, p_error);
397403
}
398404

405+
virtual void OnNavigationRequestUnhandled(MCBrowser *p_browser, bool p_in_frame, const char *p_url)
406+
{
407+
if (m_callback)
408+
m_callback(m_context, p_browser, kMCBrowserRequestTypeNavigate, kMCBrowserRequestStateUnhandled, p_in_frame, p_url, nil);
409+
}
410+
399411
private:
400412
MCBrowserRequestCallback m_callback;
401413
void *m_context;

libbrowser/src/libbrowser_internal.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ class MCBrowserBase : public MCBrowser
4848
void OnDocumentLoadComplete(bool p_in_frame, const char *p_url);
4949
void OnDocumentLoadFailed(bool p_in_frame, const char *p_url, const char *p_error);
5050

51+
void OnNavigationRequestUnhandled(bool p_in_frame, const char *p_url);
52+
5153
void OnJavaScriptCall(const char *p_handler, MCBrowserListRef p_params);
5254

5355
static bool BrowserListAdd(MCBrowser *p_browser);

0 commit comments

Comments
 (0)