Experimental: ããã¯å®é¨çãªæ©è½ã§ãã
æ¬çªã§ä½¿ç¨ããåã«ãã©ã¦ã¶ã¼äºææ§ä¸è¦§è¡¨ããã§ãã¯ãã¦ãã ããã
Storage Access APIï¼ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ APIï¼ã¯ãåãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ã®ã³ã³ãã³ãããé常ã¯ãã¡ã¼ã¹ããã¼ãã£ã®ã³ã³ããã¹ãã§ã®ã¿ã¢ã¯ã»ã¹ã§ããã¹ãã¬ã¼ã¸ï¼ããããªãªã¸ã³ã®ãã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¨å¼ã³ã¾ãï¼ã«ç¡å¶éã«ã¢ã¯ã»ã¹ããæ¹æ³ãæä¾ãã¾ãã API ã¯ãåãè¾¼ã¾ãããªã½ã¼ã¹ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã«ç¾å¨ã¢ã¯ã»ã¹ã§ãããã©ããã確èªããã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ããããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ãè¦æ±ã§ããã¡ã½ãããæä¾ãã¾ãã
æ¦å¿µã¨ä½¿ç¨æ¹æ³ã»ã¨ãã©ã®ãã©ã¦ã¶ã¼ã¯ãåãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ãªã½ã¼ã¹ã®ã¯ããã¼ããã³ãµã¤ããã¼ã¿ã¸ã®ã¢ã¯ã»ã¹ãå¶éããå¤ãã®ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ããªã·ã¼ãå®è£ ãã¦ãã¾ãã ãããã®å¶éã¯ãåæä¸ä½ãªãªã¸ã³ã®ä¸ã«åãè¾¼ã¾ãããªã½ã¼ã¹ã«ä¸æã®ã¹ãã¬ã¼ã¸ã¹ãã¼ã¹ãä¸ãããã¨ããããµã¼ããã¼ãã£ã®ã³ã³ããã¹ãã§ãªã½ã¼ã¹ãèªã¿è¾¼ã¾ããã¨ãã®ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ã®å®å ¨ãªãããã¯ã«ã¾ã§åã³ã¾ãã
ç¹ã«ãµã¼ããã¼ãã£ã®ã¯ããã¼ãããã¯ããªã·ã¼ã«é¢ããæå³è«ã¯ãã©ã¦ã¶ã¼ãã¨ã«ç°ãªãã¾ãããã³ã¢æ©è½ã¯ä¼¼ã¦ãã¾ã: ãµã¼ããã¼ãã£ã®ã³ã³ããã¹ãã«åãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ãªã½ã¼ã¹ã«ã¯ããã¡ã¼ã¹ããã¼ãã£ã®ã³ã³ããã¹ãã§èªã¿è¾¼ã¾ããã¨ãã«ã¢ã¯ã»ã¹ã§ããã®ã¨åãã¯ããã¼ã¨ãµã¤ãã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ãä¸ãããã¾ããã
ãããã®ã¯ããã¼ãããã¯ããªã·ã¼ã¯ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ãå¿ è¦ã¨ããåãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ã³ã³ãã³ãã䏿ãããã¨ãç¥ããã¦ãã¾ãã ä¾ã¨ãã¦ããã§ãã¬ã¼ã·ã§ã³ãã°ã¤ã³ï¼federated loginãè¤æ°çµç¹ã«ã¾ããã£ããã°ã¤ã³ï¼ã§ã¯ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã«ä¿åããã¦ããèªè¨¼ã¯ããã¼ã¸ã®ã¢ã¯ã»ã¹ãå¿ è¦ã«ãªããã¨ãå¤ãããããã®ã¯ããã¼ãå©ç¨ã§ããªãå ´åãã¦ã¼ã¶ã¼ã¯åãµã¤ãã«åå¥ã«ãµã¤ã³ã¤ã³ããï¼ã¾ãã¯å®å ¨ã«ä¸æããï¼å¿ è¦ãããã¾ãã 䏿ããå ´åããµã¤ãææè ã¯ãã¦ã¼ã¶ã¼ã«ãµã¤ããä¾å¤ã¨ãã¦è¿½å ããããããªã·ã¼ãå®å ¨ã«ç¡å¹ã«ãããã¨ãæ¨å¥¨ãããã¨ãããããã¾ãã çµæã¨ãã¦ãåãè¾¼ã¾ããã³ã³ãã³ãã¨ã®ããåããç¶ç¶ãããã¨ã叿ããã¦ã¼ã¶ã¼ã¯ããã¹ã¦ã®åãè¾¼ã¾ãããªãªã¸ã³ããã³ãããããã¹ã¦ã®ã¦ã§ããµã¤ãããèªã¿è¾¼ã¾ãããªã½ã¼ã¹ã®ãããã¯ããªã·ã¼ãå¤§å¹ ã«ç·©åããå¿ è¦ãããã¾ãã
Storage Access API ã¯ããã®åé¡ã解決ãããã¨ãç®çã¨ãã¦ãã¾ãã åãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ã®ã³ã³ãã³ãã¯ãDocument.requestStorageAccess()
ã¡ã½ãããä»ãã¦ãµã¤ããã¨ã«ãã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¸ã®ç¡å¶éã®ã¢ã¯ã»ã¹ãè¦æ±ããDocument.hasStorageAccess()
ã¡ã½ãããä»ãã¦æ¢ã«ã¢ã¯ã»ã¹æ¨©ããããã©ããã確èªã§ãã¾ãã
ããã«ãã»ãã¥ãªãã£ä¸ã®çç±ããããµã³ãããã¯ã¹åãã <iframe>
ã«ã¯ããã©ã«ãã§ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ã許å¯ã§ãã¾ããã ãã®ãããAPI ã¯ãallow-storage-access-by-user-activation
sandbox ãã¼ã¯ã³ã追å ãã¾ãã æ¬¡ã®ããã«ãåãè¾¼ã¾ããã¦ã§ããµã¤ãã¯ãããã追å ãã¦ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹è¦æ±ãæåãããã¨ã許å¯ããã¨ã¨ãã«ãallow-scripts
㨠allow-same-origin
ã使ç¨ã㦠API ã®å¼ã³åºãã許å¯ããã¯ããã¼ãæã¤ãã¨ãã§ãããªãªã¸ã³ã§å®è¡ãã¾ãã
<iframe
sandbox="allow-storage-access-by-user-activation
allow-scripts
allow-same-origin">
...
</iframe>
API ã¯ãæ½å¨çãªã¹ãã¬ã¼ã¸ã®ä¾å¤ããã¦ã¼ã¶ã¼ãããåãããæå³ã示ãããªãªã¸ã³ã«å¶éããããã«è¨è¨ããã¦ãã¾ãã ããã¯ã次ã®å¶ç´ã«ãã£ã¦å®æ½ããã¾ãã
ãã©ã¦ã¶ã¼ã¯ãå°æ¥ããã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹è¦æ±ã許å¯ãããã©ããã®æ±ºå®ã«ã¦ã¼ã¶ã¼ãé¢ä¸ããããã¨ã決å®ããå ´åãããã¾ãã ã¹ãã¬ã¼ã¸è¨±å¯ã®åç¶æéã¨ãã©ã¦ã¶ã¼ãã¦ã¼ã¶ã¼ã«éç¥ãããã¨ã決å®ããç¶æ³ã«é¢ãã詳細ã¯ç¾å¨ä½æ¥ä¸ã§ãããæºåãã§ã次第çºè¡¨ããã¾ãã
ã¦ã¼ã¶ã¼ããã³ããåãè¾¼ã¾ããã¯ãã¹ãªãªã¸ã³ã®ææ¸ã«ãã£ã¦ requestStorageAccess()
ãå¼ã³åºãããã¨ãã¦ã¼ã¶ã¼ã¨ã¼ã¸ã§ã³ãã¯ãè¦æ±ãªãªã¸ã³ã«ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ã許å¯ãããã©ããã®æ±ºå®ã«ã¦ã¼ã¶ã¼ãé¢ä¸ããããã¨ã鏿ã§ãã¾ãã ç¾å¨ãããã³ãããã¥ã¼ãªã¹ãã£ãã¯ï¼Prompting heuristicsãããã³ããããã¹ãããæ±ºããçºè¦çæ¹æ³ï¼ã¯ Storage Access API ã® 2 ã¤ã®å®è£
è
ã«ãã£ã¦ç°ãªãã¾ãã Safari ã¯ã以åã«ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ãåãåã£ã¦ããªããã¹ã¦ã®åãè¾¼ã¾ãã追跡ã³ã³ãã³ãã«ããã³ããã表示ãã¾ãã Firefox ã¯ã追跡ãªãªã¸ã³ããµã¤ãã®ããã夿°ãè¶
ãã¦ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ãè¦æ±ããå¾ã«ã®ã¿ã¦ã¼ã¶ã¼ã«ããã³ãããã¾ãã 詳細ã«ã¤ãã¦ã¯ãDocument.requestStorageAccess()
ãåç
§ãã¦ãã ããã
API ã®è¡¨é¢ã¯åãã§ãããStorage Access API ã使ç¨ããã¦ã§ããµã¤ãã¯ãFirefox 㨠Safari ã®éã§åãåãã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ã®ã¬ãã«ã¨ç¯å²ã«éãããããã¨ãäºæããå¿ è¦ãããã¾ãã ããã¯ã2 ã¤ã®ãã©ã¦ã¶ã¼ã«å®è£ ããã¦ããã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ããªã·ã¼ã®éããåå ã§ãã Firefox ã«åºæã®è¨è¨ããããã£ã以ä¸ã«è¦ç´ãã¾ãã
tracker.example
ãæä¸ä½ãªãªã¸ã³ foo.example
ã§ãã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ãæ¢ã«åå¾ãã¦ãããã¦ã¼ã¶ã¼ã foo.example
ããã®ãã¼ã¸ã«åãè¾¼ã¾ãã tracker.example
ããã®ãã¼ã¸ã«ã30 æ¥ä»¥å
ã«å度訪åããå ´åãåãè¾¼ã¾ãããªãªã¸ã³ã¯ãèªã¿è¾¼ã¾ããã¨ããã«ã¹ãã¬ã¼ã¸ã«ã¢ã¯ã»ã¹ã§ãã¾ããfoo.example
ã®ãã¼ã¸ã« tracker.example
ã®è¤æ°ã® <iframe>
ãåãè¾¼ã¾ãããããã® <iframe>
ã® 1 ã¤ã Storage Access API ã使ç¨ãã¦ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ãæ£å¸¸ã«åå¾ããå ´åãfoo.example
æä¸ä½ãªãªã¸ã³ä¸ã® tracker.example
ããã®ä»ã®ãã¹ã¦ã® iframe ã¯ãrequestStorageAccess() ãåå¥ã«å¼ã³åºãå¿
è¦ãªããããã«ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ãåå¾ãã¾ããtracker.example
ããåãè¾¼ã¾ãããã¼ã¸ã以åã«æä¸ä½ãªãªã¸ã³ foo.example
ã§ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ãæ£å¸¸ã«åå¾ãã¦ããå ´åãfoo.example
ä¸ã® tracker.example
ããã®ãã¹ã¦ã®åãè¾¼ã¾ãããµããªã½ã¼ã¹ï¼ã¹ã¯ãªãããç»åãã¹ã¿ã¤ã«ã·ã¼ããªã©ï¼ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã«ã¢ã¯ã»ã¹ãã¦èªã¿è¾¼ã¾ãã¾ãã ã¤ã¾ããCookie ãããã¼ãéã£ã¦ãå°æ¥ãã Set-Cookie
ãããã¼ãå°éããå¯è½æ§ãããã¾ããrequestStorageAccess()
ããè¿ããã Promise ã解決ãããã¨ãåãè¾¼ã¾ãããã¼ã¸ã¯ãã¯ããã¼ã ãã§ãªãããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸å
¨ä½ã«ã¢ã¯ã»ã¹ã§ãã¾ãã ããã«ã¯ãWeb StorageãIndexedDBãDOM Cache ãªã©ã® API ã¸ã®ã¢ã¯ã»ã¹ãå«ã¾ãã¾ãã追跡ã¯ããã¼ããããã¯ããããã® Firefox ã®æ°ããã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ããªã·ã¼ã®ææ¸ã«ã¯ãã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹è¨±å¯ã®ç¯å²ã®è©³ç´°ãªèª¬æãå«ã¾ãã¦ãã¾ãã
Storage Access API ã®ã¡ã½ããStorage Access API ã®ã¡ã½ããã¯ãDocument
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã«å®è£
ããã¾ãã
Document.hasStorageAccess()
ææ¸ããã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã«ã¢ã¯ã»ã¹ã§ãããã©ããã示ããã¼ã«å¤ã§è§£æ±ºããã Promise
ãè¿ãã¾ãã
Document.requestStorageAccess()
ãã¡ã¼ã¹ããã¼ãã£ã¹ãã¬ã¼ã¸ã¸ã®ã¢ã¯ã»ã¹ã許å¯ãããå ´åã«è§£æ±ºããã¢ã¯ã»ã¹ãæå¦ãããå ´åã«æå¦ãã Promise
ãè¿ãã¾ãã
ã¡ã¢: ã¦ã¼ã¶ã¼ã¨ã®ããåãã¯ããããã®ä¸¡æ¹ã®ã¡ã½ããã«ãã£ã¦è¿ããã Promise ã«ä¼æããå¼ã³åºãå ã¯ãã¦ã¼ã¶ã¼ããã® 2 åç®ã®ã¯ãªãã¯ãå¿ è¦ã¨ããã«ãã¦ã¼ã¶ã¼ã¨ã®ããåããå¿ è¦ã¨ããã¢ã¯ã·ã§ã³ãå®è¡ã§ãã¾ãã ä¾ãã°ãå¼ã³åºãå ã¯ãFirefox ã®ãããã¢ãããããã«ã¼ãããªã¬ã¼ããã«ã解決ãã Promise ãããããã¢ããã¦ã£ã³ãã¦ãéããã¨ãã§ãã¾ãã
<iframe> ãµã³ãããã¯ã¹ã®æ¡å¼µ<iframe>
è¦ç´ ã® sandbox
屿§ã«ã¯æ°ãããã¼ã¯ã³ allow-storage-access-by-user-activation
ãããããµã³ãããã¯ã¹åãã <iframe>
㯠Storage Access API ã使ç¨ãã¦ã¹ãã¬ã¼ã¸ã¢ã¯ã»ã¹ãè¦æ±ã§ãã¾ãã
API ã¯ç¾å¨ãææ¡æ®µéã«ãããæ¨æºåããã»ã¹ã¯ã¾ã éå§ããã¦ãã¾ããã ç¾å¨ãApple ã® Introducing Storage Access API ããã°æç¨¿ãããã³ WHATWG HTML issue 3338 â Proposal: Storage Access API ã§ API ã®ä»æ§ã®è©³ç´°ãè¦ã¤ãããã¨ãã§ãã¾ãã
ãã©ã¦ã¶ã¼ã®äºææ§ api.Document.hasStorageAccess api.Document.hasUnpartitionedCookieAccess api.Document.requestStorageAccess api.Document.requestStorageAccessFor api.Permissions.permission_storage-access api.Document.hasStorageAccess api.Document.hasUnpartitionedCookieAccess api.Document.requestStorageAccess api.Document.requestStorageAccessFor api.Permissions.permission_storage-access é¢é£æ å ±RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4