mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Implement document.scrollingElement
(#35994)
<!-- Please describe your changes on the following line: --> This implements `document.scrollingElement` (https://drafts.csswg.org/cssom-view/#dom-document-scrollingelement). --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #35700 - [x] There are tests for these changes <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> --------- Signed-off-by: JimmyDdotEXE <50691404+JimmyDdotEXE@users.noreply.github.com>
This commit is contained in:
parent
7ea5951e34
commit
1f6050f931
37 changed files with 195 additions and 272 deletions
|
@ -6369,6 +6369,30 @@ impl DocumentMethods<crate::DomTypeHolder> for Document {
|
|||
)
|
||||
}
|
||||
|
||||
/// <https://drafts.csswg.org/cssom-view/#dom-document-scrollingelement>
|
||||
fn GetScrollingElement(&self, can_gc: CanGc) -> Option<DomRoot<Element>> {
|
||||
// Step 1. If the Document is in quirks mode, follow these steps:
|
||||
if self.quirks_mode() == QuirksMode::Quirks {
|
||||
// Step 1.1. If the body element exists,
|
||||
if let Some(ref body) = self.GetBody() {
|
||||
let e = body.upcast::<Element>();
|
||||
// and it is not potentially scrollable, return the body element and abort these steps.
|
||||
// For this purpose, a value of overflow:clip on the the body element’s parent element
|
||||
// must be treated as overflow:hidden.
|
||||
if !e.is_potentially_scrollable_body_for_scrolling_element(can_gc) {
|
||||
return Some(DomRoot::from_ref(e));
|
||||
}
|
||||
}
|
||||
|
||||
// Step 1.2. Return null and abort these steps.
|
||||
return None;
|
||||
}
|
||||
|
||||
// Step 2. If there is a root element, return the root element and abort these steps.
|
||||
// Step 3. Return null.
|
||||
self.GetDocumentElement()
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/#dom-document-open
|
||||
fn Open(
|
||||
&self,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue