Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. It’s really surprising to me that the #fediverse hasn’t agreed on a standardized way to open cross-instance #activitypub objects and instead relies on links that open in the browser.

It’s really surprising to me that the #fediverse hasn’t agreed on a standardized way to open cross-instance #activitypub objects and instead relies on links that open in the browser.

Scheduled Pinned Locked Moved Uncategorized
fediverseactivitypuburischeme
116 Posts 12 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • evan@cosocial.caE evan@cosocial.ca

    @wakest Using a custom URI scheme is also going to give absolutely terrible UI for most users, who won't have an app installed.

    evan@cosocial.caE This user is from outside of this forum
    evan@cosocial.caE This user is from outside of this forum
    evan@cosocial.ca
    wrote last edited by
    #11

    @wakest That said, I think using the `acct:` URI scheme for Webfinger is pretty great. I've implemented a protocol handler for it here:

    Webfinger Browser

    favicon

    (acct.swf.pub)

    Unfortunately, `acct:` isn't one of the protocols allowlisted by HTML5 for linking in HTML pages, so it uses `web+acct` instead. At some point, I'll ask the HTML5 WG to add acct: to the allowlist. It's on my todo list!

    evan@cosocial.caE 1 Reply Last reply
    0
    • evan@cosocial.caE evan@cosocial.ca

      @wakest That said, I think using the `acct:` URI scheme for Webfinger is pretty great. I've implemented a protocol handler for it here:

      Webfinger Browser

      favicon

      (acct.swf.pub)

      Unfortunately, `acct:` isn't one of the protocols allowlisted by HTML5 for linking in HTML pages, so it uses `web+acct` instead. At some point, I'll ask the HTML5 WG to add acct: to the allowlist. It's on my todo list!

      evan@cosocial.caE This user is from outside of this forum
      evan@cosocial.caE This user is from outside of this forum
      evan@cosocial.ca
      wrote last edited by
      #12

      @wakest there's an RFC for `acct:`

      Link Preview Image
      RFC 7565: The 'acct' URI Scheme

      The 'acct' URI Scheme (RFC 7565, )

      favicon

      IETF Datatracker (datatracker.ietf.org)

      trwnh@mastodon.socialT 1 Reply Last reply
      0
      • julian@activitypub.spaceJ This user is from outside of this forum
        julian@activitypub.spaceJ This user is from outside of this forum
        julian@activitypub.space
        wrote last edited by
        #13

        I had a quick back and forth with Gemini about the state of protocol handlers, and there are some options for getting it working without the terrible UI flow in Rimu's video (no shade to you Rimu, it was entirely out of your control!!)

        Since NodeBB is installable as a PWA, it is possible to pre-register the web+ap protocol handler, in which case it should "just work" to open those types of URLs.

        The other half is having a graceful fallback to opening the HTTPS URL if there is no handler... and to do that you need an interstitial page.

        ... aaaaand now I completely understand why those stupid "open in app/open in browser" pages exist!!! <img class="not-responsive emoji" src="https://activitypub.space/assets/plugins/nodebb-plugin-emoji/emoji/android/2639.png?v=3f6bb89c221" title="☹" /> It's to trigger the protocol handler.

        1 Reply Last reply
        0
        • ricferrer@mastodon.socialR This user is from outside of this forum
          ricferrer@mastodon.socialR This user is from outside of this forum
          ricferrer@mastodon.social
          wrote last edited by
          #14

          @rimu@mastodon.nzoss.nz @julian @rimu@piefed.social @evan it’s a clever workaround, but what I would like to have is a possibility of reference content from the #fediverse #activitypub from any app or browser without the need to them needing to exploit support it. Also it should work independently of the client app that I am using. Just like ftp: open the right app and goes to the content.

          1 Reply Last reply
          0
          • evan@cosocial.caE evan@cosocial.ca

            @wakest there's an RFC for `acct:`

            Link Preview Image
            RFC 7565: The 'acct' URI Scheme

            The 'acct' URI Scheme (RFC 7565, )

            favicon

            IETF Datatracker (datatracker.ietf.org)

            trwnh@mastodon.socialT This user is from outside of this forum
            trwnh@mastodon.socialT This user is from outside of this forum
            trwnh@mastodon.social
            wrote last edited by
            #15

            @evan @wakest rfc 7565 describes how acct: is not resolvable, although web+acct: doesn't have this problem if you define it to use webfinger.

            also i'm not sure about the browser UX but instead of a new uri scheme the typical solution here is actually content-type handlers (see firefox screenshot for example)

            an http resolver SHOULD dispatch the content to the appropriate handler according to its content-type

            "i'm not logged into my browser" is the issue, not "open a browser in a browser".

            Link Preview Image
            trwnh@mastodon.socialT 1 Reply Last reply
            0
            • trwnh@mastodon.socialT trwnh@mastodon.social

              @evan @wakest rfc 7565 describes how acct: is not resolvable, although web+acct: doesn't have this problem if you define it to use webfinger.

              also i'm not sure about the browser UX but instead of a new uri scheme the typical solution here is actually content-type handlers (see firefox screenshot for example)

              an http resolver SHOULD dispatch the content to the appropriate handler according to its content-type

              "i'm not logged into my browser" is the issue, not "open a browser in a browser".

              Link Preview Image
              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.socialT This user is from outside of this forum
              trwnh@mastodon.social
              wrote last edited by
              #16

              @evan @wakest see also https://browser.pub/ and so on

              - html content goes to an html viewer
              - pdf content goes to a pdf viewer

              activity+json content could go to an activity viewer

              1 Reply Last reply
              0
              • ricferrer@mastodon.socialR ricferrer@mastodon.social

                @evan @julian @rimu it’s horrible UX. It opens a browser where I am not logged in instead of opening my default app, like it happens with mailto:

                https: is for webpages

                trwnh@mastodon.socialT This user is from outside of this forum
                trwnh@mastodon.socialT This user is from outside of this forum
                trwnh@mastodon.social
                wrote last edited by
                #17

                @ricferrer @evan @julian @rimu

                https: is not for web pages. it's for http resources, which can be any content type. the content should be dispatched to the appropriate content handler; for example:

                - html opens in an html viewer
                - pdf opens in a pdf viewer
                - png opens in a png viewer
                - mp4 opens in an mp4 viewer

                activity+json could be opened in an activity viewer. see firefox for example in pic 1:

                Link Preview Image
                ricferrer@mastodon.socialR 1 Reply Last reply
                0
                • ricferrer@mastodon.socialR ricferrer@mastodon.social

                  It’s really surprising to me that the #fediverse hasn’t agreed on a standardized way to open cross-instance #activitypub objects and instead relies on links that open in the browser. #urischeme

                  I found this proposal and what’s thinking… https://codeberg.org/fediverse/fep/src/branch/main/fep/07d7/fep-07d7.md Which one would be your favorite?

                  (If anyone has updates on the progress, feel free to point me in the right direction)

                  benpate@mastodon.socialB This user is from outside of this forum
                  benpate@mastodon.socialB This user is from outside of this forum
                  benpate@mastodon.social
                  wrote last edited by
                  #18

                  I understand the need to link back to an app. It’s important, but I’m voting for the open web.

                  All the search and discovery interactions *should* start out on a website somewhere, then link back to your home website (or possibly an app) to share and like.

                  But, using a new URL scheme will lock out everyone who doesn’t have an app installed, and that’s a bad UX.

                  Plus, I think we can solve this “back to my server” issue in other ways WITHOUT needing a URL scheme, like: #FEP3b86

                  @ricferrer

                  1 Reply Last reply
                  0
                  • trwnh@mastodon.socialT trwnh@mastodon.social

                    @ricferrer @evan @julian @rimu

                    https: is not for web pages. it's for http resources, which can be any content type. the content should be dispatched to the appropriate content handler; for example:

                    - html opens in an html viewer
                    - pdf opens in a pdf viewer
                    - png opens in a png viewer
                    - mp4 opens in an mp4 viewer

                    activity+json could be opened in an activity viewer. see firefox for example in pic 1:

                    Link Preview Image
                    ricferrer@mastodon.socialR This user is from outside of this forum
                    ricferrer@mastodon.socialR This user is from outside of this forum
                    ricferrer@mastodon.social
                    wrote last edited by
                    #19

                    @trwnh @evan @julian @rimu while this is true now, it was an evolution. As you probably know, the ht in html and http stands for HyperText, the fundamental concept that enabled websites in the early 90s

                    The question is what is more realistic for wide adoption… that all browsers start recognizing activities and decide if rendering in a viewer inside the browser or redirecting outside to an app makes sense.

                    trwnh@mastodon.socialT ricferrer@mastodon.socialR 2 Replies Last reply
                    0
                    • trwnh@mastodon.socialT This user is from outside of this forum
                      trwnh@mastodon.socialT This user is from outside of this forum
                      trwnh@mastodon.social
                      wrote last edited by
                      #20

                      @rimu@mastodon.nzoss.nz @ricferrer @julian @rimu@piefed.social @evan this is the way for web frontends, which are effectively "browsers in browsers". 👍

                      if you are starting with a link in your "level 1" web browser, you need to copy it into your "level 2" web browser. https://www.devever.net/~hl/webappcoupling

                      1 Reply Last reply
                      0
                      • ricferrer@mastodon.socialR ricferrer@mastodon.social

                        @trwnh @evan @julian @rimu while this is true now, it was an evolution. As you probably know, the ht in html and http stands for HyperText, the fundamental concept that enabled websites in the early 90s

                        The question is what is more realistic for wide adoption… that all browsers start recognizing activities and decide if rendering in a viewer inside the browser or redirecting outside to an app makes sense.

                        trwnh@mastodon.socialT This user is from outside of this forum
                        trwnh@mastodon.socialT This user is from outside of this forum
                        trwnh@mastodon.social
                        wrote last edited by
                        #21

                        @ricferrer @evan @julian @rimu any browser right now can recognize, or should be able to recognize, that the http response it got is "content-type: application/activity+json" and then open it in your system's configured activity+json processor, like a PDF or PNG or anything else.

                        i think it's not realistic to fork the entire namespace of http resources based on content-type. it was bad enough that https: was different from http: and we are still dealing with the repercussions of that move today

                        trwnh@mastodon.socialT ricferrer@mastodon.socialR 2 Replies Last reply
                        0
                        • ricferrer@mastodon.socialR ricferrer@mastodon.social

                          @trwnh @evan @julian @rimu while this is true now, it was an evolution. As you probably know, the ht in html and http stands for HyperText, the fundamental concept that enabled websites in the early 90s

                          The question is what is more realistic for wide adoption… that all browsers start recognizing activities and decide if rendering in a viewer inside the browser or redirecting outside to an app makes sense.

                          ricferrer@mastodon.socialR This user is from outside of this forum
                          ricferrer@mastodon.socialR This user is from outside of this forum
                          ricferrer@mastodon.social
                          wrote last edited by
                          #22

                          @trwnh @evan @julian @rimu

                          I think the biggest difference with pdfs, mp4 in your example and an activity is that I most likely want to interact with an activitypub object: either follow, repost/announce, etc for this to work I need to be logged in. So is the solution to include an activitypub client in the browser? Use an external viewer that intercepts through browser extensions?

                          Now even the experience inside mastodon sometimes opens a webview 🤷🏻‍♂️

                          trwnh@mastodon.socialT benpate@mastodon.socialB django@social.coopD 3 Replies Last reply
                          0
                          • trwnh@mastodon.socialT trwnh@mastodon.social

                            @ricferrer @evan @julian @rimu any browser right now can recognize, or should be able to recognize, that the http response it got is "content-type: application/activity+json" and then open it in your system's configured activity+json processor, like a PDF or PNG or anything else.

                            i think it's not realistic to fork the entire namespace of http resources based on content-type. it was bad enough that https: was different from http: and we are still dealing with the repercussions of that move today

                            trwnh@mastodon.socialT This user is from outside of this forum
                            trwnh@mastodon.socialT This user is from outside of this forum
                            trwnh@mastodon.social
                            wrote last edited by
                            #23

                            @ricferrer @evan @julian @rimu if we say that every resource needs *two* identifiers, one to open in a "https" browser and one to open in a "fedi" browser, then why? what happens if someone copies the "fedi" uri outside of the "fedi" context, and the other person doesn't have a "fedi" uri handler on their system? that link becomes useless. not everyone is going to know to copy the "correct" link, or that the "incorrect" link can be rewritten.

                            trwnh@mastodon.socialT 1 Reply Last reply
                            0
                            • trwnh@mastodon.socialT trwnh@mastodon.social

                              @ricferrer @evan @julian @rimu if we say that every resource needs *two* identifiers, one to open in a "https" browser and one to open in a "fedi" browser, then why? what happens if someone copies the "fedi" uri outside of the "fedi" context, and the other person doesn't have a "fedi" uri handler on their system? that link becomes useless. not everyone is going to know to copy the "correct" link, or that the "incorrect" link can be rewritten.

                              trwnh@mastodon.socialT This user is from outside of this forum
                              trwnh@mastodon.socialT This user is from outside of this forum
                              trwnh@mastodon.social
                              wrote last edited by
                              #24

                              @ricferrer @evan @julian @rimu which is more realistic: that literally every application in the world need to start recognizing "fedi" links, or that existing fedi applications start opening https: links locally ("in-app") where possible?

                              1 Reply Last reply
                              0
                              • ricferrer@mastodon.socialR ricferrer@mastodon.social

                                @trwnh @evan @julian @rimu

                                I think the biggest difference with pdfs, mp4 in your example and an activity is that I most likely want to interact with an activitypub object: either follow, repost/announce, etc for this to work I need to be logged in. So is the solution to include an activitypub client in the browser? Use an external viewer that intercepts through browser extensions?

                                Now even the experience inside mastodon sometimes opens a webview 🤷🏻‍♂️

                                trwnh@mastodon.socialT This user is from outside of this forum
                                trwnh@mastodon.socialT This user is from outside of this forum
                                trwnh@mastodon.social
                                wrote last edited by
                                #25

                                @ricferrer @evan @julian @rimu

                                acceptable solutions imo:

                                - a browser extension that lets you POST to your outbox (to publish activities) or proxyUrl (to view activity streams 2.0 resources)
                                - in-app rewriting like https://browser.pub/ that keeps all links as "internal links" with the ability to open an "external link" that takes you out of the app
                                - a system app that handles activity streams 2.0 resources which your default browser can dispatch to (and this may be a PWA!)

                                1 Reply Last reply
                                0
                                • trwnh@mastodon.socialT trwnh@mastodon.social

                                  @ricferrer @evan @julian @rimu any browser right now can recognize, or should be able to recognize, that the http response it got is "content-type: application/activity+json" and then open it in your system's configured activity+json processor, like a PDF or PNG or anything else.

                                  i think it's not realistic to fork the entire namespace of http resources based on content-type. it was bad enough that https: was different from http: and we are still dealing with the repercussions of that move today

                                  ricferrer@mastodon.socialR This user is from outside of this forum
                                  ricferrer@mastodon.socialR This user is from outside of this forum
                                  ricferrer@mastodon.social
                                  wrote last edited by
                                  #26

                                  @trwnh @evan @julian @rimu imho this is unrealistic and wishful thinking. I don’t think all major browsers will agree to do it this way anytime soon. Specially on mobile where most people get their content.

                                  if that doesn’t happen the fediverse will continue to be difficult for ppl accustomed to one app that offers a unified social experience

                                  Before 2015 universal/app links didn’t exist, a URI scheme was the best solution FB, Twitter, Instagram found

                                  trwnh@mastodon.socialT 1 Reply Last reply
                                  0
                                  • ricferrer@mastodon.socialR ricferrer@mastodon.social

                                    @trwnh @evan @julian @rimu

                                    I think the biggest difference with pdfs, mp4 in your example and an activity is that I most likely want to interact with an activitypub object: either follow, repost/announce, etc for this to work I need to be logged in. So is the solution to include an activitypub client in the browser? Use an external viewer that intercepts through browser extensions?

                                    Now even the experience inside mastodon sometimes opens a webview 🤷🏻‍♂️

                                    benpate@mastodon.socialB This user is from outside of this forum
                                    benpate@mastodon.socialB This user is from outside of this forum
                                    benpate@mastodon.social
                                    wrote last edited by
                                    #27

                                    I think the right solution is to use a combination of FedCM (making progress in the W3C) plus Activity Intents (FEP-3b86) to link you back to the web page for your home server.

                                    FedCM will let you “sign in” to your browser, and make that information available (with consent) to the pages you visit online.

                                    Activity Intents publish the operations your home server supports, then give links to complete the intent.

                                    We already have the tools we need.

                                    @ricferrer @trwnh @evan @julian @rimu

                                    trwnh@mastodon.socialT 1 Reply Last reply
                                    0
                                    • ricferrer@mastodon.socialR ricferrer@mastodon.social

                                      @trwnh @evan @julian @rimu imho this is unrealistic and wishful thinking. I don’t think all major browsers will agree to do it this way anytime soon. Specially on mobile where most people get their content.

                                      if that doesn’t happen the fediverse will continue to be difficult for ppl accustomed to one app that offers a unified social experience

                                      Before 2015 universal/app links didn’t exist, a URI scheme was the best solution FB, Twitter, Instagram found

                                      trwnh@mastodon.socialT This user is from outside of this forum
                                      trwnh@mastodon.socialT This user is from outside of this forum
                                      trwnh@mastodon.social
                                      wrote last edited by
                                      #28

                                      @ricferrer @evan @julian @rimu fb twitter instagram etc are also centralized single entities, so there's no contention on who gets to open the link.

                                      ricferrer@mastodon.socialR 1 Reply Last reply
                                      0
                                      • benpate@mastodon.socialB benpate@mastodon.social

                                        I think the right solution is to use a combination of FedCM (making progress in the W3C) plus Activity Intents (FEP-3b86) to link you back to the web page for your home server.

                                        FedCM will let you “sign in” to your browser, and make that information available (with consent) to the pages you visit online.

                                        Activity Intents publish the operations your home server supports, then give links to complete the intent.

                                        We already have the tools we need.

                                        @ricferrer @trwnh @evan @julian @rimu

                                        trwnh@mastodon.socialT This user is from outside of this forum
                                        trwnh@mastodon.socialT This user is from outside of this forum
                                        trwnh@mastodon.social
                                        wrote last edited by
                                        #29

                                        @benpate @ricferrer @evan @julian @rimu should be possible even without necessarily those specific tools -- although fedcm can make it "friendlier" ux-wise

                                        - authenticate your id ("i am this person")
                                        - get the linked claims from the id ("this is my proxy url")
                                        - submit the request ("fetch me this thing")

                                        i mean, you could write a web extension right now that does it in a very minimal way, i'm pretty sure? "POST the current URL to this proxyUrl" is not exactly a difficult thing to do...

                                        trwnh@mastodon.socialT benpate@mastodon.socialB ricferrer@mastodon.socialR 3 Replies Last reply
                                        0
                                        • trwnh@mastodon.socialT trwnh@mastodon.social

                                          @benpate @ricferrer @evan @julian @rimu should be possible even without necessarily those specific tools -- although fedcm can make it "friendlier" ux-wise

                                          - authenticate your id ("i am this person")
                                          - get the linked claims from the id ("this is my proxy url")
                                          - submit the request ("fetch me this thing")

                                          i mean, you could write a web extension right now that does it in a very minimal way, i'm pretty sure? "POST the current URL to this proxyUrl" is not exactly a difficult thing to do...

                                          trwnh@mastodon.socialT This user is from outside of this forum
                                          trwnh@mastodon.socialT This user is from outside of this forum
                                          trwnh@mastodon.social
                                          wrote last edited by
                                          #30

                                          @benpate @ricferrer @evan @julian @rimu there's a shortcoming where mobile browsers don't let you install web extensions as easily but that can also be overcome i think.

                                          trwnh@mastodon.socialT 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups