{"action":"created","issue":{"url":"https://api.github.com/repos/servo/servo/issues/10104","repository_url":"https://api.github.com/repos/servo/servo","labels_url":"https://api.github.com/repos/servo/servo/issues/10104/labels{/name}","comments_url":"https://api.github.com/repos/servo/servo/issues/10104/comments","events_url":"https://api.github.com/repos/servo/servo/issues/10104/events","html_url":"https://github.com/servo/servo/issues/10104","id":142409859,"number":10104,"title":"Using viewport percentage lengths (e.g. vh, vw) causes unnecessary style recalc on resize","user":{"login":"mbrubeck","id":5920,"avatar_url":"https://avatars.githubusercontent.com/u/5920?v=3","gravatar_id":"","url":"https://api.github.com/users/mbrubeck","html_url":"https://github.com/mbrubeck","followers_url":"https://api.github.com/users/mbrubeck/followers","following_url":"https://api.github.com/users/mbrubeck/following{/other_user}","gists_url":"https://api.github.com/users/mbrubeck/gists{/gist_id}","starred_url":"https://api.github.com/users/mbrubeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbrubeck/subscriptions","organizations_url":"https://api.github.com/users/mbrubeck/orgs","repos_url":"https://api.github.com/users/mbrubeck/repos","events_url":"https://api.github.com/users/mbrubeck/events{/privacy}","received_events_url":"https://api.github.com/users/mbrubeck/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/servo/servo/labels/A-content/css","name":"A-content/css","color":"d7e102"},{"url":"https://api.github.com/repos/servo/servo/labels/E-less%20easy","name":"E-less easy","color":"02e10c"},{"url":"https://api.github.com/repos/servo/servo/labels/I-perf-slow","name":"I-perf-slow","color":"e10c02"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2016-03-21T17:00:49Z","updated_at":"2016-03-31T18:27:04Z","closed_at":null,"body":"As mentioned in https://github.com/servo/servo/pull/9876#issuecomment-198583704, Servo currently does more work than necessary to recalculate `vh`/`vw`/`vmin`/`vmax` units when the window size changes. Currently, during parsing, if a stylesheet contains any of these viewport percentage units, we add a `dirty_on_viewport_size_change` to the stylesheet.  When the viewport size changes, if any stylesheet has this flag set, we dirty all nodes and recalculate their styles.\r\n\r\nInstead, we could dirty only nodes that match rules containing viewport percentages. During selector matching, `Stylist::push_applicable_declarations` could set a flag on any node whose applicable declarations contain one of these units.  This would require adding a method to DeclaredValue and the various SpecifiedValue types that determines whether the value includes a viewport percentage length."},"comment":{"url":"https://api.github.com/repos/servo/servo/issues/comments/204066109","html_url":"https://github.com/servo/servo/issues/10104#issuecomment-204066109","issue_url":"https://api.github.com/repos/servo/servo/issues/10104","id":204066109,"user":{"login":"roysohan","id":18112428,"avatar_url":"https://avatars.githubusercontent.com/u/18112428?v=3","gravatar_id":"","url":"https://api.github.com/users/roysohan","html_url":"https://github.com/roysohan","followers_url":"https://api.github.com/users/roysohan/followers","following_url":"https://api.github.com/users/roysohan/following{/other_user}","gists_url":"https://api.github.com/users/roysohan/gists{/gist_id}","starred_url":"https://api.github.com/users/roysohan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/roysohan/subscriptions","organizations_url":"https://api.github.com/users/roysohan/orgs","repos_url":"https://api.github.com/users/roysohan/repos","events_url":"https://api.github.com/users/roysohan/events{/privacy}","received_events_url":"https://api.github.com/users/roysohan/received_events","type":"User","site_admin":false},"created_at":"2016-03-31T18:27:04Z","updated_at":"2016-03-31T18:27:04Z","body":"I am quite busy, but will try starting to contribute, any hints on which file to start.\r\n\r\nAlso I am low on bandwidth, so can you suggest how to contribute in low bandwidth condition\r\n\r\nI am a college student, and I have exams, I have started learning rust as a hobby, and someone suggested on rust irc channels that I should be contributing to servo for better understanding.\r\nSo the problem is I cannot commit myself. I am extremely sorry for that.\r\n\r\nBut I will contribute little by little. And this is my first time. So I need your guide and support on where to start, how to do, and which files to edit. I think slowly under your guidance I may learn something.\r\n\r\nI apologise for not being able to commit myself fully."}}