å€ãgreasemonkeyã§ã¯ããŠãŒã¶ãŒã¯gm_scriptsãã£ã¬ã¯ããªããããããã¡ã€ã«/ã³ã³ãã¥ãŒã¿ãŒããå¥ã®ãããã¡ã€ã«/ã³ã³ãã¥ãŒã¿ãŒã«ç§»åããã ãã§ãããããã¹ã¯ãªãã/èšå®ã®ãšã¯ã¹ããŒãæ©èœã¯å®éã«ã¯å¿ èŠãããŸããã§ãããå°æ¥ã
ããŠãFirefoxãšãã®åé¡ã ããã§ãç§ã¯ãããå®è£
ããŠããŸããïŒãããŠãã¡ãããã€ã³ããŒããæ©èœïŒã ã»ãŒå®äºã§ãããã·ã§ãŒã¹ããããŒããããŸãã browser toolbox
ãéããŠã[ãããã¢ãããèªåéããªã]ãéžæããå Žåã«ã®ã¿æ©èœããŸãã ã€ã³ããŒãã¯<input type="file">
ãä»ããŠè¡ãããŸãïŒãããå¯äžã®æ¹æ³ã§ãïŒãããã©ãŠãºãŠã£ã³ããŠã®ãã©ãŒã«ã¹ã§ã¯éåžžãããã¢ãããéãããŠã£ã³ããŠãç Žæ£ãããŠé¢æ°ãå®è¡ãããŸããã é¢é£ãããã°ïŒ
https://bugzilla.mozilla.org/show_bug.cgi?id=1292701
https://bugzilla.mozilla.org/show_bug.cgi?id=1366330
äžéå端ãªç°å¢ã§äœæ¥ããã®ã¯ãšãŠãé¢åã§ãã
ãŸããïŒ2612ã«é©çšãããŸãã ããã¯ããã®åé¡ãšåæã«å¯ŸåŠã§ããŸãã
@Sxderpãããã¢ããã®çµäºãåé¡ã«ãªãå Žåã解決/åé¿çã®éåžžã®æ¹æ³ã¯ãå¿ èŠãªããšãå®è¡ããã¿ããŸãã¯ãŠã£ã³ããŠïŒæ¡åŒµæ©èœå ã®HTMLããŒãžãæãïŒãéãããšã§ãã ãã®ãããªã¿ã/ãŠã£ã³ããŠã¯èªåçã«éããããããããã¢ãããšåãç°å¢ã衚瀺ããŸãã ãã©ãŠã¶ã®ãããã¢ããå ã«ãã¹ãŠã衚瀺ããã»ã©ã¯ãªãŒã³ã§ã¯ãªããããããŸããããæ©èœããã¯ãã§ãã
ç§ã¯ãããããããšãã§ããŸããã 倧éã®ã³ãŒãã移åããå¿ èŠããããŸãã æ¹ããŠèª¿ã¹ãŸãã
ã€ã³ããŒã/ãšã¯ã¹ããŒããå®äºããŸããã ãã¹ãã¯ãªãããšã©ãŒåŠçã¯ã»ãšãã©ãããŸããã ããããããã¯æ©èœããŸãã ãã ããç°¡åã«ããããã«ãã€ã³ããŒãã«ãã£ãŠããŒã¿ããŒã¹å šäœãäžæžããããããã«ããŸããã ãã¡ãã確èªããã³ããä»ãã
çæ³çã«ã¯ããŠãŒã¶ãŒãã€ã³ããŒãã眮ãæãããããŒãžããããéžæã§ãããšæããŸãã ã¹ã¿ã€ã©ã¹ã¯ããŒãžããã ãã§ããããæªãIMEã§ãã ããã©ã«ãã§æ©èœããå¯èœæ§ã®ãããŠãŒã¶ãŒã®éžæãæé©ã®ããã§ãã
ãã¡ããã§ããããã®åŸãå€ãã®æ¡ä»¶ã«ééããŸãã ããŒãžã®_æ£ç¢ºãª_æ§è³ªã«é¢ããããçš®ã®ãããŒå³ãèŠããã®ã§ããã
äž»ã«çŽäºã®èŠ³ç¹ããã ã³ã³ãã³ãã®äžæžããããŒ/å€ã®äžæžãïŒã¯ãããããããšã¯ã¹ããŒããããŸãïŒããã¹ãŠã®ããã³ããïŒãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæªãããã§ãïŒãªã©ïŒ
ã€ãŸãããã¡ã€ã«å ã®ãã¹ãŠã®ã¹ã¯ãªãããã€ã³ããŒãããŸãïŒãããŠããã®ç¶æ ã«å®å šã«äžæžãããŸãïŒãããã¡ã€ã«ã«ãªãã¹ã¯ãªãããã¿ãã/åé€ããªãã§ãã ããã
ããã ããã¯ã¯ããã«ç°¡åã§ãã ãããããã¯ããã§ããã
ããã§ã3ã€ã®ç°ãªãã€ã³ããŒãã¡ãœãããå®è£ ããŸããã
éä¿¡ããåã«ä»ã®PRãåŸ ã£ãŠããŸãã
[1]ã¹ã¯ãªããã®id
ã«ãã£ãŠäžææ§ãå€æããŸãã
ããã¯ã©ãã§ããïŒ
ããã¯1ãè£å®ããŸããããŒãž
- äžæžãããŸãã ããŒãžãšåæ§ã§ããã競åãèŠã€ãã£ãå Žå[1]ãã€ã³ããŒããããã¹ã¯ãªãããåªå ãããŸãã
@Sxderp ãããŒãžã®ããã«ãã«ã¯ããçŸåšååšããªãã¹ã¯ãªããã®ã¿ããšããå¶çŽã¯å«ãŸããŠããŸãã...
ïŒãã®å¶çŽã¯ããã§ã¯æå³ããããŸããïŒã€ãŸããäžæžã=ãã¹ãŠã®ã¹ã¯ãªãããã€ã³ããŒããã競åããã¹ã¯ãªããã¯ã¢ãŒã«ã€ãã«ãã£ãŠäžæžããããŸã...
ãããã®ïŒæŽæ°/ããŒãžãªã©ïŒãªãã·ã§ã³ã®ãã¡ãVMãTMããŸãã¯ãã®ä»ã®æ¹æ³ã§æäŸããããã®ã¯ã©ãã§ããïŒ
- ã¢ããããŒãã ãã§ã«ååšããã¹ã¯ãªããã®ã¿ãã€ã³ããŒãïŒäžæžãïŒããŸãã
確ãã«ãããã¯å®è¡å¯èœã§ããã¯ãã§ãã
ã€ãŸããäžæžã=ãã¹ãŠã®ã¹ã¯ãªãããã€ã³ããŒããã競åããã¹ã¯ãªããã¯ã¢ãŒã«ã€ãã«ãã£ãŠäžæžããããŸã...
æ£ããã
ãããã®ïŒæŽæ°/ããŒãžãªã©ïŒãªãã·ã§ã³ã®ãã¡ãVMãTMããŸãã¯ãã®ä»ã®æ¹æ³ã§æäŸããããã®ã¯ã©ãã§ããïŒ
å®éã«ã¯ããããŸããã ããããããã¯ç§ã®å¥ã®æžå¿µãåŒãèµ·ãããŸããã ã¢ãŒã«ã€ããšã®äºææ§ã ãããã®ã¢ããªã³ãå®å šãªããŒã¿ããŒã¹ãšã¯ã¹ããŒãïŒã¹ã¯ãªãã+ããŒã¿ïŒããµããŒãããŠãããšä»®å®ãããšãçæ³çã«ã¯ãã€ã³ããŒãã¯çžäºã«äºææ§ãããã¯ãã§ãã
ã¢ããããŒãã ãã§ã«ååšããã¹ã¯ãªããã®ã¿ãã€ã³ããŒãïŒäžæžãïŒããŸãã
ããã«ã€ããŠèãããšïŒå šéšã§3åãããïŒå¿é ã§ãã é¢é£ããããŒã¿ïŒget / setValueïŒã¯ã©ãã§ããïŒ çŸåšä¿åãããŠããããŒã¿ãä¿æããå¿ èŠããããŸããïŒ ã€ã³ããŒããããããŒã¿ãåªå ããå¿ èŠããããŸããïŒ ããçš®ã®ããŒãžïŒ ãããŠããã®ãªãã·ã§ã³/ç¶æ ããŠãŒã¶ãŒã«æ確ã«è¡šçŸããŸãã ããã¯å®éãäžèŠãããããå°ã泚æãå¿ èŠã§ãã
ããã€ãã®ç°¡åãªãã§ãã¯ãè¡ããŸãããããã¯100ïŒ å®å šã§ã¯ãããŸããããäžè¬çãªæŠèŠãšãå®è£ ã«é¢ããŠããããå€æŽããå¿ èŠãããããšã瀺ããŠããŸãã
VMãšTMã¯ã©ã¡ããzipãã¡ã€ã«ã«ãšã¯ã¹ããŒãããŸãã zipãã¡ã€ã«å
ã«ã¯ãåã¹ã¯ãªããã®.user.js
ãã¡ã€ã«ããããŸãã ãã ããã¹ãã¬ãŒãž/å®è£
åºæã®è©³çŽ°ã®ãšã¯ã¹ããŒãã«é¢ããŠã¯ãã©ã¡ããå°ãç°ãªããŸãã VMã¯ããã¹ãŠã®ã¹ã¯ãªããã®ããã«èŠããå®è£
åºæã®è©³çŽ°ãšã¹ã¯ãªããããŒã¿ããåäžã®ãã¡ã€ã«violentmonkey
ã©ããããŸãã TMã¯ãããããå°ãæ£æ°ã«è¡ããŸãã ã¹ã¯ãªããããšã®å®è£
åºæã®è©³çŽ°ã¯.options.js
ãã¡ã€ã«ã«ãšã¯ã¹ããŒããããã¹ã¯ãªããããŒã¿ã¯.storage.json
ãšã¯ã¹ããŒããããŸãã
TMã«åŸãããã«å®è£ ãäœãçŽãã€ããã ãšæããŸãã äžè¬çã«ãå®è£ ã®è©³çŽ°ãããŒã¿ããåé¢ããã®ã§ãããè¯ãæšæºã ãšæããŸãã
ãã€ã³ããŒãã®æ¹æ³ãïŒäžèšã®ç§ã®æçš¿ã§èª¬æïŒã«ã€ããŠïŒ
TMã¯ããåã¹ã¯ãªããã®éžæãã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸãã ã¢ãŒã«ã€ããã€ã³ããŒããããšãã«ãç¹å®ã®åã¹ã¯ãªãããã€ã³ããŒããããã©ãããéžæããŸãã ãã§ãã¯ãããšããã®ã¹ã¯ãªããã®ãã¹ãŠã®ããŒã¿ãäžæžããããŸãã
VMã¯ãäžèšã§ãäžæžãããšããŠèª¬æãããã®ã®ã¿ãæäŸããŠããããã§ãã ãã ããé¢é£ããã¹ã¯ãªããããŒã¿ãã€ã³ããŒãããªããªãã·ã§ã³ããããŸãïŒãã¹ãŠã®ã¹ã¯ãªããã«å¯ŸããŠã°ããŒãã«ïŒã UIã®èŠ³ç¹ããã¯ãGMã§ãã®ãªãã·ã§ã³ãå®è£
ããã®ã¯é£ãããšæããŸãã ãã ããããŒã¿ããŒã¹ã®ãšã¯ã¹ããŒã/ã€ã³ããŒãã«TMã¢ãããŒããæ¡çšããå ŽåããŠãŒã¶ãŒã¯ã¢ãŒã«ã€ããéããŠ.storage.json
ãã¡ã€ã«ãåé€ããã ãã§æžã¿ãŸãã
誰ãããã¹ããããå Žåã¯ããã©ã³ãsxderp:import-export-database-merge
ãæŽæ°ããŠãåã«èª¬æãã.zip
æ©èœãè¿œå ããŸããã @Eselceãææ¡ããupdate
ãªãã·ã§ã³ã¯ããŸã 詳现ãããããªããããå®è£
ããŸããã§ããã
@Sxderpãã®æ©èœãéçºããŠããã ãããããšãããããŸãã ããã±ãŒãžããã«ãããŠFirefoxDeveloper Editionã«ã€ã³ã¹ããŒã«ããŸããïŒçœ²åãããŠããªãæ¡åŒµæ©èœã®ã€ã³ã¹ããŒã«ãæå¹ã«ããããïŒã ãã®ãã©ãŠã¶ããŒãžã§ã³ã§æ¢åã®ãããã¡ã€ã«ãã¢ããã°ã¬ãŒãããæ¢åã®GreaseMonkeyã€ã³ã¹ããŒã«ãäžæžãããŠãããŒã¿ããŒã¹ãåé¡ãªããšã¯ã¹ããŒãããŸããã
ãã ãããã®GreaseMonkeyãã€ã³ã¹ããŒã«ãããæ°ããFirefoxãããã¡ã€ã«ãã€ã³ããŒããããšãåé¡ãçºçããŸããã ããªã倧ãã1ã€ã®ç¹å®ã®ãŠãŒã¶ãŒã¹ã¯ãªããïŒuser.jsãšgm_details.jsã®äž¡æ¹ãçŽ230Kã§ãããããã€ã³ããŒãã®åé¡ãçºçããŠããããã§ããããŒã¿ããŒã¹ã眮ãæããåŸãGMã¯æ©èœããªããªããŸããGMã¢ã€ã³ã³ãã¯ãªãã¯ãããšã空ã®ããããããŠã³ïŒçŽ10x10ã®æ£æ¹åœ¢ïŒãéããŸãã
ç¹å®ã®ãŠãŒã¶ãŒã¹ã¯ãªãããå ¬éããããããŸããã ãã®ããªãã¯ã䜿çšããŠ
ç·šéïŒGMãå£ããåŸã«æ©èœãããå¯äžã®æ¹æ³ã¯ãæ¡åŒµæ©èœãåé€ããFirefoxãåèµ·åããŠå床远å ããããšã§ãã
GMexport_20180 2 17_164139.zip ???
倧éã®ïŒéšåçã«ïŒå€§ããªã¹ã¯ãªããïŒ> 20ïŒã3.4MBã®zipãã¡ã€ã«ããæå¥ãªãã«ã€ã³ããŒãããŸããã 詳现ãªèª¿æ»ã¯ãããŸããã...
return 'GMexport_'
+ date.getFullYear().toString()
+ date.getMonth().toString().padStart(2, '0')
+ date.getDate().toString().padStart(2, '0')
+ '_'
+ date.getHours().toString().padStart(2, '0')
+ date.getMinutes().toString().padStart(2, '0')
+ date.getSeconds().toString().padStart(2, '0')
+ '.zip'
IIRCã getMonth()
ã¯0ããå§ãŸããŸã... ;
ãŸãã...
IIRCãgetMonthïŒïŒã¯0ããå§ãŸããŸã...; ãªã...
RIP
ç§ã¯ãã°ãããã®ãã©ã³ãã«åãçµãã§ããŸããã ä»æ¥ã¯ãã¹ã¿ãŒã«ãªããŒã¹ããŠãããããã®ã¯ãªãŒã³ã¢ãããè¡ããŸãã
ãã©ã³ãããã¹ã¿ãŒã«ãªããŒã¹ããã¬ã€ã¢ãŠãã«ããã€ãã®éèŠãªå€æŽãå ããŸãããããã«ãããèªã¿ããããåäžãããšæããŸãã
@ArmEagleæŽæ°ããããã©ã³ãã§ãéä¿¡ãããã¡ã€ã«ãã€ã³ããŒãã§ããŸããã ããã§ãåé¡ã解決ããªãå Žåã¯ãç¥ãããã ãããããã«èª¿æ»ããŸãã
7fe8bfe94efbadeb1da1a6491aaf424fc8275f09ã®å€æŽãšããŒãžãããŸããã ç§ãèŠãããã€ãã®åé¡ã远跡/è°è«ããããã«åéããŸãã
ç§ãèŠãããã€ãã®åé¡ã远跡/è°è«ããããã«åéããŸãã
åé¡ã¯äœã§ãããïŒ
1åéãã®ã¯ã€ãã¯ãã¹ãã§ããããããããããŸãããã€ã³ã¹ããŒã«ããäºå®ã®ã¹ã¯ãªããã®äžéšããªã¹ããããŠããŸããã§ããã ããããç§ã¯ãããç¹°ãè¿ãã泚ææ·±ã远跡ããçµæãæžãçããããšæããŸãã èããããã±ãŒã¹ã¯ãããããããŸãã
ç§ã¯ã€ãã«ãããå°ã調ã¹ãŸããã
.user.js
ãšã詳现ãã®ã¿ãããã¯ã¢ããããŸãã ããã¯å¶ç¶ã«requiresã³ã³ãã³ããå«ãã§ããŸããããªãœãŒã¹ãèŠéããŠããŸãïŒJSONã¯blobã{}
ã·ãªã¢ã«åããŸãïŒã AFAICT .setKnownResources()
ã空ã®/å£ãããããã§
ãã¹ãŠã®ã¹ã¯ãªããã«ç¬èªã®ãã©ã«ããŒãããããã®ãã©ã«ããŒã«ã¡ã€ã³ã®.user.js
ãå@require
ããã³@resource
ãã¡ã€ã«ãå«ãŸããæ®ãã®è§£ææžã¿/ã«ã¹ã¿ã ã®è©³çŽ°ãããã³ä¿åãããå€ã ããã¯ãã¯ãã¹ãã©ãããã©ãŒã ã®äºææ§ãæŸæ£ããã®ã«ååãªã»ã©è¯ããããããªããšæããŸãã
å®å
šã«åæã ããã¥ã¡ã³ãããWebããŒãžãšããŠãä¿åããã®ãšåãããã«ã htm
-documentã«å ããŠãäŸåé¢ä¿ãæã€åãïŒããŒã¹ïŒåã®ãã©ã«ããŒãäœæããŸãã
å¶ç¶ã«requiresã³ã³ãã³ããå«ãŸããŠããã®ã¯...
å¶ç¶ã§ã¯ãããŸããã§ããã çºçããå¯èœæ§ã®ããããŒã«ã«ã®å€æŽã®ããã«ãæå³çã«ãããå«ããŸãã ãªãœãŒã¹/å¿ èŠãªãã®ããå®è£ ã®è©³çŽ°ããšèŠãªããããã詳现ããšããŠãšã¯ã¹ããŒãããŸãã TMã¯ãªãœãŒã¹/å¿ èŠãªãã®ãããšã¯ã¹ããŒãããŸããã
ãããããªãœãŒã¹ãéããŸãïŒJSONã¯blobã{}ã«ã·ãªã¢ã«åããŸãïŒã AFAICTã¯ã空ã®/å£ããblobã§.setKnownResourcesïŒïŒãå®è¡ãããããæ©èœããŸããã
ããããããŸãã¹ããªã³ã°åãããŠãããã©ãããææ¡ããããã®TODOããããŸãã ãã®æ©èœã¯ãPRãæåºããåã«æè¡çã«çµ±åãããŸããã
åœé¢ã®éãBlobã®åé¡ã¯ïŒ2937ã§è§£æ±ºãããŸãã
ããã¯ã¢ããã¢ãŒã«ã€ãã«ããã«ãã¡ã€ã«ãäœæããããšã«é¢ããŠã¯ãããããã¹ãŠã®å©çããããããšã¯æããŸããã ãªãœãŒã¹ãšrequiresãã¢ãŒã«ã€ãããŠãå¥ã ã®ãã¡ã€ã«ã«åºåãããšãæœåºãããšèŠæ ããè¯ããªãå¯èœæ§ããããŸããããããè¡ããšãåçŽãªãã³ãã§ã¯ãªããå€ãã®å°ããªãã®ãåŠçãããããã³ãŒããããè€éã«ãªãå¯èœæ§ããããŸãã
ããã¯4.4ã®ã倧ããªæ©èœããªã®ã§ããããããã«çµäº/æ¹åããããšæã£ãŠããŸãã
第äºã«ãããã¯æ©èœçã§ãã 远跡ãããããã€ãã®æ©èœåŒ·åããããŸããããããã®å¯Ÿè±¡ãšãªãå€æŽããšã®åé¡ã¯ç®¡çã容æã«ãªããŸãã
æãåèã«ãªãã³ã¡ã³ã
ããã§ã3ã€ã®ç°ãªãã€ã³ããŒãã¡ãœãããå®è£ ããŸããã
éä¿¡ããåã«ä»ã®PRãåŸ ã£ãŠããŸãã
[1]ã¹ã¯ãªããã®
id
ã«ãã£ãŠäžææ§ãå€æããŸãã