aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/htmlobjectelement.rs
diff options
context:
space:
mode:
authorYusuke Suzuki <utatane.tea@gmail.com>2014-03-23 02:32:16 +0900
committerYusuke Suzuki <utatane.tea@gmail.com>2014-04-05 00:07:33 +0900
commit55cc9ccf227378a8d4235708eeca1b1bf176cf20 (patch)
tree900ed56897381a45264ef4aa1694e8d56f9e246c /src/components/script/dom/htmlobjectelement.rs
parentf34a64049a8b6dede424d35345db63bc60b5e423 (diff)
downloadservo-55cc9ccf227378a8d4235708eeca1b1bf176cf20.tar.gz
servo-55cc9ccf227378a8d4235708eeca1b1bf176cf20.zip
Restart selector matching from an appropriate compound selector
Introducing 3 matching failure statuses, NotMatchedAndRestartFromClosestLaterSibling NotMatchedAndRestartFromClosestDescendant NotMatchedGlobally When NotMatchedGlobally appears, stop selector matching completely since the succeeding selector never matches. It is raised when Child combinator cannot find the candidate element Descendant combinator cannot find the candidate element When NotMatchedAndRestartFromClosestDescendant appears, the selector matching does backtracking and restarts from the closest Descendant combinator. It is raised when NextSibling combinator cannot find the candidate element. LaterSibling combinator cannot find the candidate element. Child combinator doesn't match on the found element. When NotMatchedAndRestartFromClosestLaterSibling appears, the selector matching does backtracking and restarts from the closest LaterSibling combinator. It is raised when NextSibling combinator 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