Dirk Steinmetz [Sun, 13 Mar 2022 18:58:03 +0000 (19:58 +0100)]
tcp: Fix reading into large buffers

Recent versions of Thunderbird limit the amount of data cached in a
socket for reading. Waiting until enough data is available to fill a
large buffer thus might cause the application to hang.

This commit thus alters the behavior of readFully to read out all
available data from the socket immediately, filling the given buffer in
multiple steps if required.

tatankat [Mon, 17 Jan 2022 00:01:05 +0000 (01:01 +0100)]
customui: dynamic sidebar width

This commit expands on customUI sidebar locations, adding the option to
control visibility and width with options. As part of these changes, it
furthermore makes handling of local options more generic to simplify
adding similar features and more complex locations in the future.

Co-authored-by: Dirk Steinmetz <ds@generalsync.com>
Dirk Steinmetz [Sun, 16 Jan 2022 15:33:55 +0000 (16:33 +0100)]
customui: add actions to "all locations" example

To simplify testing customUI frame behavior, this commit adds various
actions to each frame registered by the "all locations" example.

Dirk Steinmetz [Mon, 26 Jul 2021 19:42:56 +0000 (21:42 +0200)]
implementationprovider: minor fixes

This commit addresses three minor issues in the implementationprovider
- Improved support for privileged use from other experiments
- Fixed the child JSMs not loading properly from a packed add-on
- Minor typo

Dirk Steinmetz [Mon, 26 Jul 2021 19:40:14 +0000 (21:40 +0200)]
runtime: dirty hack for TB91

This commit replaces the runtime API extension with a dirty hack as
drop-in solution for TB91. Fixing it properly is likely not feasible.

Dirk Steinmetz [Mon, 26 Jul 2021 19:38:40 +0000 (21:38 +0200)]
tcp: update for TB91

This commit updates the tcp experiment with API changes in TB91.

Dirk Steinmetz [Mon, 26 Jul 2021 18:55:53 +0000 (20:55 +0200)]
customui: fix calendar locations on TB91

This commit fixes compatibility issues with calendar locations
introduced between TB 78 and 91.

Dirk Steinmetz [Wed, 30 Jun 2021 19:04:05 +0000 (21:04 +0200)]
customui: E10S fixes for recent versions

This commit fixes an issue where Webextension APIs are unavailable in
custom UI frames in very recent versions of Thunderbird. Furthermore, it
implements some additional E10S lifecycle things that seem to be
recommended to work around potential issues with framing.

Dirk Steinmetz [Sat, 24 Apr 2021 21:21:55 +0000 (23:21 +0200)]
implementationprovider: add example to readme

This commit introduces a very dense example of the basic API usage into
the readme, to give a first glimpse in the API without opening the code.

Dirk Steinmetz [Sat, 24 Apr 2021 21:08:28 +0000 (23:08 +0200)]
implementationprovider-aggregators: fix readme

This commit fixes a copy-paste error.

Dirk Steinmetz [Sat, 24 Apr 2021 05:01:22 +0000 (07:01 +0200)]
Add example for ImplementationProvider

This commit introduces an example add-on using the
ImplementationProvider API: a background page provides two ways of
aggregating numbers, and an experiment script running in the parent
process instantiates the classes and plays around with them.

Dirk Steinmetz [Sat, 24 Apr 2021 04:46:13 +0000 (06:46 +0200)]
Add new experiment: ImplementationProvider

This commit introduces a new experiment: the ImplementationProvider API
permits to use pure WebExtension class declarations from parent
experiment code. As a proof of concept, it both demonstrates feasibility
and provides a playground for experiments with that idea.

Dirk Steinmetz [Sat, 24 Apr 2021 04:27:28 +0000 (06:27 +0200)]
Remove manifest.json

The central manifest is redundant, as there are manifest snippet files
for each individual experiment. Furthermore, having a complete example
is no longer necessary as there is now a separate example folder with
better examples. For these reasons, this commit removes manifest.json
from the reporitory root.

Dirk Steinmetz [Wed, 10 Feb 2021 21:17:35 +0000 (22:17 +0100)]
customui: fix sidebar element name

As the convention of the customui API is to use a lowercase 'customui'
in identifiers, this commit updates the id used for sidebar elements.

Dirk Steinmetz [Wed, 10 Feb 2021 20:49:52 +0000 (21:49 +0100)]

This commit updates the legal stuff: bump year and add John.

Dirk Steinmetz [Wed, 10 Feb 2021 20:31:57 +0000 (21:31 +0100)]
Add all location example for customui

This commit adds an runnable add-on that uses the customui API to bind
to all available locations, primarily useful for testing.

Dirk Steinmetz [Wed, 10 Feb 2021 20:07:58 +0000 (21:07 +0100)]
customui: refactor sidebars

This commit fixes the codestyle for sidebar locations in the customui

Dirk Steinmetz [Wed, 10 Feb 2021 18:06:29 +0000 (19:06 +0100)]
customui: make sidebar locations generic

This commit alters names and description of customui's sidebar locations
to be more generic; after all, future versions of Thunderbird might use
different concepts than a sidebar to realize the same feature.

John Bieling [Wed, 10 Feb 2021 18:03:38 +0000 (19:03 +0100)]
customui: add sidebar

This commit extends the customui API with support for a sidebar location
in the main window. It also updates the existing sidebar location to use a
more suitable id.

John Bieling [Thu, 4 Feb 2021 15:37:39 +0000 (16:37 +0100)]
customui: add sidebar for composer

This commit adds a new location to customui, permitting to inject UI into
the composer's sidebar. For now, no options are supported in that location.

Dirk Steinmetz [Thu, 4 Feb 2021 01:34:59 +0000 (02:34 +0100)]
customui: E10S support

This commit adds the necessary metadata to load frames in the correct
child process for the add-on.

Dirk Steinmetz [Thu, 4 Feb 2021 01:13:37 +0000 (02:13 +0100)]
customui: fix contextId in browser id

This commit fixes the capitalization of contextId, so we actually
include the id of the context in the inserted browser's id now.

Dirk Steinmetz [Tue, 12 Jan 2021 18:44:24 +0000 (19:44 +0100)]
customui: codestyle for unknown file action

This commit makes code and documentation of customui's unknown file
action location more consistent with their surroundings (fit code to 80
chars, alphabetical order, add documentation about context).

John Bieling [Tue, 12 Jan 2021 18:31:32 +0000 (19:31 +0100)]

This commit expands the customui experiment with a location at the bottom
of the dialog asking the user which action to complete when opening a file
with an unknown content type.

Dirk Steinmetz [Tue, 13 Oct 2020 20:16:58 +0000 (22:16 +0200)]
Add readme for cachingfix and customui

This commit introduces some more additional documentation for the
cachingfix and customui experiments.

Dirk Steinmetz [Thu, 8 Oct 2020 20:37:40 +0000 (22:37 +0200)]
customui: event edit location, local options

This commit adds a location in the event editing window/tab to the
customui experiment, as well as support for altering local options from
a custom ui frame. This permits the frame to dynamically adjust its size
and display status (visible / hidden).

Dirk Steinmetz [Fri, 17 Jul 2020 05:17:01 +0000 (07:17 +0200)]
Replace fixCaching.jsm with experiment

It is actually possible to create an experiment handling add-on lifetime
and doing all the things fixCaching.jsm is doing, without having to call
any API from within the experiments or the webextension. This commit
implements that.

It also includes manifest examples for each individual experiment, to
simplify copy-pasting.

Dirk Steinmetz [Thu, 9 Jul 2020 00:19:52 +0000 (02:19 +0200)]
Experiments from

This commit features all open-source experiments from the
version of the GeneralSync integration add-on.