Add ABCL disassembler post.
[blog.git] / extensions.post
1 ;;;;;
2 title: Extensions, extensions, extensions
3 date: 2015-04-17 10:15:23
4 format: md
5 ;;;;;
6
7 For the longest time I've been using quite a number of Firefox extensions.  The
8 known problem with that is a steady slowdown, which is only amplified by my
9 habit of soft bookmarks, i.e. having hundreds of open tabs with their
10 corresponding state (which is the whole reason to do that).
11
12 However seeing that a lot of state is captured in a very inconvenient form,
13 that is, it's hard to modify a long list of tabs, I want to make both this and
14 incidentally also sharing of state between sessions and even browsers much
15 easier.
16
17 The idea is to separate part of the browser state into a separate component,
18 namely a database server for cookies (and other local storage), tabs, sessions
19 and bookmarks.  This way and by having a coarse control over loading of
20 sessions the process of migrating state between sessions and browsers should be
21 much easier.
22
23 Fortunately most of the browser extensions APIs seem to be usable enough to
24 make this work for at least Firefox and Chrome, so at the moment I'm
25 prototyping the data exchange.  Weird as it is for Chrome you have to jump
26 through some conversion hoops (aka local native extensions via a local process
27 exchanging data via stdio), so it seems that the Firefox APIs, since they allow
28 socket connections, are a bit friendlier to use.  That said, the exchange
29 format for Chrome, Pascal string encoded JSON, seems like a good idea with the
30 exception of forcing local endianess, which is completely out of the question
31 for a possibly network enabled system (which is to say, I'm definitely going to
32 force network byte order instead).