aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/htmlobjectelement.rs
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2014-04-04 11:19:36 -0400
committerbors-servo <release+servo@mozilla.com>2014-04-04 11:19:36 -0400
commit7ece5f92dbd82bae1ef4862497c8f1bc810c6c55 (patch)
tree29561ded4dd4410576b750a0a9fe31d40a305eda /src/components/script/dom/htmlobjectelement.rs
parentfe1615bc3dc3bd2f8d3fbb6f776e701b4c6dda76 (diff)
parent55cc9ccf227378a8d4235708eeca1b1bf176cf20 (diff)
downloadservo-7ece5f92dbd82bae1ef4862497c8f1bc810c6c55.tar.gz
servo-7ece5f92dbd82bae1ef4862497c8f1bc810c6c55.zip
auto merge of #1971 : Constellation/servo/quick-fail-selector-matching, r=SimonSapin
Restart selector matching from an appropriate selector Introducing 3 matching failure statuses, + NotMatchedGlobally + NotMatchedAndRestartFromClosestDescendant + NotMatchedAndRestartFromClosestLaterSibling When NotMatchedGlobally appears, stop selector matching completely since the succeeding selector never matches. It is raised when + Child selector cannot find the candidate element + Descendant selector cannot find the candidate element When NotMatchedAndRestartFromClosestDescendant appears, the selector matching does backtracking and restarts from the closest Descendant selector. It is raised when + NextSibling selector cannot find the candidate element. + LaterSibling selector cannot find the candidate element. + Child selector doesn't match on the found element. When NotMatchedAndRestartFromClosestLaterSibling appears, the selector matching does backtracking and restarts from the closest LaterSibling selector. It is raised when + NextSibling selector doesn't match on the found element. For example, when the selector "d1 d2 a" is provided and we cannot *find* an appropriate ancestor node for "d1", this selector matching raises NotMatchedGlobally since even if "d2" is moved to more upper node, the candidates for "d1" becomes less than before and d1 . The next example is siblings. When the selector "b1 + b2 ~ d1 a" is providied and we cannot *find* an appropriate brother node for b1, the selector matching raises NotMatchedAndRestartFromClosestDescendant. The selectors ("b1 + b2 ~") doesn't match and matching restart from "d1". The additional example is child and sibling. When the selector "b1 + c1 > b2 ~ d1 a" is provided and the selector "b1" doesn't match on the element, this "b1" raises NotMatchedAndRestartFromClosestLaterSibling. However since the selector "c1" raises NotMatchedAndRestartFromClosestDescendant. So the selector "b1 + c1 > b2 ~ " doesn't match and restart matching from "d1".
Diffstat (limited to 'src/components/script/dom/htmlobjectelement.rs')
0 files changed, 0 insertions, 0 deletions