Commit Graph

624 Commits

Author SHA1 Message Date
Michael Drake
99765cf2d0 Remove TODO. 2015-08-13 09:48:09 +01:00
Michael Drake
2d53524635 Fix crash when JS context is required from a frame. 2015-08-13 09:39:04 +01:00
Vincent Sanders
c105738fa3 Change LOG() macro to be varadic
This changes the LOG macro to be varadic removing the need for all
callsites to have double bracketing and allows for future improvement
on how we use the logging macros.

The callsites were changed with coccinelle and the changes checked by
hand. Compile tested for several frontends but not all.

A formatting annotation has also been added which allows the compiler
to check the parameters and types passed to the logging.
2015-05-28 16:08:46 +01:00
Vincent Sanders
75d3fdc42e Convert RISC OS to use bitmap render operation 2015-04-24 23:49:49 +01:00
Vincent Sanders
cc11912da1 Convert framebuffer frontend to bitmap operations table. 2015-04-14 23:08:02 +01:00
Vincent Sanders
3ff4846c1a Remove usage of browser private interfaces
The cocoa frontend was directly acessing browser internals instead of
using the API. In the case of gui.m there was a check for the browser
window not being root (browser->parent != NULL) . As gui windows can
only ever be associated with the root brower window (i.e. its parent
will always be NULL) this was completely redundant.
2014-11-21 11:48:43 +00:00
Vincent Sanders
79e501075a make the form select menu API smaller.
By hiding all but the form selection menu option structure from code
outside of render this reduces the API to the absolute minimum to
support this feature.
2014-11-13 21:52:08 +00:00
Vincent Sanders
3405803280 Improve content encoding information API
Extend the content_get_encoding() API to retrieve the source of
the encoding as well as the actual encoding.
2014-11-07 12:33:34 +00:00
Vincent Sanders
8c2cfecfb5 Allow content handlers to have debug values set through API
Previously content handler debugging features were accessed by global
variables. This allows the setting of debugging parameters via a
content API giving per content control over debugging features.
Currently only used by the html content handler to toggle global
redraw debugging.
2014-11-06 22:51:46 +00:00
Vincent Sanders
46f369ca9e move themse install to its own header 2014-11-06 14:19:15 +00:00
Vincent Sanders
8ec7ad053a Make the fetching of a contents encoding generic.
The frontends previously had to use an html renderer API to get the
encoding of a content. This also required the explicit checking of the
contents type rather than using the existing content API to abstract
this knowledge.
2014-11-05 23:44:31 +00:00
Vincent Sanders
c14ddad660 change url setting api to take an nsurl instead of a text string 2014-11-02 22:30:45 +00:00
Vincent Sanders
c31c4babe1 Change contextual content retrieval to browser features.
Update the API which allows frontends to acquire the page features
(images, link urls or form elements) present at the given coordinates
within a browser window.

By making this an explicit browser_window API and using the browser.h
header for the associated data structure with a more appropriate API
naming the usage is much more obvious and contained.

Additionally the link url is now passed around as a nsurl stopping it
being converted from nsurl to text and back again several times.
2014-11-02 15:46:42 +00:00
Vincent Sanders
b1ee46cfb3 make adding a history entry return an error code.
This returns the error code to the caller instead of (sometimes)
warning the user directly.
2014-10-29 22:47:25 +00:00
Vincent Sanders
a221fa7213 Ensure browser window creation returns errors from common initialisation.
The browser window common initialisation code returns error codes which
were being ignored. The errors were additionally being reported via
warn_user in inappropriate places within browser history construction.
2014-10-29 22:29:06 +00:00
Vincent Sanders
7ace528729 Update url setting API to return nserror code instead of calling warn_user 2014-10-29 00:18:12 +00:00
Michael Drake
eed2a97eca Add bw function to get scrollbar type. 2014-10-25 12:04:11 +01:00
Michael Drake
eea369afe7 Add function to find if a bw is a frameset. 2014-10-25 12:00:34 +01:00
Michael Drake
94f32b8369 Move create_form_select_menu to window gui table. 2014-10-24 20:45:21 +01:00
Michael Drake
69e82a8966 Ensure we pass valid gw to gadget click gui call.
Only root bw has a gw, so this would have been broken when it
happened in a frameset.
2014-10-24 20:18:57 +01:00
Michael Drake
b27f3e5ac4 Open select menu via content msg, instead of breaking encapsulation.
Fixes bw deref and browser_private.h #include in render/
2014-10-24 17:57:15 +01:00
Vincent Sanders
dc5deb26b1 improve documentation and whitespace cleanup. 2014-10-19 21:49:46 +01:00
Vincent Sanders
1180d19324 improve documentation in headers 2014-10-19 19:12:55 +01:00
Michael Drake
85fb1fd45d Add is_selectable to browser window API surface. 2014-10-18 18:53:50 +01:00
Michael Drake
03e7605bcf Add call to test whether a browser window may be searched. 2014-10-18 17:39:03 +01:00
Michael Drake
34cdbcfc25 Move up_available fn to core. 2014-10-18 10:16:00 +01:00
Michael Drake
7519993fd7 Add core function to navigate to URL parent. 2014-10-17 09:51:10 +01:00
Vincent Sanders
d06df231bc Update the core to use the split operations table headers
Second in the series to decouple the core API usage from the frontends.
2014-10-16 22:33:43 +01:00
Vincent Sanders
3fa0ed01c0 add API to set DPI 2014-10-13 02:34:10 +01:00
Vincent Sanders
af16c38d2d fix DOM tree dump debug 2014-08-04 00:37:21 +01:00
Vincent Sanders
984299e5b4 remove assert for creating new browser context with the tab flag set.
This allows creation of new browsing contents (browser/gui window) in a
tab but without explicitly providing a sibling browsing context to be
placed with.
2014-07-27 18:07:00 +01:00
Vincent Sanders
698b7c61f0 make gtk source viewer less explody. fixes #2159 2014-07-21 01:15:43 +01:00
Vincent Sanders
3a9fa29ee5 try and improve usage of browser window internals 2014-07-06 18:34:34 +01:00
Vincent Sanders
18aefabd20 change reformat to be driven from the scheduler like redraw 2014-07-01 09:27:20 +01:00
Vincent Sanders
7d02ae916a make launch_url core operation use nsurl 2014-05-27 23:52:35 +01:00
Vincent Sanders
2326d3c503 remove unecessary utils/url.h includes 2014-05-09 10:15:42 +01:00
Vincent Sanders
87f6314dab move scheduleing into browser operation table 2014-03-09 15:37:40 +00:00
Michael Drake
a38a63a37e Make history internal to browser_window module. 2014-02-15 18:44:50 +00:00
Michael Drake
49bed056dd Make browser_window_navigate (un)verifiable flag match browser_window_create. 2014-02-10 22:40:04 +00:00
Michael Drake
af014bce99 Allow tab creation without history clone. Changes browser_window_create and browser_window_navigate flags. 2014-02-10 14:08:45 +00:00
Michael Drake
ea79e85fcd Clean up gui_window creation API. 2014-02-09 13:07:39 +00:00
Michael Drake
3d7cd77982 Simplify local history interface. 2014-02-08 22:43:54 +00:00
Michael Drake
22d15380f4 Add function to get browser window's extents. 2014-02-08 16:03:06 +00:00
Michael Drake
022a303d60 Move browser_window_update_extent to browser_private.h 2014-02-08 16:01:14 +00:00
Michael Drake
43c3caa469 Function to determine whether bw has a content. 2014-02-08 15:31:44 +00:00
Michael Drake
8bc3a80320 Add function to get bw's URL. 2014-02-08 15:00:08 +00:00
Michael Drake
cf84e557fa Simplify browser_window_refresh_url_bar.
Reduces front end need to access bw internals.
2014-02-08 12:07:13 +00:00
Vincent Sanders
db33103fa3 clean up desktop/gui.h include usage 2014-01-29 21:35:53 +00:00
Michael Drake
5787f8335e Simplify and optimise icon handling. 2014-01-24 23:13:18 +00:00
Michael Drake
dab6d7961e Actually use the fact scheme is interned. 2014-01-24 22:00:25 +00:00
Vincent Sanders
d47fed4524 move 401 login into operation table 2014-01-16 00:52:17 +00:00
Vincent Sanders
bd065d4a43 split browser gui operations up 2014-01-15 19:37:05 +00:00
Vincent Sanders
0075eab194 move remaining gui operations to table 2014-01-14 23:31:54 +00:00
Vincent Sanders
667d4a0a49 confine the gui table acessor to the gui factory header 2014-01-14 20:05:14 +00:00
Vincent Sanders
d18c8ed452 move teh final optional window operations into the table 2014-01-13 22:54:19 +00:00
Vincent Sanders
e82d83f184 move four more optional window operations to table 2014-01-13 14:51:27 +00:00
Vincent Sanders
d70e371cd9 move two more mandantory window operations to table 2014-01-13 11:38:35 +00:00
Vincent Sanders
7227c29bba move window scroll getter and setter into operations table 2014-01-13 01:08:15 +00:00
Vincent Sanders
5a962586fb move mandantory window update and redraw operations into table 2014-01-12 23:50:54 +00:00
Vincent Sanders
4b49b4ac77 move more optional window operations into table including removing unused hide_pointer operation altogether 2014-01-12 22:55:26 +00:00
Vincent Sanders
b7736bae2f split gui operations into core and window and move more operations into tables 2014-01-12 17:07:34 +00:00
Vincent Sanders
56bb9582b1 move set title, set url, start and stop throbber window operations to gui table 2014-01-12 10:27:41 +00:00
Vincent Sanders
c8496df3df move window creation and destruction into table 2014-01-11 22:34:12 +00:00
Rob Kendrick
550c8cd73c Change gui_file_gadget_interface to pass gui_window not browser_window, add GTK implementation that of course does not work. 2014-01-05 16:45:32 +00:00
Rob Kendrick
0d7f1cfc93 Add infrastructure for calling front ends to set file gadget filenames via clicking in addition to drag-and-drop 2014-01-05 16:04:35 +00:00
Rob Kendrick
1bd4a34a27 Remove asserts for default cases from all content message handlers; this is laborious and is no longer useful for catching bugs. 2014-01-05 14:39:08 +00:00
Michael Drake
1ae1d06ca4 Reduce leaking of thumbnails to only for URLs that urldb rejects.
Previously leaked thumbnails for all urls not previously visited.
2013-10-24 11:48:23 +01:00
Vincent Sanders
8cb2d52483 fix coverity #1111069 2013-10-23 13:48:26 +01:00
Michael Drake
cf8ffa412a Remove old hotlist, cookies, and history_global_core modules.
New versions of expand/collapse node functions for these modules aren't yet implemented.
2013-09-02 22:41:04 +01:00
Michael Drake
4ce2f6fd55 Update to use new hotlist and global history manager. 2013-09-02 12:29:16 +01:00
Michael Drake
fd1a94a751 Update the new hotlist on visits. 2013-08-27 13:38:23 +01:00
Michael Drake
2a3ff41e14 Flag a TODO. 2013-08-16 08:25:26 +01:00
Michael Drake
eaae716989 Move old hotlist out of the way. 2013-08-13 12:41:04 +01:00
Michael Drake
618ef54983 Update new global history, if the treeview test option is set. 2013-07-16 13:15:22 +01:00
Michael Drake
9f72b5e046 Fix namespace of old global history add function. 2013-07-15 12:57:40 +01:00
Michael Drake
094ef9a64b Minor wrapping fix. 2013-07-12 15:31:43 +01:00
Michael Drake
716776a181 Remove forward declaration. 2013-07-12 13:50:17 +01:00
Michael Drake
d6d9378e9b Move global_history_add out of browser.h into global_history_core.h 2013-07-12 12:01:54 +01:00
Michael Drake
3a0bda9771 Move local history over to nsurl. 2013-07-11 23:38:32 +01:00
Michael Drake
3f45e53539 s/history_core/local_history/ 2013-07-10 11:55:42 +01:00
Vincent Sanders
ee6e6eec05 move options include 2013-05-28 14:16:10 +01:00
Michael Drake
ba9769bc8c Pass fetch redirect info up to content layer as content_msg. Mark redirect origin URLs as visited in browser window content callback. Note this doesn't mean we track redirects, it just lets us get the :visited link style on links that redirect. 2013-05-27 14:51:00 +01:00
Vincent Sanders
af75070bee add script_timeout option and use it 2013-05-22 19:12:26 +01:00
Vincent Sanders
ce0fe06349 create javascript heartbeat and hook a script timeout to it 2013-05-22 19:12:26 +01:00
Michael Drake
8b6665fe03 Merge branch 'master' of git://git.netsurf-browser.org/netsurf into tlsa/selection-search-refactor 2013-05-07 14:56:42 +01:00
Michael Drake
3afd9c9731 Remove search context from browser window, simplify search interface for front ends.
Added content interface for search.

Removed bw->cur_search search context. Desktop layer now does nothing
except pass search requests from front end onto the bw's current_content
via the content interface.

Search API reduced to a pair of functions at each level:
  {desktop|content|html|textplain}_search
and
  {desktop|content|html|textplain}_search_clear

Updated front ends to use simplified search API.  Only tested GTK and RO builds.

These confine the search stuff to render/.  However search still uses struct
selection.  The handling for which is still spread over desktop/ and render/.
Also the render/search code itself still fiddles inside html and textplain
privates.
2013-05-07 14:41:40 +01:00
Vincent Sanders
30b1fc1dbd add assert to ensure API contract is met 2013-05-04 17:01:00 +01:00
Michael Drake
2cb4a11d1d Remove unused #includes. 2013-04-29 14:55:20 +01:00
Michael Drake
c8d76e68ca Hide caret after reflow (textarea may have moved), but let textarea keep focus. 2013-03-27 13:57:10 +00:00
Michael Drake
41e4928e25 Fix pointer shape and status bar messages for textareas and their scrollbars. 2013-03-11 12:57:33 +00:00
Michael Drake
e8950dee22 Propagate native caret clip rect through core. 2013-03-05 22:54:51 +00:00
Michael Drake
69d653f4dc Fix history. 2013-03-04 15:07:58 +00:00
John-Mark Bell
cd3e073354 Fix logging 2013-02-27 03:11:30 +00:00
John-Mark Bell
97978e858b Use custom fetcher for inline CSS 2013-02-27 03:11:10 +00:00
Michael Drake
c2a718075a A load of refactoring of how content selection and input work.
Keypresses now go via content interface.
Contents don't shove the selection object into browser windows any more.
Contents report selection existence by sending message.
HTML content keeps track of where selections in it exist.
Contents report whether they have input focus via caret setting msg.
Caret can be hidden (can still input/paste) or removed.
Consolidate textarea selection handling.
Make textarea report its selection status changes to client.
Various textarea fixes.
Changed how we decide when to clear selections, and give focus.
2013-02-22 12:19:35 +00:00
Vincent Sanders
529ca251fc rename flags for browser_window routines to be shorter 2013-02-18 11:51:42 +00:00
Vincent Sanders
b112dec78d change browser_window_create and refactor all callsites 2013-02-18 11:23:48 +00:00
Vincent Sanders
3bfb5b96a7 browser_window_navigate refactor 2013-02-18 11:23:27 +00:00
Michael Drake
9c20ff9592 Drag fixup. Add some documentation. 2013-02-08 15:05:07 +00:00
Michael Drake
4747bbbfb2 HTML drags now go via content msg. 2013-02-08 13:22:53 +00:00