cleanup some javascript documentation comments

This commit is contained in:
Vincent Sanders 2019-07-12 13:40:26 +01:00
parent 90530c419e
commit 730d59776a
2 changed files with 69 additions and 33 deletions

View File

@ -52,7 +52,9 @@ static void window_remove_callback_bits(duk_context *ctx, size_t handle) {
/* ... */ /* ... */
} }
static void window_call_callback(duk_context *ctx, size_t handle, bool clear_entry) { static void
window_call_callback(duk_context *ctx, size_t handle, bool clear_entry)
{
NSLOG(dukky, DEEPDEBUG, "ctx=%p, handle=%"PRIsizet, ctx, handle); NSLOG(dukky, DEEPDEBUG, "ctx=%p, handle=%"PRIsizet, ctx, handle);
/* Stack is ... */ /* Stack is ... */
duk_push_global_object(ctx); duk_push_global_object(ctx);
@ -96,21 +98,32 @@ static void window_call_callback(duk_context *ctx, size_t handle, bool clear_ent
//dukky_log_stack_frame(ctx, "On leaving callback"); //dukky_log_stack_frame(ctx, "On leaving callback");
} }
static void window_schedule_callback(void *p) {
static void
window_schedule_callback(void *p)
{
window_schedule_t *priv = (window_schedule_t *)p; window_schedule_t *priv = (window_schedule_t *)p;
NSLOG(dukky, DEEPDEBUG, "Entered window scheduler callback: %"PRIsizet, priv->handle); NSLOG(dukky, DEEPDEBUG,
"Entered window scheduler callback: %"PRIsizet, priv->handle);
priv->running = true; priv->running = true;
window_call_callback(priv->ctx, priv->handle, priv->repeat_timeout == 0); window_call_callback(priv->ctx,
priv->handle,
priv->repeat_timeout == 0);
priv->running = false; priv->running = false;
if (priv->repeat_timeout > 0) { if (priv->repeat_timeout > 0) {
/* Reschedule */ /* Reschedule */
NSLOG(dukky, DEEPDEBUG, "Rescheduling repeating callback %"PRIsizet, priv->handle); NSLOG(dukky, DEEPDEBUG,
guit->misc->schedule(priv->repeat_timeout, window_schedule_callback, priv); "Rescheduling repeating callback %"PRIsizet,
priv->handle);
guit->misc->schedule(priv->repeat_timeout,
window_schedule_callback,
priv);
} else { } else {
NSLOG(dukky, DEEPDEBUG, "Removing completed callback %"PRIsizet, priv->handle); NSLOG(dukky, DEEPDEBUG,
"Removing completed callback %"PRIsizet, priv->handle);
/* Remove this from the ring */ /* Remove this from the ring */
RING_REMOVE(priv->owner->schedule_ring, priv); RING_REMOVE(priv->owner->schedule_ring, priv);
window_remove_callback_bits(priv->ctx, priv->handle); window_remove_callback_bits(priv->ctx, priv->handle);
@ -118,8 +131,12 @@ static void window_schedule_callback(void *p) {
} }
} }
static size_t window_alloc_new_callback(duk_context *ctx, window_private_t *window, static size_t
bool repeating, int timeout) { window_alloc_new_callback(duk_context *ctx,
window_private_t *window,
bool repeating,
int timeout)
{
size_t new_handle = next_handle++; size_t new_handle = next_handle++;
window_schedule_t *sched = calloc(sizeof *sched, 1); window_schedule_t *sched = calloc(sizeof *sched, 1);
if (sched == NULL) { if (sched == NULL) {
@ -168,18 +185,24 @@ static size_t window_alloc_new_callback(duk_context *ctx, window_private_t *wind
return new_handle; return new_handle;
} }
static void window_remove_callback_by_handle(duk_context *ctx, static void
window_remove_callback_by_handle(duk_context *ctx,
window_private_t *window, window_private_t *window,
size_t handle) { size_t handle)
{
int res; int res;
RING_ITERATE_START(window_schedule_t, window->schedule_ring, sched) { RING_ITERATE_START(window_schedule_t, window->schedule_ring, sched) {
if (sched->handle == handle) { if (sched->handle == handle) {
if (sched->running) { if (sched->running) {
NSLOG(dukky, DEEPDEBUG, "Cancelling in-train callback %"PRIsizet, sched->handle); NSLOG(dukky, DEEPDEBUG,
"Cancelling in-train callback %"PRIsizet,
sched->handle);
sched->repeat_timeout = 0; sched->repeat_timeout = 0;
} else { } else {
NSLOG(dukky, DEEPDEBUG, "Cancelled callback %"PRIsizet, sched->handle); NSLOG(dukky, DEEPDEBUG,
"Cancelled callback %"PRIsizet,
sched->handle);
res = guit->misc->schedule(-1, res = guit->misc->schedule(-1,
window_schedule_callback, window_schedule_callback,
sched); sched);
@ -209,7 +232,9 @@ static duk_ret_t dukky_window_closedown_compartment(duk_context *ctx)
NSLOG(dukky, DEEPDEBUG, "Closing down compartment"); NSLOG(dukky, DEEPDEBUG, "Closing down compartment");
while (priv->schedule_ring != NULL) { while (priv->schedule_ring != NULL) {
window_remove_callback_by_handle(ctx, priv, priv->schedule_ring->handle); window_remove_callback_by_handle(ctx,
priv,
priv->schedule_ring->handle);
} }
return 0; return 0;

View File

@ -20,12 +20,11 @@
* Interface to javascript engine functions. * Interface to javascript engine functions.
*/ */
#ifndef _NETSURF_JAVASCRIPT_JS_H_ #ifndef NETSURF_JAVASCRIPT_JS_H_
#define _NETSURF_JAVASCRIPT_JS_H_ #define NETSURF_JAVASCRIPT_JS_H_
#include "utils/errors.h" #include "utils/errors.h"
typedef struct jscontext jscontext; typedef struct jscontext jscontext;
typedef struct jsobject jsobject; typedef struct jsobject jsobject;
@ -37,15 +36,20 @@ struct dom_node;
struct dom_element; struct dom_element;
struct dom_string; struct dom_string;
/** Initialise javascript interpreter */ /**
* Initialise javascript interpreter
*/
void js_initialise(void); void js_initialise(void);
/** finalise javascript interpreter */ /**
* finalise javascript interpreter
*/
void js_finalise(void); void js_finalise(void);
/** Create a new javascript context. /**
* Create a new javascript context.
* *
* There is usually one context per browser context * There is usually one context per browsing context (browser window)
* *
* \param timeout elapsed wallclock time (in seconds) before \a callback is called * \param timeout elapsed wallclock time (in seconds) before \a callback is called
* \param cb the callback when the runtime exceeds the timeout * \param cb the callback when the runtime exceeds the timeout
@ -53,24 +57,29 @@ void js_finalise(void);
* \param jsctx Updated to the created JS context * \param jsctx Updated to the created JS context
* \return NSERROR_OK on success, appropriate error otherwise. * \return NSERROR_OK on success, appropriate error otherwise.
*/ */
nserror js_newcontext(int timeout, jscallback *cb, void *cbctx, nserror js_newcontext(int timeout, jscallback *cb, void *cbctx, jscontext **jsctx);
jscontext **jsctx);
/** Destroy a previously created context */ /**
* Destroy a previously created context
*/
void js_destroycontext(jscontext *ctx); void js_destroycontext(jscontext *ctx);
/** Create a new javascript compartment /**
* Create a new javascript compartment
* *
* This is called once for a page with javascript script tags on * This is called once for a page with javascript script tags on
* it. It constructs a fresh global window object. * it. It constructs a fresh global window object.
*/ */
jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv); jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv);
/* execute some javascript in a context */ /**
* execute some javascript in a context
*/
bool js_exec(jscontext *ctx, const uint8_t *txt, size_t txtlen, const char *name); bool js_exec(jscontext *ctx, const uint8_t *txt, size_t txtlen, const char *name);
/**
/* fire an event at a dom node */ * fire an event at a dom node
*/
bool js_fire_event(jscontext *ctx, const char *type, struct dom_document *doc, struct dom_node *target); bool js_fire_event(jscontext *ctx, const char *type, struct dom_document *doc, struct dom_node *target);
bool bool
@ -82,7 +91,8 @@ js_dom_event_add_listener(jscontext *ctx,
/*** New Events ***/ /*** New Events ***/
/** Handle a new element being created. /**
* Handle a new element being created.
* *
* This is called once an element is inserted into the DOM document handled * This is called once an element is inserted into the DOM document handled
* by the context provided. The JS implementation must then scan the element * by the context provided. The JS implementation must then scan the element
@ -90,7 +100,8 @@ js_dom_event_add_listener(jscontext *ctx,
*/ */
void js_handle_new_element(jscontext *ctx, struct dom_element *node); void js_handle_new_element(jscontext *ctx, struct dom_element *node);
/** Handle an event propagation finished callback. /**
* Handle an event propagation finished callback.
* *
* This is called once an event finishes propagating, no matter how it * This is called once an event finishes propagating, no matter how it
* finishes. The intent here is that the JS context can perform any cleanups * finishes. The intent here is that the JS context can perform any cleanups
@ -99,4 +110,4 @@ void js_handle_new_element(jscontext *ctx, struct dom_element *node);
*/ */
void js_event_cleanup(jscontext *ctx, struct dom_event *evt); void js_event_cleanup(jscontext *ctx, struct dom_event *evt);
#endif /* _NETSURF_JAVASCRIPT_JS_H_ */ #endif /* NETSURF_JAVASCRIPT_JS_H_ */