]> GeneralSync Git - oss/thunderbird-experiments.git/log
Dirk Steinmetz [Fri, 11 Aug 2023 22:34:24 +0000 (00:34 +0200)]
osfile: add backward-compatibility with TB 102

This commit reintroduces OS.File into the osfile experiment on
older versions of Thunderbird, that do not yet include IOUtils.

Dirk Steinmetz [Tue, 1 Aug 2023 20:07:04 +0000 (22:07 +0200)]
Bump copyright information

Dirk Steinmetz [Tue, 1 Aug 2023 20:06:01 +0000 (22:06 +0200)]
osfile: switch to IOUtils, move to parent

For some reasons, beta versions of Thunderbird 115 seem to have dropped
OS.File; this commit thus switches the osfile experiment to use the
successor API IOUtils. As Mozilla seems to tighten restrictions on child
processes and we don't care about performance at this point, this commit
furthermore moves the osfile experiment out of the child scope to prevent
future incompatibilities.

John Bieling [Wed, 7 Jun 2023 13:08:30 +0000 (15:08 +0200)]
customui/cachingfix: Services.jsm deprecation

Accessing the Services object through Services.jsm might stop working in
future releases of Thunderbird. This commit alters the experiments to
access the Services object through the more modern globalThis, if possible.

Dirk Steinmetz [Sat, 20 May 2023 13:50:27 +0000 (15:50 +0200)]
customui: Basic support for Thunderbird Supernova

This commit introduces very basic support for changes in Thunderbird
leading up to the new UI "Supernova", scheduled to be released with
Thunderbird 115.

As of this commit, the experiment is operational with the new version;
some features like sidebar resizing are however not available when
running in a recent version of Thunderbird. Furthermore, there are a few
visual glitches regarding the locations using sidebar code changing
their desired size.

Dirk Steinmetz [Fri, 19 May 2023 19:52:56 +0000 (21:52 +0200)]
tcp: Move sockets into parent process (API change)

This commit moves sockets from the extension content process into the
parent process, which is necessary for upcoming versions of Thunderbird.
To reduce the performance impact, it also changes the API to no longer
permit unbounded read operations: read now takes a length and returns an
ArrayBuffer, readFully was removed.

Dirk Steinmetz [Fri, 17 Jun 2022 02:21:00 +0000 (04:21 +0200)]
customui: partial compatibility with TB 102

This commit fixes the generic address book location, working around the
issue of the address book tab not being capable of hosting remote
browsers by adding the frame outside of the actual tab browser.

Other address book locations remain broken in Thunderbird 102, but this
commit does add documentation to describe them as such.

Dirk Steinmetz [Fri, 17 Jun 2022 02:19:00 +0000 (04:19 +0200)]
Add gitignore

This commit adds a minimal ignore file to exclude temporary files
generated by common tools.

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
experiment:
- 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)]
Update LICENSE/NOTICE

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
API.

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)]
customui: add LOCATION_UNKNOWN_FILE_ACTION

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 2.0.0.0

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