Skip to content

Commit 1723137

Browse files
committed
feat(scheme): add userdata support
1 parent e85a25b commit 1723137

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed

include/saucer/scheme.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ extern "C"
4949
SAUCER_EXPORT void saucer_scheme_executor_reject(saucer_scheme_executor *, saucer_scheme_error);
5050
SAUCER_EXPORT void saucer_scheme_executor_accept(saucer_scheme_executor *, saucer_scheme_response *);
5151

52-
typedef void (*saucer_scheme_handler)(saucer_scheme_request *, saucer_scheme_executor *);
52+
typedef void (*saucer_scheme_handler)(saucer_scheme_request *, saucer_scheme_executor *, void *);
5353

5454
#ifdef __cplusplus
5555
}

include/saucer/webview.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,8 @@ extern "C"
148148
SAUCER_EXPORT void saucer_webview_uninject_all(saucer_webview *);
149149
SAUCER_EXPORT void saucer_webview_uninject(saucer_webview *, size_t);
150150

151-
SAUCER_EXPORT void saucer_webview_handle_scheme(saucer_webview *, const char *, saucer_scheme_handler);
151+
SAUCER_EXPORT void saucer_webview_handle_scheme(saucer_webview *, const char *, saucer_scheme_handler,
152+
void *userdata);
152153
SAUCER_EXPORT void saucer_webview_remove_scheme(saucer_webview *, const char *);
153154

154155
SAUCER_EXPORT size_t saucer_webview_on(saucer_webview *, saucer_webview_event, void *callback, bool clearable,

src/webview.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,12 @@ extern "C"
299299
(*webview)->uninject(id);
300300
}
301301

302-
void saucer_webview_handle_scheme(saucer_webview *webview, const char *scheme, saucer_scheme_handler handler)
302+
void saucer_webview_handle_scheme(saucer_webview *webview, const char *scheme, saucer_scheme_handler handler,
303+
void *userdata)
303304
{
304305
(*webview)->handle_scheme(
305-
scheme, [handler](saucer::scheme::request request, saucer::scheme::executor exec)
306-
{ handler(saucer_scheme_request{std::move(request)}, saucer_scheme_executor{std::move(exec)}); });
306+
scheme, [handler, userdata](saucer::scheme::request request, saucer::scheme::executor exec)
307+
{ handler(saucer_scheme_request{std::move(request)}, saucer_scheme_executor{std::move(exec)}, userdata); });
307308
}
308309

309310
void saucer_webview_remove_scheme(saucer_webview *webview, const char *scheme)

0 commit comments

Comments
 (0)