14 Commits
Author SHA1 Message Date
pharpend 46263f7c86 jr: version bump 2024-03-20 00:45:57 -06:00
pharpend aab6f34ba6 jr: version bump 2024-03-20 00:04:47 -06:00
pharpend 402c758f0a version bump 2024-03-19 22:59:07 -06:00
pharpend e632475f7f jr: version bump 2024-03-19 16:52:45 -06:00
pharpend 5861f326e5 jr: version bump 2024-03-19 02:25:30 -06:00
pharpend e677822f43 [wip] everything is stupid and i hate everyone and everything
the correct thing to do at this point is to factor out "show a yes/no popup
window to user"

the complexity in "open a window and then execute some code in the context of
that window" is mind-boggling

nothing works
2023-10-07 23:14:14 -06:00
pharpend 853be87eeb upgrade manifest v2->v3 2023-10-07 21:42:50 -06:00
pharpend 1cd7c99eaf craig says i need more callbacks 2023-09-04 00:42:47 -06:00
pharpend b680336ba4 all this time i thought that it was the browser that was mentally disabled it turned out the mental disability was inside me all along
======================
NACL mental disability
======================

NACL is mentally disabled and can't be loaded as an ES6 module. That is, it can't be
"imported" using

```js
import * as nacl from './path/to/nacl.js';
```

Instead you have to include it in a page. So we have a page called
`background.html`.

I naively tried this

```html
<script src="dist/jex_include/local-nacl-1.0.3/nacl.js"></script>
```

That of course didn't work because we live in hell.

I initially thought the problem was an invalid hash. No. Notes as I figure it
out:

    Trying to figure out why TweetNaCl isn't loading

    ok so the problem is not an invalid hash, it's something specific
    to nacl

    to have an inline script, its hash must be specified in
    manifest.json

    example (integrity key is not necessary, it is there purely for
    comment purposes)

         beginning of line
        V
        |        <script integrity="sha256-8T3dvQxHPNQvgxzCemw3KGUCM5RhknpCQF6pCcTdFTw=">console.log('bg-test-inline.js line 1!');
        |</script>

    newline is there for hash purposes

    this works if and only if
    'sha256-8T3dvQxHPNQvgxzCemw3KGUCM5RhknpCQF6pCcTdFTw=' is included
    in the manifest.json

    example (top level key):

         "content_security_policy" : "script-src 'self' 'sha256-8T3dvQxHPNQvgxzCemw3KGUCM5RhknpCQF6pCcTdFTw='; object-src 'self'",

    Absent that explicit allow, I get this error from Firefox:

        Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”).

    Refs:
        1. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy
        2. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy#inline_javascript

    If I include the same script as a file,

        <script src="bg-test-inline.js"></script>

    this works irrespective of if I specify it as allowable in the manifest

    nacl is just refusing to load

        Loading failed for the <script> with source “moz-extension://eafd6a74-b75b-4312-9a34-8087b68395e7/dist/jex_include/local-nacl-1.0.3/nacl.js”.

    I initially thought it was a hash problem, but it is not

    TweetNaCL doesn't work as an ES6 module, it works by destructively
    updating the window namespace.  This I think was necessary before
    ES6, and that behavior is retained either because of laziness or
    because of backward compatibility reasons.

    hmm

    so this just plainly doesn't work and i cannot figure out why

        <script src="dist/jex_include/local-nacl-1.0.3/nacl.js"></script>

I think it works if I do it in the popup window instead. Let's try

oh no

no

oh my god

i am so stupid

the problem was that i typed the url wrong

the package is "tweetnacl" not "nacl", and i also need /dist/ too

    <script src="dist/jex_include/local-tweetnacl-1.0.3/dist/nacl.js"></script>

that works

all this time i thought that it was the browser that was mentally disabled

it turned out the mental disability was inside me all along

alright well I discovered a potential future pitfall at least
2023-07-26 17:21:17 -06:00
pharpend ff8670d592 committing because switching branches 2023-07-18 14:48:23 -06:00
pharpend 19203cc003 have page script talking to controller 2023-07-14 20:53:35 -06:00
pharpend cbe6d51eb9 have transitioned jr to typescript 2023-01-23 00:40:22 -07:00
pharpend 279bd888e3 [wip] getting keypair stuff to work 2023-01-10 18:28:20 -07:00
pharpend 529cf078e1 jrx basics 2022-12-20 03:02:06 -07:00