ref: dd52020bb30338f9eb23910e2fe09a6667dcafcd
parent: 6f72ddfb9a89d2d264fb8b4d59431dbe0342d4f6
author: Philip Silva <philip.silva@protonmail.com>
date: Sun Jan 24 06:39:04 EST 2021
referrer
--- a/domino-lib/Document.js
+++ b/domino-lib/Document.js
@@ -367,7 +367,7 @@
contentType: { get: function contentType() { return this._contentType; } },
URL: { get: function URL() { return this._address; } },
domain: { get: utils.nyi.bind(this, 'domain'), set: utils.nyi.bind(this, 'domain') },
- referrer: { get: utils.nyi.bind(this, 'referrer') },
+ referrer: { get: opossum.referrer },
//cookie: { get: utils.nyi.bind(this, 'cookie get'), set: utils.nyi.bind(this, 'cookie set') },
lastModified: { get: utils.nyi.bind(this, 'lastModified get') },
location: {
--- a/domino/domino.go
+++ b/domino/domino.go
@@ -112,7 +112,7 @@
var domino = require('domino-lib/index');
var Element = domino.impl.Element; // etc
- Object.assign(this, domino.createWindow(s.html, 'http://example.com'));
+ Object.assign(this, domino.createWindow(opossum.html, 'http://example.com'));
window = this;
window.parent = window;
window.top = window;
@@ -168,12 +168,14 @@
type S struct {
Buf string `json:"buf"`
HTML string `json:"html"`
+ Referrer func() string `json:"referrer"`
}
vm.SetFieldNameMapper(goja.TagFieldNameMapper("json", true))
- vm.Set("s", S{
+ vm.Set("opossum", S{
HTML: d.html,
Buf: "yolo",
+ Referrer: func() string { return "https://example.com" },
})
}
--- a/domino/domino_test.go
+++ b/domino/domino_test.go
@@ -456,3 +456,20 @@
}
d.Stop()
}
+
+func TestReferrer(t *testing.T) {
+ d := NewDomino(simpleHTML)
+ d.Start()
+ script := `
+ document.referrer;
+ `
+ res, err := d.Exec(script, true)
+ if err != nil {
+ t.Fatalf("%v", err)
+ }
+ t.Logf("res=%v", res)
+ if res != "https://example.com" {
+ t.Fatal()
+ }
+ d.Stop()
+}