Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doesnt execute on Mobile Safari iOS 11.4.1 (Audit Fingerprint broke it) #342

Closed
ghost opened this issue Jul 17, 2018 · 17 comments
Closed

Doesnt execute on Mobile Safari iOS 11.4.1 (Audit Fingerprint broke it) #342

ghost opened this issue Jul 17, 2018 · 17 comments

Comments

@ghost
Copy link

ghost commented Jul 17, 2018

I'm using the latest master branch and when 1.8.0 tries to get executed, Mobile Safari loads the JS but nothing comes out. If I revert back to a version from last year (1.5.1), it works just fine.

@jonashaag
Copy link
Contributor

Please paste console output or other debug info. The info you provided is not much to go on

@ghost
Copy link
Author

ghost commented Jul 18, 2018

I understand, but I literally get nothing using Safari Developer (Web Inspector).
My js is written to console.log(result) and console.log(components) but I get nothing. Safari on Mac works fine and I get console data, but not from iOS Safari. I can see in Web Inspector Network tab that the JS is loading just fine and the HTML for the test page loads fine too. Web Inspector leads me to believe that when it attempts to execute the fingerprint2.js that is stops and terminates it, thus get get nothing.

@jonashaag
Copy link
Contributor

Please provide a minimal reproducing example e.g. Jsfiddle

@ghost
Copy link
Author

ghost commented Jul 18, 2018

Your example > https://jsfiddle.net/L2gLq4rg/
This does not render any information in the white box on iPhone Mobile Safari.

@jonashaag
Copy link
Contributor

Works for me. You have an ad blocker on iOS?

@ghost
Copy link
Author

ghost commented Jul 18, 2018

Nope. I know that many users have the same issue because I’ve used it on a mobile site and we quickly got complaints only from iPhone users.

I tried private browsing too. Same behavior.
Running iPhone 8 simulator on Mac OS using the mobile safari gives me the same behavior.

@jonashaag
Copy link
Contributor

Can you try to find the commit that caused the problem? It's 96 commits between 1.5.1 and master, so if you use binary search that's a maximum of 7 commits to check. Be sure to use the non-minified version (fingerprint.js)

@ghost
Copy link
Author

ghost commented Jul 24, 2018

This commit, it works. Narrowing.

commit de23695
Author: Jonas Haag jonas@lophus.org
Date: Mon Apr 9 18:03:31 2018 +0200

Version 1.8.0

@ghost
Copy link
Author

ghost commented Jul 24, 2018

Broken:
commit caf14da
Works:
commit 83eeaf0

I verified using:
git checkout 83eeaf0 fingerprint2.js
Then copied the file to test server that I ran from my iPhone.
Same for the broken version.

@ghost ghost changed the title Doesnt execute on Mobile Safari iOS 11.4.1 Doesnt execute on Mobile Safari iOS 11.4.1 (Audit Fingerprint broke it) Jul 24, 2018
@jonashaag
Copy link
Contributor

Hm have you tried the latest master at all? We've added error handling to audio fingerprinting a few commits after caf14da. Also, does it work if you excludeAudioFP?

To see developer console errors you can also attach macOS Safari developer tools with a USB cable (enable debugging somewhere in the iPhone Safari/developer settings)

@ghost
Copy link
Author

ghost commented Jul 26, 2018

Yup, been using the MacOS Safari Developer USB cable method for a while now for testing. I tried
var options = {extendedJsFonts: true, excludeAudioFP: true};

Then attempting using the latest master and still get nothing. There are 0 console errors. For sanity test, I added "console.log(variable)" in several places. The only thing that I can get logged out is the object variable.
`
var fp = new Fingerprint2(preprocess,options);
console.log(fp);

fp.get(function(result, components){
`
The fp.get doesnt execute, so I dont get anything inside that function.
The console.log(fp) does dump the object.

@jonashaag
Copy link
Contributor

FYI the exclude option name has changed from excludeAudioFP to excludeAudio in master.

@ghost
Copy link
Author

ghost commented Jul 27, 2018

I tried excludeAudio and that didnt help either.

@yesvods
Copy link

yesvods commented Jul 31, 2018

same issue with ios11.4.1

@yesvods
Copy link

yesvods commented Jul 31, 2018

I found that context.oncomplete will not triggered and executed in IOS 11.4.1. So that the get method will broken.

@jonashaag
Copy link
Contributor

Great hint @yesvods! Please try fix in master @BP9906

@ghost
Copy link
Author

ghost commented Jul 31, 2018

Master looks great; thanks for the fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants