Ich habe ein wenig in den Firefox-Quellen in netwerk/protocol/data/nsDataHandler.cpp geschaut
Der Data Handler parst nur content/type und charset und prüft, ob ";base64" im String enthalten ist
Das RFC spezifiziert keinen Dateinamen und zumindest behandelt Firefox keinen Dateinamen dafür. Der Code generiert einen zufälligen Namen plus ".part"
Ich habe auch das Firefox-Protokoll überprüft
[b2e140]: DOCSHELL 6e5ae00 InternalLoad data:application/octet-stream;base64,SGVsbG8=
[b2e140]: Found extension '' (filename is '', handling attachment: 0)
[b2e140]: HelperAppService::DoContent: mime 'application/octet-stream', extension ''
[b2e140]: Getting mimeinfo from type 'application/octet-stream' ext ''
[b2e140]: Extension lookup on '' found: 0x0
[b2e140]: Ext. lookup for '' found 0x0
[b2e140]: OS gave back 0x43609a0 - found: 0
[b2e140]: Searched extras (by type), rv 0x80004005
[b2e140]: MIME Info Summary: Type 'application/octet-stream', Primary Ext ''
[b2e140]: Type/Ext lookup found 0x43609a0
Interessante Dateien, wenn Sie sich die Mozilla-Quellen ansehen möchten:
data-URI-Handler: netwerk/protocol/data/nsDataHandler.cpp
wo Mozilla den Dateinamen entscheidet: uriloader/exthandler/nsExternalHelperAppService.cpp
InternalLoad-String im Protokoll: docshell/base/nsDocShell.cpp
Ich denke, Sie können jetzt aufhören, nach einer Lösung zu suchen, denn ich vermute, dass es keine gibt :)
wie in diesem Thread festgestellt wurde, hat html5 das download
-Attribut, es funktioniert auch in Firefox 20 http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#attr-hyperlink-download