remove mental disability notes, committed by accident
This commit is contained in:
@@ -1,98 +0,0 @@
|
|||||||
# 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
|
|
||||||
|
|
||||||
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
|
|
||||||
Reference in New Issue
Block a user