{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":5581406,"defaultBranch":"main","name":"dom","ownerLogin":"whatwg","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2012-08-28T05:59:06.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/2226336?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717576152.0","currentOid":""},"activityList":{"items":[{"before":"fb21a6d9153b698e6644b739902627b9870f47d9","after":null,"ref":"refs/heads/post-insertion-steps","pushedAt":"2024-06-05T08:29:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"}},{"before":"abaa3fb25a4ec8f7f3bcd7deea9083d0dcb1787a","after":"0616094da9e308fbf50e5bd1da17462dca19d121","ref":"refs/heads/main","pushedAt":"2024-06-05T08:29:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Introduce DOM post-connection steps\n\nFor any given insert operation, these steps run for each inserted node synchronously after all node insertions are complete. This closes #732.\r\n\r\nThe goal here is to separate the following:\r\n\r\n1. Script-observable but not-script-executing insertion side effects\r\n - This includes synchronously applying styles to the document, etc...\r\n2. Script-executing insertion side effects\r\n - This includes creating an iframe's document and synchronously firing its load event\r\n\r\nFor any given call to insert, the above model allows us to keep all of (1) running synchronously after each node's insertion (as part of its insertion steps), while pushing all script-executing (or DOM tree-modifying or frame tree-modifying etc.) side effects to the new set of post-connection steps, which run synchronously during insertion, but _after all_ nodes finish their insertion.\r\n\r\nThis essentially makes insertions \"atomic\" from the perspective of script, since script will not run until a given batch of DOM insertions are complete. This two-stage approach aligns the spec with a model most similar to Blink & Gecko's implementation, and fixes #808. This PR also helps out with https://github.com/whatwg/html/issues/1127 and https://github.com/whatwg/dom/issues/575 (per https://github.com/whatwg/dom/pull/732#issuecomment-467403090).\r\n\r\nTo accomplish, this we audited all insertion side effects on the web platform in https://docs.google.com/document/d/1Fu_pgSBziVIBG4MLjorpfkLTpPD6-XI3dTVrx4CZoqY/edit#heading=h.q06t2gg4vpw, and catalogued whether they have script-observable side-effects, whether they invoke script, whether we have tests for them, and how each implementation handles them. This gave us a list of present \"insertion steps\" that should move to the \"post-connection steps\", because they invoke script and therefore prevent insertions from being \"atomic\". This PR is powerless without counterpart changes to HTML, which will actually _use_ the post-connection steps for all current insertion steps that invoke script or modify the frame tree. The follow-up HTML work is tracked here:\r\n\r\n- https://github.com/whatwg/html/pull/10188\r\n- https://github.com/whatwg/html/issues/10241","shortMessageHtmlLink":"Introduce DOM post-connection steps"}},{"before":"705aa2f054cd5452132ea287072f886d2b1389e6","after":"fb21a6d9153b698e6644b739902627b9870f47d9","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-06-03T10:26:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"in => of","shortMessageHtmlLink":"in => of"}},{"before":"7e18bc488c1eec71bb84eeabdf7f2fae320cca8a","after":"705aa2f054cd5452132ea287072f886d2b1389e6","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-05-31T11:49:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Remove whitespace","shortMessageHtmlLink":"Remove whitespace"}},{"before":"ffa0b2ee207257431be3c417418464d01639e449","after":"7e18bc488c1eec71bb84eeabdf7f2fae320cca8a","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-05-31T11:47:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Fix phrase-level wrapping","shortMessageHtmlLink":"Fix phrase-level wrapping"}},{"before":"7a06b389ab1bba8d86450a7c98339e0db5276375","after":"ffa0b2ee207257431be3c417418464d01639e449","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-05-31T10:32:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Address comments","shortMessageHtmlLink":"Address comments"}},{"before":"b31d333e455603591e8e523963aa210ad46a9df5","after":"7a06b389ab1bba8d86450a7c98339e0db5276375","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-05-13T14:51:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Post-connection steps. Also `` -> ``","shortMessageHtmlLink":"Post-connection steps. Also <i> -> <em>"}},{"before":"236fe018be999eff9bef0f19b24cbd5f0fa561bc","after":"b31d333e455603591e8e523963aa210ad46a9df5","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-05-01T16:14:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Connected","shortMessageHtmlLink":"Connected"}},{"before":"48d1ee55814514120b5bbc543109647895de5b0c","after":"236fe018be999eff9bef0f19b24cbd5f0fa561bc","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-05-01T16:11:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Static node list","shortMessageHtmlLink":"Static node list"}},{"before":"9fae4af8e443a1f0f8162ec7a19c84f186d5cf68","after":null,"ref":"refs/heads/terminal-node-types","pushedAt":"2024-04-22T07:02:32.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"}},{"before":"720a4fc20f0c7d9aa430ed418db92e474fdcf185","after":"abaa3fb25a4ec8f7f3bcd7deea9083d0dcb1787a","ref":"refs/heads/main","pushedAt":"2024-04-22T07:02:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Editorial: explain the possible primary interfaces for nodes","shortMessageHtmlLink":"Editorial: explain the possible primary interfaces for nodes"}},{"before":"d2c56b277c6f2871cd6d3912db29d278fa939a52","after":"9fae4af8e443a1f0f8162ec7a19c84f186d5cf68","ref":"refs/heads/terminal-node-types","pushedAt":"2024-04-22T02:55:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domenic","name":"Domenic Denicola","path":"/domenic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/617481?s=80&v=4"},"commit":{"message":"Reorder","shortMessageHtmlLink":"Reorder"}},{"before":"77cd75e8c9f03ef3b71b84e9b2154542762a7f52","after":"720a4fc20f0c7d9aa430ed418db92e474fdcf185","ref":"refs/heads/main","pushedAt":"2024-04-18T14:35:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Trusted Types integration for \"converting nodes into a node\"\n\nCovered by existing tests.\r\n\r\nCo-authored-by: Anne van Kesteren ","shortMessageHtmlLink":"Trusted Types integration for \"converting nodes into a node\""}},{"before":null,"after":"d2c56b277c6f2871cd6d3912db29d278fa939a52","ref":"refs/heads/terminal-node-types","pushedAt":"2024-04-18T02:47:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"domenic","name":"Domenic Denicola","path":"/domenic","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/617481?s=80&v=4"},"commit":{"message":"Editorial: explain the possible primary interfaces for nodes","shortMessageHtmlLink":"Editorial: explain the possible primary interfaces for nodes"}},{"before":"2d890bd2a4685df83c50f54eae77c13bf3bb2bd2","after":"77cd75e8c9f03ef3b71b84e9b2154542762a7f52","ref":"refs/heads/main","pushedAt":"2024-04-16T14:20:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Record timing info for event handling\n\nThis feeds into \"Long Animation Frame\" timing.","shortMessageHtmlLink":"Record timing info for event handling"}},{"before":"2ffb2de1d109ce54837df37d938ca58c5358abff","after":"48d1ee55814514120b5bbc543109647895de5b0c","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-04-04T14:21:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Fix indentation for real","shortMessageHtmlLink":"Fix indentation for real"}},{"before":"6d3838d56d67119a9321efa86853520530b3129d","after":"2ffb2de1d109ce54837df37d938ca58c5358abff","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-04-04T13:33:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Fix newline","shortMessageHtmlLink":"Fix newline"}},{"before":"2c9f769dc168ba1e815b02bf41249d52d34b891f","after":"6d3838d56d67119a9321efa86853520530b3129d","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-04-04T13:31:25.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Fix indenting","shortMessageHtmlLink":"Fix indenting"}},{"before":"3de55b3fb299eab87524e286bc5e1c41fccace12","after":"2d890bd2a4685df83c50f54eae77c13bf3bb2bd2","ref":"refs/heads/main","pushedAt":"2024-04-04T10:01:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Add serializable to ShadowRoot and \"attach a shadow root\"\n\nCorresponding HTML PR & issue: https://github.com/whatwg/html/pull/10139 & https://github.com/whatwg/html/issues/8867.","shortMessageHtmlLink":"Add serializable to ShadowRoot and \"attach a shadow root\""}},{"before":"287250a4d35243406a4e1cf651fb99ab1a55ee6b","after":null,"ref":"refs/heads/annevk/clonenode","pushedAt":"2024-04-04T07:27:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"}},{"before":"b9700e0dbf2f246fe7fe39d2aa0882a527e9de6d","after":"3de55b3fb299eab87524e286bc5e1c41fccace12","ref":"refs/heads/main","pushedAt":"2024-04-04T07:27:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"A clonable shadow tree is cloned in its entirety\n\nTests: https://github.com/web-platform-tests/wpt/pull/44247.\r\n\r\nFixes #1249.","shortMessageHtmlLink":"A clonable shadow tree is cloned in its entirety"}},{"before":"5858d35a65701b5b72db40df484de560a17e9cda","after":"b9700e0dbf2f246fe7fe39d2aa0882a527e9de6d","ref":"refs/heads/main","pushedAt":"2024-04-04T07:26:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Correct step 2 of attach a shadow root\n\nRegressed in ca756e0a276ed3d86e2b5cc565a8e7a1bf81100a as part of abstracting attachShadow().","shortMessageHtmlLink":"Correct step 2 of attach a shadow root"}},{"before":"164eae9b4bc2ea64a8a7426d6ac82e55c9904639","after":"2c9f769dc168ba1e815b02bf41249d52d34b891f","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-04-04T03:05:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Address annevk review","shortMessageHtmlLink":"Address annevk review"}},{"before":null,"after":"287250a4d35243406a4e1cf651fb99ab1a55ee6b","ref":"refs/heads/annevk/clonenode","pushedAt":"2024-04-03T13:57:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"A clonable shadow tree is cloned in its entirety\n\nTests: https://github.com/web-platform-tests/wpt/pull/44247.\n\nFixes #1249.","shortMessageHtmlLink":"A clonable shadow tree is cloned in its entirety"}},{"before":"68df7852cf08c65359a7c78f60a01a45d2ff4964","after":"5858d35a65701b5b72db40df484de560a17e9cda","ref":"refs/heads/main","pushedAt":"2024-04-03T13:14:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Editorial: expose Node's textContent getter and setter steps\n\nThese will be used by the Trusted Types (and eventually HTML once upstreamed) as part of shadowing this attribute to HTMLScriptElement.","shortMessageHtmlLink":"Editorial: expose Node's textContent getter and setter steps"}},{"before":"0ceca2654b94ec8e78df1b9cc1f472861fe8e563","after":"164eae9b4bc2ea64a8a7426d6ac82e55c9904639","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-03-04T19:34:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Elaborate on atomicity","shortMessageHtmlLink":"Elaborate on atomicity"}},{"before":"129c030df3e0fc992a4340b449acb82c9da86719","after":"0ceca2654b94ec8e78df1b9cc1f472861fe8e563","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-02-29T21:46:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"Fixes/review comments","shortMessageHtmlLink":"Fixes/review comments"}},{"before":null,"after":"129c030df3e0fc992a4340b449acb82c9da86719","ref":"refs/heads/post-insertion-steps","pushedAt":"2024-02-28T16:30:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"domfarolino","name":"Dominic Farolino","path":"/domfarolino","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9669289?s=80&v=4"},"commit":{"message":"First stab at post-insertion steps","shortMessageHtmlLink":"First stab at post-insertion steps"}},{"before":"6e6406e056235d2b31ad2fa7d1a1624156e23974","after":null,"ref":"refs/heads/zcorpan/connected-node","pushedAt":"2024-02-28T08:11:30.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"}},{"before":"6a9b5a2c139074f192d0124f62d42173638b9ca6","after":"68df7852cf08c65359a7c78f60a01a45d2ff4964","ref":"refs/heads/main","pushedAt":"2024-02-28T08:11:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"annevk","name":"Anne van Kesteren","path":"/annevk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1544111?s=80&v=4"},"commit":{"message":"Define 'connected' for all nodes\n\nSimilarly for 'in a document tree' and 'in a document'.\r\n\r\nFixes #1259.","shortMessageHtmlLink":"Define 'connected' for all nodes"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXNxe2gA","startCursor":null,"endCursor":null}},"title":"Activity ยท whatwg/dom"}