<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<blockquote cite="mid:53ED2422.1050306@riseup.net" type="cite"> <br>
There is still, however, the problem of updating the database file
used by the extension. As I anticipated, trying to drop the
existing data with the following line of code:<br>
<meta http-equiv="content-type" content="text/html;
charset=windows-1252">
<pre> mainDB.createStatement("drop table rulesets").execute();</pre>
</blockquote>
I think you shouldn't be doing this at the SQL level, you should be
doing it by dropping the new file into place, which it sounds like
you are going to do next. Take a look at how user rulesets are
implemented. The (immutable) extension files go under
.mozilla/firefox/xjhfewkj.dev/extensions/https-everywhere@eff.org.
But when the user creates new rules they go under
.mozilla/firefox/xjhfewkj.dev/HTTPSEverywhereUserRules, which is
modifiable.<br>
<br>
Probably the best approach is this: Choose some directory under the
profile root, say HTTPSEverywhereRulesetUpdates. At startup or when
reloading rulesets, look for a rulesets.sqlite there. If not
present, load the immutable copy from the extension directory. When
an update is downloaded, store it in the profile root under
HTTPSEverywhereRulesetUpdates. There are some extension APIs that
should allow you to get the profile directory and the extension
directory. I don't remember them offhand but the user rules example
should show you the way.<br>
<br>
Thanks for all your hard work on this!<br>
</body>
</html>