{"action":"created","issue":{"url":"https://api.github.com/repos/servo/webrender/issues/3020","repository_url":"https://api.github.com/repos/servo/webrender","labels_url":"https://api.github.com/repos/servo/webrender/issues/3020/labels{/name}","comments_url":"https://api.github.com/repos/servo/webrender/issues/3020/comments","events_url":"https://api.github.com/repos/servo/webrender/issues/3020/events","html_url":"https://github.com/servo/webrender/pull/3020","id":357204533,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEzMjc0NjIz","number":3020,"title":"Add external event notifications in transactions.","user":{"login":"nical","id":264854,"node_id":"MDQ6VXNlcjI2NDg1NA==","avatar_url":"https://avatars2.githubusercontent.com/u/264854?v=4","gravatar_id":"","url":"https://api.github.com/users/nical","html_url":"https://github.com/nical","followers_url":"https://api.github.com/users/nical/followers","following_url":"https://api.github.com/users/nical/following{/other_user}","gists_url":"https://api.github.com/users/nical/gists{/gist_id}","starred_url":"https://api.github.com/users/nical/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nical/subscriptions","organizations_url":"https://api.github.com/users/nical/orgs","repos_url":"https://api.github.com/users/nical/repos","events_url":"https://api.github.com/users/nical/events{/privacy}","received_events_url":"https://api.github.com/users/nical/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-09-05T12:25:13Z","updated_at":"2018-09-12T16:14:22Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/servo/webrender/pulls/3020","html_url":"https://github.com/servo/webrender/pull/3020","diff_url":"https://github.com/servo/webrender/pull/3020.diff","patch_url":"https://github.com/servo/webrender/pull/3020.patch"},"body":"This allows gecko to attach a callback to the transaction and run it after the scene is built to notify the tab switcher that the work is done.\r\n\r\nThe first commit adds a drain_filter utility modeled after currently unstable Vec::drain_filter. The idea is to be able to get a vector of operations, and each stage of the pipeline can decide to move operations out of the the array and handle them or let them for the next stages to consume.\r\nHopefully we can use this to merge back the frame_ops, scene_ops and the other vectors in the `Transaction` struct.\r\nThis was previously inconvenient because of how some operations need to move elements out of the vector but while we need to keep the array alive at the same time, and drain_filter makes that less painful.\r\n\r\nThis PR is based on top of #2989\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/webrender/3020)\n<!-- Reviewable:end -->\n"},"comment":{"url":"https://api.github.com/repos/servo/webrender/issues/comments/420707916","html_url":"https://github.com/servo/webrender/pull/3020#issuecomment-420707916","issue_url":"https://api.github.com/repos/servo/webrender/issues/3020","id":420707916,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMDcwNzkxNg==","user":{"login":"bors-servo","id":4368172,"node_id":"MDQ6VXNlcjQzNjgxNzI=","avatar_url":"https://avatars1.githubusercontent.com/u/4368172?v=4","gravatar_id":"","url":"https://api.github.com/users/bors-servo","html_url":"https://github.com/bors-servo","followers_url":"https://api.github.com/users/bors-servo/followers","following_url":"https://api.github.com/users/bors-servo/following{/other_user}","gists_url":"https://api.github.com/users/bors-servo/gists{/gist_id}","starred_url":"https://api.github.com/users/bors-servo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bors-servo/subscriptions","organizations_url":"https://api.github.com/users/bors-servo/orgs","repos_url":"https://api.github.com/users/bors-servo/repos","events_url":"https://api.github.com/users/bors-servo/events{/privacy}","received_events_url":"https://api.github.com/users/bors-servo/received_events","type":"User","site_admin":false},"created_at":"2018-09-12T16:14:22Z","updated_at":"2018-09-12T16:14:22Z","author_association":"CONTRIBUTOR","body":":sunny: Test successful - [status-appveyor](https://ci.appveyor.com/project/servo/webrender/build/1.0.10488), [status-taskcluster](https://tools.taskcluster.net/task-group-inspector/#/KKK1W9ifQjqsg80iot2u7Q)\nApproved by: kvark\nPushing fb61f1b83f1aa02465a1e56191c37af7b04b8822 to master..."}}
{"actor":{"display_login":"bors-servo"}}