鷲田と申します。質問させてください。
表題にあるように、電子書籍epub3のオフラインでも表示させられるようなpackageアプリを作成しています。
packageに同梱したepub書籍は
, zip.jpで解凍しsimpleReadium.jsできれいに表示させることができます。
一方、パソコン上のepubファイルをfilesystem apiでtemporaryに取り込み、zipで解凍することまでは、
できるのですが、ファイルエントリのソースをreadiumuが表示させるときに以下のような問題が発生します。
Refused to frame 'filesystem:' because it violates the following Content Security Policy directive: "frame-src 'self' data: chrome-extension-resource:". 各ファイルは、toURLでurl化すれば表示できます。
問題は、simpleReadium.jsが書籍内容のファイルを表示させるとき、iframeタグを使用していて、
そのソースの指定が、filesystem apiファイルの特徴である、filesystem://形式のurlになっていて、たとえば、
<iframe scrolling="no" ・・・・src="filesystem://text/cover.xhtml tite=・・・・>
という感じで、
このiframeが
content_security_policyのframe-srcと矛盾しているために、ないしは、filesystemから始まるurlをurl
と認めないために発生しているようです。readiumによるsrcの指定そのものが間違っているのかもしれません。
content_security_policyは、packageアプリでは変更できないので、困っています。
エラーを発生させる前の、scriptのデバック情報は以下のとおりです。(上が新しい)
(iframeタグは、simpleReadiumが作成し、それをページに貼付ける役割をjqueryが担っている)
jquery-2.0.3.js:5457
jquery-2.0.3.js:5457
jquery-2.0.3.js:5659
jquery-2.0.3.js:5453
SimpleReadium.js:7509
SimpleReadium.js:7788
SimpleReadium.js:7989
SimpleReadium.js:8060
simpleReadium.jsを全体的に書き換える能力は持っていません。
simpleReadium.jsはversion: "0.0.1"です。
私の問題の捉え方が間違っているのかもしれません。
何か、この問題への対応方法をご存知の方がいらっしゃれば、お教えいただきたく、
お願いいたします。