taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 968813951b4c10005f12ec15afafab97c0e8ee68
parent 93d0d8373e3f7bbf2d7a3cb1be492d9c1b277c7f
Author: Florian Dold <florian@dold.me>
Date:   Tue, 23 Jan 2024 21:55:12 +0100

dd39: document decision

Diffstat:
Mdesign-documents/039-taler-browser-integration.rst | 39++++++++++++++++++++++++++++++---------
1 file changed, 30 insertions(+), 9 deletions(-)

diff --git a/design-documents/039-taler-browser-integration.rst b/design-documents/039-taler-browser-integration.rst @@ -81,11 +81,32 @@ Requirements should work smoothly with future browsers that have native, built-in support for Taler payments. +Proposed Solution +================= + +.. note:: + + As of 2023-01-23, we've decided to go ahead with the approach + described in this section. + +Now +^^^ + +* Handling ``taler://`` URIs by overriding the onclick handler of ``a`` HTML elements. + This requires excessive permissions but would be a viable work-around, + at least on pages that opt in with a special ``<meta name="taler-support" content="uri">`` tag. + It does not work in all use-cases, for example when a navigation + to a ``taler://`` URI is initiated programmatically or by pasting + the URI in the browser's address bar. + +* Handling a ``taler://`` URI by putting it directly in a meta tag that causes the + wallet to get triggered *on page load*. -Alternatives -============ -* JavaScript API: The WebExtension could inject a JavaScript API into Websites +Future (post-1.0) +^^^^^^^^^^^^^^^^^ + +* JavaScript API: The WebExtension can inject a JavaScript API into Websites that allow interacting with the Taler wallet. This is the approach taken by the MetaMask crypto wallet. It requires excessive permissions, may break some Websites (https://github.com/brave/browser-laptop/issues/13711) and @@ -100,12 +121,12 @@ Alternatives if the Website does not know the extension's ID. Hard-coding the extension IDs would violate the "no vendor lock-in requirement". -* Handling ``taler://`` URIs by overriding the onclick handler of ``a`` HTML elements. - This requires excessive permissions but would be a viable work-around, - at least on pages that opt in with a special ``<meta name="taler-support" content="uri">`` tag. - It does not work in all use-cases, for example when a navigation - to a ``taler://`` URI is initiated programmatically or by pasting - the URI in the browser's address bar. + + + +Other Alternatives +================== + * Triggering interactions with the ``taler://`` URI in a ``Taler:`` HTTP header. This approach would allow browsers with native Taler support