If you give a browser a cookie, it’s going to ask for local storage.
When you give it the local storage, it’ll probably ask you for a list of system fonts. When it’s finished, it’ll ask you for your screen resolution.
Then it’ll want to look to see if Flash cookies are supported. It’ll probably create a local shared object.
When it’s finished with the local shared object it’ll want more things to hash. It will hash your timezone and language. It might get carried away and hash every supported plugin. It may even end up hashing the platform and user agent.
When it’s done it’ll probably want to check out your WebGL. You’ll have to tell it your WebGL vendor and renderer. It’ll probably ask you to open a HTML5 canvas.
When it looks at the HTML5 canvas, it’ll get so excited it’ll want to draw it’s own hidden image. Then it’ll want to hash the image as well.
Looking at the image will remind it that it should store the hash somewhere. So it’ll ask for local storage.
And chances are if it asks you for local storage, it’s going to want a cookie to go with it.