{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/7423","labels_url":"https://api.github.com/repos/servo/servo/issues/7423/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/7423/comments","events_url":"https://api.github.com/repos/servo/servo/issues/7423/events","html_url":"https://github.com/servo/servo/pull/7423","id":103630376,"number":7423,"title":"layout: Make the compositor rather than layout determine the position of each iframe.","user":{"login":"pcwalton","id":157897,"avatar_url":"https://avatars.githubusercontent.com/u/157897?v=3","gravatar_id":"","url":"https://api.github.com/users/pcwalton","html_url":"https://github.com/pcwalton","followers_url":"https://api.github.com/users/pcwalton/followers","following_url":"https://api.github.com/users/pcwalton/following{/other_user}","gists_url":"https://api.github.com/users/pcwalton/gists{/gist_id}","starred_url":"https://api.github.com/users/pcwalton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pcwalton/subscriptions","organizations_url":"https://api.github.com/users/pcwalton/orgs","repos_url":"https://api.github.com/users/pcwalton/repos","events_url":"https://api.github.com/users/pcwalton/events{/privacy}","received_events_url":"https://api.github.com/users/pcwalton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/servo/servo/labels/A-constellation","name":"A-constellation","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/A-gfx/compositing","name":"A-gfx/compositing","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/A-gfx/rendering","name":"A-gfx/rendering","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/I-wrong","name":"I-wrong","color":"e10c02"},{"url":"https://api.github.com/repos/servo/servo/labels/S-awaiting-review","name":"S-awaiting-review","color":"d4c5f9"},{"url":"https://api.github.com/repos/servo/servo/labels/S-needs-rebase","name":"S-needs-rebase","color":"d4c5f9"}],"state":"open","locked":false,"assignee":{"login":"glennw","id":2350882,"avatar_url":"https://avatars.githubusercontent.com/u/2350882?v=3","gravatar_id":"","url":"https://api.github.com/users/glennw","html_url":"https://github.com/glennw","followers_url":"https://api.github.com/users/glennw/followers","following_url":"https://api.github.com/users/glennw/following{/other_user}","gists_url":"https://api.github.com/users/glennw/gists{/gist_id}","starred_url":"https://api.github.com/users/glennw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glennw/subscriptions","organizations_url":"https://api.github.com/users/glennw/orgs","repos_url":"https://api.github.com/users/glennw/repos","events_url":"https://api.github.com/users/glennw/events{/privacy}","received_events_url":"https://api.github.com/users/glennw/received_events","type":"User","site_admin":false},"milestone":null,"comments":23,"created_at":"2015-08-28T02:04:04Z","updated_at":"2015-09-24T01:41:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/servo/servo/pulls/7423","html_url":"https://github.com/servo/servo/pull/7423","diff_url":"https://github.com/servo/servo/pull/7423.diff","patch_url":"https://github.com/servo/servo/pull/7423.patch"},"body":"The old code that attempted to do this during layout wasn't able to work\r\nfor multiple reasons: it couldn't know where the iframe was going to be\r\non the page (because of nested iframes), and at the time it was building\r\nthe display list for a fragment it couldn't know where that fragment was\r\ngoing to be in page coordinates.\r\n\r\nThis patch rewrites that code so that only the size of an iframe is\r\ndetermined during layout, and the position is determined by the\r\ncompositor. Layout layerizes iframes and marks the iframe layers with\r\nthe appropriate subpage ID so that the compositor can place them\r\ncorrectly.\r\n\r\nCloses #7377.\n\n<!-- Reviewable:start -->\n[<img src=\"https://reviewable.io/review_button.png\" height=40 alt=\"Review on Reviewable\"/>](https://reviewable.io/reviews/servo/servo/7423)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/142779902","html_url":"https://github.com/servo/servo/pull/7423#issuecomment-142779902","issue_url":"https://api.github.com/repos/servo/servo/issues/7423","id":142779902,"user":{"login":"glennw","id":2350882,"avatar_url":"https://avatars.githubusercontent.com/u/2350882?v=3","gravatar_id":"","url":"https://api.github.com/users/glennw","html_url":"https://github.com/glennw","followers_url":"https://api.github.com/users/glennw/followers","following_url":"https://api.github.com/users/glennw/following{/other_user}","gists_url":"https://api.github.com/users/glennw/gists{/gist_id}","starred_url":"https://api.github.com/users/glennw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glennw/subscriptions","organizations_url":"https://api.github.com/users/glennw/orgs","repos_url":"https://api.github.com/users/glennw/repos","events_url":"https://api.github.com/users/glennw/events{/privacy}","received_events_url":"https://api.github.com/users/glennw/received_events","type":"User","site_admin":false},"created_at":"2015-09-24T01:41:58Z","updated_at":"2015-09-24T01:41:58Z","body":"@pcwalton This generally looks OK to me (it seems to match what we discussed at the work week).\r\n\r\nI'm not sure that ReapLayoutData can be removed though? There are a few nits apart from that question, and test-tidy needs to be fixed.\r\n\r\nIt's really unfortunate that the subpage abstraction is now leaking into the compositor, but I don't have any suggestion for a better way to fix it right now (other than fixing #5235 and #5241) :(\r\n"}}