{"push_id":761980504,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"4deb4f5cf3c24ba05b5d499effa4907cfff1fc6f","before":"5e887d57305f67e787834f00dac9b88867707c80","commits":[{"sha":"4deb4f5cf3c24ba05b5d499effa4907cfff1fc6f","author":{"email":"8800578b51f022c8d8adb9606a8b3db4fedbdac6@chromium.org","name":"hans@chromium.org"},"message":"Revert of Prepare for multiple !important author ranges. (patchset #11 id:200001 of https://codereview.chromium.org/1282243002/ )\n\nReason for revert:\nThis caused oilpan plugin errors on Windows.\nFrom http://build.chromium.org/p/chromium.fyi/builders/ClangToTWin/builds/2535/steps/compile/logs/stdio:\n\n..\\..\\third_party\\WebKit\\Source\\core/css/resolver/MatchResult.h(115,1) :  error: [blink-gc] Class 'ImportantAuthorRangeIterator' contains invalid fields.\nclass ImportantAuthorRangeIterator {\n^\n..\\..\\third_party\\WebKit\\Source\\core/css/resolver/MatchResult.h(140,5) :  note: [blink-gc] Stack-allocated field 'm_result' declared here:\n    const MatchResult& m_result;\n    ^\n..\\..\\third_party\\WebKit\\Source\\core/css/resolver/MatchResult.h(144,1) :  error: [blink-gc] Class 'ImportantAuthorRanges' contains invalid fields.\nclass ImportantAuthorRanges {\n^\n..\\..\\third_party\\WebKit\\Source\\core/css/resolver/MatchResult.h(152,5) :  note: [blink-gc] Stack-allocated field 'm_result' declared here:\n    const MatchResult& m_result;\n    ^\n\nOriginal issue's description:\n> Prepare for multiple !important author ranges.\n> \n> This CL is split out from [1] where we support multiple author origins in\n> terms of shadow dom scopes. The vector of MatchedProperties contains\n> matched declarations from all origins in the order in which they should\n> be applied. For !important declarations, they are applied in the same\n> order within the same origin, but the order of the origins are different\n> as the cascading order is:\n> \n>   - UA important\n>   - Author important\n>   - Author\n>   - UA\n> \n> We used to have two ranges, one for UA and one for author to accomplish\n> this. However, with the normal/!important cascading order for\n> declarations from different shadow doms, we need multiple author ranges:\n> \n>   - UA important\n>   - Author important scope n\n>   ...\n>   - Author important scope 1\n>   - Author scope 1\n>   ...\n>   - Author scope n\n>   - UA\n> \n> We introduce an ImportantAuthorRangeIterator to iterate through the\n> author ranges and add iterator-style iteration for each range through the\n> MatchedPropertiesRange class.\n> \n> As the applyMatchedProperties code is hot, I've run the blink_perf.css\n> tests locally. Some improved by 2-4%, some became worse by similar\n> percentages.\n> \n> [1] https://codereview.chromium.org/1224673002/\n> \n> BUG=487125\n> TEST=fast/css\n> \n> Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=200697\n\nTBR=kochi@chromium.org,timloh@chromium.org,rune@opera.com\nNOPRESUBMIT=true\nNOTREECHECKS=true\nNOTRY=true\nBUG=487125\n\nReview URL: https://codereview.chromium.org/1303513002\n\ngit-svn-id: svn://svn.chromium.org/blink/trunk@200728 bbb929c8-8fbe-4397-9dbb-9b2b20218538","distinct":true,"url":"https://api.github.com/repos/dstockwell/blink/commits/4deb4f5cf3c24ba05b5d499effa4907cfff1fc6f"}]}