diff options
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 17 | ||||
-rw-r--r-- | desktop/browser.h | 10 |
2 files changed, 27 insertions, 0 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index b9f55ba45..77258df4d 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -1927,6 +1927,23 @@ nserror browser_window_navigate(struct browser_window *bw, } +/* Exported interface, documented in browser.h */ +nsurl * browser_window_get_url(struct browser_window *bw) +{ + assert(bw != NULL); + + if (bw->current_content != NULL) { + return hlcache_handle_get_url(bw->current_content); + + } else if (bw->loading_content != NULL) { + /* TODO: should we return this? */ + return hlcache_handle_get_url(bw->loading_content); + } + + return corestring_nsurl_about_blank; +} + + /* * Get the dimensions of the area a browser window occupies * diff --git a/desktop/browser.h b/desktop/browser.h index 306f48bba..8eb6c9c31 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -119,6 +119,16 @@ nserror browser_window_navigate(struct browser_window *bw, struct fetch_multipart_data *post_multipart, struct hlcache_handle *parent); +/** + * Get a browser window's URL. + * + * \param bw browser window + * \return pointer to nsurl. Doesn't create a ref for caller. + * + * Note: guaranteed to return a valid nsurl ptr, never returns NULL. + */ +nsurl * browser_window_get_url(struct browser_window *bw); + void browser_window_get_dimensions(struct browser_window *bw, int *width, int *height, bool scaled); void browser_window_set_dimensions(struct browser_window *bw, |