View Issue Details

IDProjectCategoryView StatusLast Update
0004698Talerwallet (WebExtensions)public2016-11-20 03:26
ReportertgAssigned ToFlorian Dold 
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
PlatformFirefox 52OSLinuxOS Version
Product VersionSVN HEAD 
Target Version0.2Fixed in Version0.2 
Summary0004698: errors in Firefox
DescriptionFIXED: a JS error occurs when opening the popup
FIXED: payment fails
TagsNo tags attached.

Relationships

has duplicate 0004684 closedtg wallet does not run in Firefox 49 

Activities

Florian Dold

2016-09-29 21:02

manager   ~0011208

This probably means that the background page is not running correctly, due to some Firefox issue.

tg

2016-09-30 20:43

developer   ~0011218

Last edited: 2016-09-30 20:57

View 3 revisions

popup error:

----------------------------------------------------------------------

Extension error: TypeError: resp is undefined moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js 166
[[Exception stack
updateBalance/<@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:166:1
Async*updateBalance@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:165:25
Controller@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:160:25
controller@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:154:28
checkPrevented@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1408:21
m.module@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1462:10
routeByValue@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1706:4
m.route/redirect@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1566:10
m.route@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1663:5
m.route/redirect@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1573:6
m.route/global[listener]@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1585:48
m.route@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1589:4
main@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:38:9
execMain@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/module-trampoline.js:58:5
@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/module-trampoline.js:70:7
Async*@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/module-trampoline.js:66:1
Current stack
runSafeSyncWithoutClone@resource://gre/modules/ExtensionUtils.jsm:56:129
runSafeWithoutClone@resource://gre/modules/ExtensionUtils.jsm:249:38
wrapPromise/</<@resource://gre/modules/ExtensionUtils.jsm:432:15
withLastError@resource://gre/modules/ExtensionUtils.jsm:372:14
wrapPromise/<@resource://gre/modules/ExtensionUtils.jsm:426:11
Async*wrapPromise@resource://gre/modules/ExtensionUtils.jsm:413:7
callAsyncFunction@resource://gre/modules/ExtensionUtils.jsm:1592:12
inject/stub@resource://gre/modules/Schemas.jsm:1567:16
updateBalance@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:165:25
Controller@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:160:25
controller@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:154:28
checkPrevented@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1408:21
m.module@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1462:10
routeByValue@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1706:4
m.route/redirect@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1566:10
m.route@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1663:5
m.route/redirect@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1573:6
m.route/global[listener]@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1585:48
m.route@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/vendor/mithril.js:1589:4
main@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/popup/popup.js:38:9
execMain@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/module-trampoline.js:58:5
@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/module-trampoline.js:70:7
Async*@moz-extension://fa04d5ad-654a-4f11-a857-013f984d4677/lib/module-trampoline.js:66:1
]]

----------------------------------------------------------------------


Had to reload the extensions after enabling debug to see the rest of the errors:

----------------------------------------------------------------------

No matching message response handler for 897-1 MessageChannel.jsm:695

No matching message response handler for 911-0 MessageChannel.jsm:695
    _handleResponse resource://gre/modules/MessageChannel.jsm:695:7
    bound _handleResponse self-hosted
    receiveMessage resource://gre/modules/MessageChannel.jsm:161:5

wallet failed main.js:34:5

ChromeBadge@moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/wallet/chromeBadge.js:58:31
wxMain@moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/wallet/wxMessaging.js:218:36
@moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/background/main.js:31:5
Async*@moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/background/main.js:27:1
  main.js:35:5
    <anonymous> moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/background/main.js:35:5
    (Async: promise callback)
    <anonymous> moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/background/main.js:27:1

----------------------------------------------------------------------

problem is that getBackgroundPage() returns null.
fixed by running the scripts after onLoad on the background page

now the popup shows, more errors in the next comment

This is with Firefox Developer Edition 51.0a2
https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2
https://www.mozilla.org/en-US/firefox/developer/

tg

2016-09-30 20:48

developer   ~0011219

Tested:

1. withdrawal from bank: works

2. payment

on https://shop.test.taler.net/checkout?donation_receiver=GNUnet&donation_amount=1.0
and https://blog.test.taler.net/essay/Foreword

fails with:

Request type {"type":"hash-contract","detail":{"contract":{"H_wire":"HF4NY4ZWTJVB9QZJX1HVBXQFFSQ1J3Y0N01X6BT03996D313RSVYE0042F0S9KDCPJ881KZ456WJTV5BPH6G4EKX97EQA2AA3J1XTB8","amount":{"currency":"PUDOS","fraction":0,"value":1},"auditors":[],"exchanges":[{"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"}],"expiry":"/Date(1483900905)/","fulfillment_url":"https://shop.test.taler.net/fulfillment?uuid=${H_contract}&receiver=GNUnet&aval=1&timestamp=1475260905&tid=806380161942973&afrac=0&acurr=PUDOS","locations":{},"max_fee":{"currency":"PUDOS","fraction":0,"value":3},"merchant":{"address":"nowhere","jurisdiction":"none","name":"Kudos Inc."},"merchant_pub":"941RS3ZREC9XMCNXES0AXHMMD5BZ9EQJJK39NZHN753Q2P3ZMZXG","products":[{"description":"Donation to GNUnet","price":{"currency":"PUDOS","fraction":0,"value":1},"product_id":0,"quantity":1}],"receiver":"GNUnet","refund_deadline":"/Date(1475260905)/","timestamp":"/Date(1475260905)/","transaction_id":806380161942973}}} unknown, req hash-contract wxMessaging.js:173:13
    dispatch moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/wallet/wxMessaging.js:173:13
    wxMain/</< moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/wallet/wxMessaging.js:251:28
Error: hashing failed notify.js:56:28
got connect! wxMessaging.js:307:25
got connect! wxMessaging.js:307:25
Request type {"type":"hash-contract","detail":{"contract":{"H_wire":"QM3P293WBQTZ4Y5Q0BBMVRE5A1TKVESB3HH373HQC62DP81KMHHQEQZV00D65BHF3GNT888TSAD7F95BEN1GK30Y7XY2KYE9CGC55CG","amount":{"currency":"PUDOS","fraction":100000,"value":0},"auditors":[],"exchanges":[{"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"}],"expiry":"/Date(1483901195)/","fulfillment_url":"https://blog.test.taler.net/essay/Foreword?uuid=${H_contract}&timestamp=1475261195&tid=394828689883540","locations":{},"max_fee":{"currency":"PUDOS","fraction":0,"value":3},"merchant":{"address":"nowhere","jurisdiction":"none","name":"Kudos Inc."},"merchant_pub":"1M5R8ENJN20BAW9V803D221YD8VWYPGT9FP2SSZ4B3QBX2GTTX60","products":[{"description":"Essay: Foreword","price":{"currency":"PUDOS","fraction":100000,"value":0},"product_id":0,"quantity":1}],"refund_deadline":"/Date(1475261195)/","timestamp":"/Date(1475261195)/","transaction_id":394828689883540}}} unknown, req hash-contract wxMessaging.js:173:13
    dispatch moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/wallet/wxMessaging.js:173:13
    wxMain/</< moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/wallet/wxMessaging.js:251:28
Error: hashing failed

Florian Dold

2016-10-03 14:06

manager   ~0011231

The last error looks like a problem in the crypto WebWorker, specifically when hashing things.

tg

2016-10-04 21:36

developer   ~0011239

Last edited: 2016-10-04 21:52

View 2 revisions

new day, new errors:

this time didn't have anything about hashing, but instead

updating old exchange wallet.js:825:29
Failed to deplete reserve, trying again in 74306.65529801634 ms wallet.js:516:29
updating old exchange wallet.js:825:29
Failed to deplete reserve, trying again in 180000 ms wallet.js:516:29
updating old exchange wallet.js:825:29
Failed to deplete reserve, trying again in 180000 ms wallet.js:516:29
updating old exchange wallet.js:825:29
Failed to deplete reserve, trying again in 180000 ms wallet.js:516:29
...
got connect! wxMessaging.js:337:25
NO_DYNAMIC_EXECUTION was set, using slow cwrap implementation libwrapper.js:1:3328
no repurchase: no correlation id wallet.js:929:29
notifying all ports wxMessaging.js:351:21
loading moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/pages/confirm-contract.js module-trampoline.js:64:1
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. confirm-contract.html
module imported moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/pages/confirm-contract.js module-trampoline.js:68:5
executing module main module-trampoline.js:57:5
{H_contract: "4SMSDW1MEMJKCS78KG31C75T4572XKP9JPXFG35B27Q30E11KNRPZXVA7WT7TMPEN1TGD0MK2BX3R5RQD50P3FYT8G6WES7EDSE0QAR", contract: Object, merchant_sig: "JRR4RCNCKPYQS4R33S769Z1QMY427ATHWMBGPTPNT193MF89NEB4KRPPF2C8T3QMETNYJEQA3Y4NTRESN5TN3QJAN0QF5E5SH073Y3G"}
confirm-contract.js:25
Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.test.taler.net/" wallet.js:287:29
{https://exchange.test.taler.net/: Array[10]}
wallet.js:332
Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.test.taler.net/" wallet.js:287:29
{https://exchange.test.taler.net/: Array[10]}
wallet.js:332
Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.test.taler.net/" wallet.js:287:29
{https://exchange.test.taler.net/: Array[10]}
wallet.js:332
Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.test.taler.net/" wallet.js:287:29
{https://exchange.test.taler.net/: Array[10]}
wallet.js:332
Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.test.taler.net/" wallet.js:287:29
{https://exchange.test.taler.net/: Array[10]}
wallet.js:332
executing confirmPay wallet.js:422:25
Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.test.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.test.taler.net/" wallet.js:287:29
{https://exchange.test.taler.net/: Array[10]}
wallet.js:332
notifying all ports wxMessaging.js:351:21
contract Object { H_wire: "QM3P293WBQTZ4Y5Q0BBMVRE5A1TKVESB3HH…", amount: Object, auditors: Array[0], exchanges: Array[1], expiry: "/Date(1484248566)/", fulfillment_url: "https://blog.test.taler.net/essay/F…", locations: Object, max_fee: Object, merchant: Object, merchant_pub: "1M5R8ENJN20BAW9V803D221YD8VWYPGT9FP…", 4 more… } confirm-contract.js:80:17
got connect! wxMessaging.js:337:25


And this one is from the blog page:

Error: Permission denied to access property "callId" taler-wallet-lib.js:70:1
    callWallet/handler https://blog.test.taler.net/static/web-common/taler-wallet-lib.js:70:1
    addHandler/handlerWrap/responder moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/content_scripts/notify.js:135:21
    registerHandlers/</< moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/content_scripts/notify.js:272:17
    runSafeSyncWithoutClone resource://gre/modules/ExtensionUtils.jsm:54:14
    runSafeWithoutClone resource://gre/modules/ExtensionUtils.jsm:249:38
    bound runSafeWithoutClone self-hosted
    wrapPromise/< resource://gre/modules/ExtensionUtils.jsm:422:13
    onFulfilled self-hosted
    

in callWallet()
70 if (evt.detail.callId !== callId) {


so there's an error about the character encoding of the contract,
and also loads of 'failed to deplete reserve' errors, what does this mean?
and this callId issue from the web page.

Florian Dold

2016-10-04 21:39

manager   ~0011240

> Error: Permission denied to access property "callId" taler-wallet-lib.js:70:1
https://blog.test.taler.net/static/web-common/taler-wallet-lib.js

This looks very weird!


"Failed to deplete reserve" just means that something failed while withdrawing coins, and that we'll retry again. The background page should log the reason for that.

tg

2016-10-04 21:56

developer   ~0011241

added stack trace for the callId error above,

also it looks like the payment actually succeeded,
the wallet has 0.10 less, and also the history has this entry:
Confirmed payment of 0.10 PUDOS to merchant Kudos Inc.. (view product)

except the web page runs into this callId error and gets stuck at
"Processing payment with GNU Taler, please wait.."

tg

2016-10-04 22:04

developer   ~0011242

after the browser crashed somewhere in the debugger, and restarted,
have no more 'failed to deplete reserve' errors,
but it also appears the wallet lost, after restart I had 0 coins and empty history

Florian Dold

2016-10-04 22:04

manager   ~0011243

Does the fulfillment page show after manually hitting refresh? If so, this might be a problem with the wallet, updating to the most recent webstore version should fix it.

tg

2016-10-04 22:06

developer   ~0011244

no, even if I refresh I get the same processing payment message and the same callId error, also tried to go via the history, same result

tg

2016-10-04 22:30

developer   ~0011246

evt: taler-get-payment-result { target: HTMLDocument → Foreword, isTrusted: false, detail: Object, eventPhase: 0, bubbles: false, cancelable: false, defaultPrevented: false, timeStamp: 620.711515, originalTarget: HTMLDocument → Foreword, explicitOriginalTarget: HTMLDocument → Foreword, NONE: 0 } taler-wallet-lib.js:72:1

evt.detail: Object { H_contract: "PDNH6BPENQSKZCYF3M0XD9ST54ANNSJXXN0…", contract: Object, payment: Object, callId: 1 }

Florian Dold

2016-10-04 22:32

manager   ~0011247

This looks all good ... but where does the "Permission denied" error come from?

It seems like Firefox is blocking access to this property? Is there some bug in some security policy?

Florian Dold

2016-10-04 22:32

manager   ~0011248

Note that the event taler-get-payment-result is sent by the extension (running as a content script) and received by the merchant's code.

tg

2016-10-04 22:34

developer   ~0011249

when accessing the following page
https://blog.test.taler.net/essay/Foreword?uuid=PDNH6BPENQSKZCYF3M0XD9ST54ANNSJXXN0A9292131D7CB2T3W4R9Y62KH4RMGQRQHFKA2FP7XQA0E9M5DT18AX951M006EAA4JGQR&timestamp=1475611331&tid=32619478732754

it loads properly when entering the URL directly or following a link,
but when pressing ctrl+R an error occurs:

taler install detected taler-wallet-lib.js:314:17
TypeError: document.getElementById(...) is null[Learn More] purchase.js:4:3
    handleWalletPresent https://blog.test.taler.net/static/purchase.js:4:3
    handleInstall https://blog.test.taler.net/static/web-common/taler-wallet-lib.js:244:13
    handleProbe https://blog.test.taler.net/static/web-common/taler-wallet-lib.js:316:17
    addHandler/handlerWrap/responder moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/content_scripts/notify.js:135:21
    registerHandlers/< moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/content_scripts/notify.js:147:13
    addHandler/handlerWrap moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/content_scripts/notify.js:137:17
    probeTaler moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/taler-wallet-lib.js:299:13
    onProbeTimeout moz-extension://701f81b2-d76f-4a22-bcf8-97f735a69de1/lib/taler-wallet-lib.js:312:13

looks like trying to access an element before it is loaded

Florian Dold

2016-10-04 22:41

manager   ~0011250

Interesting. We've had some of these bugs before in taler-wallet-lib. This time, it seems like it's a problem with the merchant though ...

Interesting that Chrome isn't bothered by this. Maybe by accident the timing is always right.

I'll look into fixing this.

The root of the problem is that the callback for taler.onPresent is called even if the DOM is not initialized. This is expected behavior though, and should be fixed by the merchant frontend.

tg

2016-10-04 22:41

developer   ~0011251

yes, FF is blocking access to this property.
I can console.log(evt.detail) but evt.detail.callId throws the permission denied error

and points to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Property_access_denied
i.e. violating same-origin policy

so apparently the web site can't access the content of objects set by the content-script.. any other way to pass this around? perhaps serialized or something?

Florian Dold

2016-10-04 22:45

manager   ~0011252

There's one other way to communicate between content script and the page: https://developer.chrome.com/extensions/content_scripts#host-page-communication

Is this method not subject to the same-origin restrictions? Tg, could you somehow find out? It would be easy to add this to the wallet/taler-wallet-lib without changing too much code.

Maybe there is something that needs to be added to manifest.json to allow access?

Or it's simply a bug in Firefox and we should report it ...

AFAIK the "detail" can only be an object, so if we can't access it, we can't communicate payload ...

tg

2016-10-05 00:01

developer   ~0011254

issue was:

https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Firing_from_privileged_code_to_non-privileged_code

and apparently it's even supported from FF50
https://blog.mozilla.org/addons/2016/08/25/webextensions-in-firefox-50/

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.cloneInto

I added code to notify.ts that handles this, plz make it proper typescript, think it needs some interface definitions otherwise gives me compile errors..
and also needs to be fixed at all other uses of CustomEvent

tg

2016-10-05 00:02

developer   ~0011255

another issue:

now this appeared on the History tab:

Merchant Kudos Inc. offered contract AR0V1...
with a link to moz-extension://.../view-contract.html
which does not exist

tg

2016-10-05 00:06

developer   ~0011256

OK, so now withrawal & payment works,
anything else to be tested?

Florian Dold

2016-10-05 00:12

manager   ~0011257

I've added the TypeScript declaration. The view-contract.html doesn't exist, it's simply not implemented yet.

Could we maybe document what the exact Firefox version is that works with the wallet?

tg

2016-10-05 00:18

developer   ~0011258

I'm testing it with:

Firefox Developer Edition 51.0a2
https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2 [^]
https://www.mozilla.org/en-US/firefox/developer/ [^]

cloneInto was added in FF50, haven't tried with that..

tg

2016-10-05 00:26

developer   ~0011259

OK just checked, FF50.0b4 does not work, so 51 is the first one that works

tg

2016-10-05 21:41

developer   ~0011261

Last edited: 2016-10-05 21:43

View 2 revisions

it works now in FF50.0b4 as well
https://archive.mozilla.org/pub/firefox/releases/50.0b4/linux-x86_64/en-US/firefox-50.0b4.tar.bz2

had to apply workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=1101653

tg

2016-10-05 21:58

developer   ~0011262

Last edited: 2016-10-05 22:00

View 2 revisions

to test

1. download & run https://archive.mozilla.org/pub/firefox/releases/50.0b4/linux-x86_64/en-US/firefox-50.0b4.tar.bz2
   or https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-aurora/firefox-51.0a2.en-US.linux-x86_64.tar.bz2
2. go to about:debugging
3. load unpacked extension
4. pick manifest.json from taler git

Christian Grothoff

2016-10-06 13:50

manager   ~0011264

Ok, next step: can you please look at how to support the proper FF-way of installing the extension? (I understand this may take time if they still do audits, but we should start the process; also, we need to make sure to check that the FF installation is a supported version / put in the right version numbers into the manifest, if that's not there yet (didn't check, @ CDG).)

tg

2016-10-06 14:35

developer   ~0011265

added min_version to manifest, and adjusted the build process to also create an .xpi

since FF48 addons must be signed by mozilla, so we'd have to submit it to addons.mozilla.org

tg

2016-10-11 16:47

developer   ~0011290

TypeError: sheet.rules is undefined taler-wallet-lib.js:362:24

Florian Dold

2016-10-11 17:17

manager   ~0011291

Last edited: 2016-10-11 17:17

View 2 revisions

That's a known problem in v0.1.0.

If you check out v0.1.1 of the wallet, it should work there.

(Chrome allows .rules, Firefox needs .cssRules)

tg

2016-10-11 17:17

developer   ~0011292

this was already fixed, but the web-common submodule was not pointing to the latest revision

tg

2016-10-11 17:38

developer   ~0011296

addons.mozilla.org validation results: 3 warnings

1. Use of document.write strongly discouraged.
Warning: document.write will fail in many circumstances when used in extensions, and has potentially severe security repercussions when used improperly. Therefore, it should not be used.
lib/vendor/system-csp-production.src.js line 4507 column 5

2. mozIndexedDB used as an object key/property
Warning: mozIndexedDB has been removed; use indexedDB instead.
lib/emscripten/libwrapper.js line 1 column 275768

3. mozIndexedDB used as an object key/property
Warning: mozIndexedDB has been removed; use indexedDB instead.
lib/emscripten/libwrapper.js line 1 column 325351

tg

2016-10-11 19:47

developer   ~0011297

OK these are from external libraries used for compatibility with older browsers and not invoked anywhere

tg

2016-10-11 19:48

developer   ~0011298

when trying to buy https://blog.demo.taler.net/essay/10._Selling_Free_Software

Checking for merchant's exchange {"master_pub":"CQQZ9DY3MZ1ARMN5K1VKDETS04Y2QCKMMCFHZSWJWWVN82BTTH00","url":"https://exchange.demo.taler.net/"} wallet.js:319:29
joining on "https://exchange.test.taler.net/" query.js:129:25
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
got coin for exchange "https://exchange.demo.taler.net/" wallet.js:287:29
same pubkey for different currencies wallet.js:299:33
not suitable exchanges found wallet.js:330:29
[object Object]
wallet.js:332
not confirming payment, insufficient coins wallet.js:457:29
check-pay error {"error":"coins-insufficient"}

tg

2016-10-11 20:00

developer   ~0011299

also, the js-free version does not work in firefox,

in wxMessaging it reaches handleHttpPayment
and sets
            paymentRequestCookies[tabId] = { type: "fetch", contractUrl };

what's supposed to happen after?
how is paymentRequestCookies used after?

tg

2016-10-11 20:15

developer   ~0011300

after that the ping handler is called twice:

ping wxMessaging.js:30:17
id: 3
info: Object { type: "fetch", contractUrl: "https://blog.demo.taler.net/generat…" }
promise: Promise { <state>: "fulfilled", <value>: Object } wxMessaging.js:36:17

ping wxMessaging.js:30:17
id: 3
info: undefined
promise: Promise { <state>: "fulfilled", <value>: undefined }

tg

2016-10-11 20:16

developer   ~0011301

in the ping handler if I comment out

//delete paymentRequestCookies[id];

then it reaches the payment page

Florian Dold

2016-10-11 20:18

manager   ~0011302

This might be a bug. Commenting that line out serves as a workaround, but leaks tiny amounts of memory.

Florian Dold

2016-10-11 20:18

manager   ~0011303

I'll try to fix it in the wallet/taler-wallet-lib.

tg

2016-10-11 20:22

developer   ~0011304

Last edited: 2016-10-11 20:24

View 3 revisions

if i comment out that line after payment it gets stuck in receiving pings, guess because it's not deleted?

if i reload the page in a new tab it then shows the article, so it's related to that indeed

Florian Dold

2016-10-11 20:27

manager   ~0011305

The issue in the wallet is fixed ef5bc2c353de. We now shouldn't accidentally delete tab cookies set via 402 payments.

Florian Dold

2016-10-11 20:28

manager   ~0011306

> if i comment out that line after payment it gets stuck in receiving pings, guess because it's not deleted?

Yes, that's the issue. Should be fixed now. We were accidentally clearing cookies in another place before.

tg

2016-10-11 20:36

developer   ~0011307

Last edited: 2016-10-11 20:41

View 2 revisions

tested, works now, uploaded new version to AMO

tg

2016-10-11 20:42

developer   ~0011308

Last edited: 2016-10-11 21:01

View 2 revisions

the payment error above in #c11298 only happens in one specific wallet,
it may have been corrupted somehow, in another profile it works fine.

tg

2016-10-11 21:33

developer   ~0011309

flickering icon animation is reported at https://bugzilla.mozilla.org/show_bug.cgi?id=1309347

tg

2016-10-12 10:53

developer   ~0011311

"WONTFIX: Animated images for toolbar buttons are intentionally not supported."

tg

2016-10-12 17:05

developer   ~0011316

it still occurs sometimes that

TypeError: document.getElementById(...) is null purchase.js:23:3
TypeError: document.getElementById(...) is null purchase.js:4:3

Florian Dold

2016-10-12 17:06

manager   ~0011317

On demo or on test? Shouldn't occur on test, can occur on demo.

tg

2016-10-12 17:06

developer  

wallet-1.json (138,990 bytes)

tg

2016-10-12 17:07

developer   ~0011318

Last edited: 2016-10-12 17:09

View 2 revisions

yes that was on demo.

also, attached wallet-1.json, which has the db where I get the "insufficient coins" error mentioned in #c11298

tg

2016-10-12 17:10

developer   ~0011319

Last edited: 2016-10-12 17:11

View 2 revisions

ah, i think the problem is that i got the coins on test, and can't spend those on demo, only on test

Florian Dold

2016-10-12 17:11

manager   ~0011320

yeah it's _P_udos vs _K_udos.

Issue History

Date Modified Username Field Change
2016-09-29 20:47 tg New Issue
2016-09-29 20:47 tg Status new => assigned
2016-09-29 20:47 tg Assigned To => Florian Dold
2016-09-29 20:49 tg Reproducibility have not tried => always
2016-09-29 21:02 Florian Dold Note Added: 0011208
2016-09-30 20:43 tg Note Added: 0011218
2016-09-30 20:48 tg Note Added: 0011219
2016-09-30 20:53 tg Note Edited: 0011218 View Revisions
2016-09-30 20:55 tg Summary popup error in Firefox => errors in Firefox
2016-09-30 20:55 tg Description Updated View Revisions
2016-09-30 20:55 tg Steps to Reproduce Updated View Revisions
2016-09-30 20:57 tg Note Edited: 0011218 View Revisions
2016-09-30 20:58 tg Additional Information Updated View Revisions
2016-10-03 14:06 Florian Dold Note Added: 0011231
2016-10-03 14:06 Florian Dold Assigned To Florian Dold => tg
2016-10-04 21:36 tg Note Added: 0011239
2016-10-04 21:39 Florian Dold Note Added: 0011240
2016-10-04 21:52 tg Note Edited: 0011239 View Revisions
2016-10-04 21:56 tg Note Added: 0011241
2016-10-04 22:04 tg Note Added: 0011242
2016-10-04 22:04 Florian Dold Note Added: 0011243
2016-10-04 22:06 tg Note Added: 0011244
2016-10-04 22:30 tg Note Added: 0011246
2016-10-04 22:32 Florian Dold Note Added: 0011247
2016-10-04 22:32 Florian Dold Note Added: 0011248
2016-10-04 22:34 tg Note Added: 0011249
2016-10-04 22:41 Florian Dold Note Added: 0011250
2016-10-04 22:41 tg Note Added: 0011251
2016-10-04 22:45 Florian Dold Note Added: 0011252
2016-10-05 00:01 tg Note Added: 0011254
2016-10-05 00:02 tg Note Added: 0011255
2016-10-05 00:04 tg Description Updated View Revisions
2016-10-05 00:06 tg Note Added: 0011256
2016-10-05 00:12 Florian Dold Note Added: 0011257
2016-10-05 00:18 tg Note Added: 0011258
2016-10-05 00:26 tg Note Added: 0011259
2016-10-05 18:24 tg Status assigned => resolved
2016-10-05 18:24 tg Fixed in Version => SVN HEAD
2016-10-05 18:24 tg Resolution open => fixed
2016-10-05 21:41 tg Note Added: 0011261
2016-10-05 21:41 tg Status resolved => feedback
2016-10-05 21:41 tg Resolution fixed => reopened
2016-10-05 21:43 tg Note Edited: 0011261 View Revisions
2016-10-05 21:58 tg Note Added: 0011262
2016-10-05 21:58 tg Status feedback => assigned
2016-10-05 22:00 tg Note Edited: 0011262 View Revisions
2016-10-06 13:50 Christian Grothoff Note Added: 0011264
2016-10-06 14:35 tg Note Added: 0011265
2016-10-07 00:30 Christian Grothoff Status assigned => resolved
2016-10-07 00:30 Christian Grothoff Resolution reopened => fixed
2016-10-07 00:30 Christian Grothoff Fixed in Version SVN HEAD => 0.1
2016-10-07 00:30 Christian Grothoff Target Version => 0.1
2016-10-09 01:44 Christian Grothoff Relationship added has duplicate 0004684
2016-10-11 16:47 tg Note Added: 0011290
2016-10-11 16:47 tg Status resolved => feedback
2016-10-11 16:47 tg Resolution fixed => reopened
2016-10-11 17:17 Florian Dold Note Added: 0011291
2016-10-11 17:17 Florian Dold Note Edited: 0011291 View Revisions
2016-10-11 17:17 tg Note Added: 0011292
2016-10-11 17:17 tg Status feedback => assigned
2016-10-11 17:17 tg Status assigned => resolved
2016-10-11 17:17 tg Resolution reopened => fixed
2016-10-11 17:28 Christian Grothoff Status resolved => closed
2016-10-11 17:38 tg Assigned To tg => Florian Dold
2016-10-11 17:38 tg Note Added: 0011296
2016-10-11 17:38 tg Status closed => feedback
2016-10-11 17:38 tg Resolution fixed => reopened
2016-10-11 19:47 tg Note Added: 0011297
2016-10-11 19:47 tg Status feedback => assigned
2016-10-11 19:48 tg Note Added: 0011298
2016-10-11 20:00 tg Note Added: 0011299
2016-10-11 20:15 tg Note Added: 0011300
2016-10-11 20:16 tg Note Added: 0011301
2016-10-11 20:18 Florian Dold Note Added: 0011302
2016-10-11 20:18 Florian Dold Note Added: 0011303
2016-10-11 20:22 tg Note Added: 0011304
2016-10-11 20:23 tg Note Edited: 0011304 View Revisions
2016-10-11 20:24 tg Note Edited: 0011304 View Revisions
2016-10-11 20:27 Florian Dold Note Added: 0011305
2016-10-11 20:28 Florian Dold Note Added: 0011306
2016-10-11 20:36 tg Note Added: 0011307
2016-10-11 20:41 tg Note Edited: 0011307 View Revisions
2016-10-11 20:42 tg Note Added: 0011308
2016-10-11 21:01 tg Note Edited: 0011308 View Revisions
2016-10-11 21:33 tg Note Added: 0011309
2016-10-12 10:53 tg Note Added: 0011311
2016-10-12 17:05 tg Note Added: 0011316
2016-10-12 17:06 Florian Dold Note Added: 0011317
2016-10-12 17:06 tg File Added: wallet-1.json
2016-10-12 17:07 tg Note Added: 0011318
2016-10-12 17:09 tg Note Edited: 0011318 View Revisions
2016-10-12 17:10 tg Note Added: 0011319
2016-10-12 17:11 tg Note Edited: 0011319 View Revisions
2016-10-12 17:11 Florian Dold Note Added: 0011320
2016-10-14 20:44 tg Status assigned => resolved
2016-10-14 20:44 tg Resolution reopened => fixed
2016-10-14 23:57 Christian Grothoff Fixed in Version 0.1 => 0.2
2016-10-14 23:57 Christian Grothoff Target Version 0.1 => 0.2
2016-11-20 03:26 Christian Grothoff Status resolved => closed