Privileged Apps with Vue.jsFirefox OS ίʔυϦʔσΟϯάϛʔτΞοϓ #11 (2014/11/15)@masawada
View Slide
͜ΜΜ
@masawada
FxOSϋοΧιϯͱ͔ओ࠵
http://masawada.me
εϥΠυ50ຕͳͷͰඈ͠·͢
Privileged Apps with Vue.js
Vue.js
MVVMϑϨʔϜϫʔΫ
MVCͷѥछΈ͍ͨͳͷ
ৄࡉׂѪ
(͜Θ͍͓͡͞Μ͜Θ͍)
ModelViewViewModel
Modelvar model = {hello: “”};
View
ViewModelvar app = new Vue({el: "#app",data: model});
ViewͱModelΛViewModel͕όΠϯυ
Privileged Apps (ಛݖΞϓϦ)
Privileged AppsɾHosted AppsͰ͑ͳ͍API͕͑Δɾmanifest.webappʹࢦఆΛॻ͘ɾ੍͍͔ͭ͘ݶ͕͋ΔɾΞϓϦΛެ։͢Δͱ͖ʹ৹͕ࠪ͋Δ
੍͍͔ͭ͘ݶ͕͋Δ
CSP
Content Security Policy
Content Security PolicyɾؔίϯετϥΫλͷېࢭɾeval ͷېࢭͳͲͳͲ…https://developer.mozilla.org/ja/Apps/CSPΛݟͯͶ
ؔίϯετϥΫλଟ༻ͯͨ͠
ͬͨͥ
Ͳ͏࣮ͬͯݱ͍ͯ͠Δ͔
mmckegg/notevil
mmckegg/notevilɾNode.jsͷϞδϡʔϧɾVue.jsͰ͜ΕΛforkͯ͠ґଘϥΠϒϥϦΛ݁߹ɾariya/esprimaͰparseͯ͠ΔɾάϩʔόϧΦϒδΣΫτʹΞΫηε͠ͳ͍
mmckegg/notevilcase 'BinaryExpression':var l = walk(node.left)var r = walk(node.right)switch(node.operator) {case '==': return l === rcase '===': return l === r
.oO(not evil …?)
ศརͳͷͰ͍·͠ΐ͏
ݱ͔ΒҎ্Ͱ͢
༨ஊ
ίʔυϦʔσΟϯάͷ͓ͱʹ
git find ίϚϯυ
git findɾgit subcommandɾPATHͷ௨Δॴʹgit-findϑΝΠϧΛஔ͘→ git findͰ࣮ߦͰ͖Δɾpeco͕ඞཁ
pecoͷΠϯετʔϧ (mac)$ brew tap peco/peco$ brew install peco
࠷ߴ
git findDST_PATH=$(git grep -n $1 | grep -v"[0-9]:\s*//" | peco | awk -F ":"'{print "-c "$2" "$1}');if [ ${#DST_PATH} -ne 0 ]; thenvim $DST_PATH;fi
[git find peco][ݕࡧ]
ͥͻ͓͍͍ͩ͘͞
͋Γ͕ͱ͏͍͟͝·ͨ͠