script: Limit public exports. (#34915)

* script: Restrict reexport visibility of DOM types.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* script: Mass pub->pub(crate) conversion.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* script: Hide existing dead code warnings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Formatting.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Fix clippy warnings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Formatting.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Fix unit tests.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Fix clippy.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* More formatting.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
This commit is contained in:
Josh Matthews 2025-01-10 03:19:19 -05:00 committed by GitHub
parent f220d6d3a5
commit c94d909a86
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
585 changed files with 5411 additions and 5013 deletions

View file

@ -46,7 +46,7 @@ use crate::script_runtime::CanGc;
type ParseNodeId = usize;
#[derive(Clone, JSTraceable, MallocSizeOf)]
pub struct ParseNode {
pub(crate) struct ParseNode {
id: ParseNodeId,
#[no_trace]
qual_name: Option<QualName>,
@ -206,7 +206,7 @@ fn create_buffer_queue(mut buffers: VecDeque<SendTendril<UTF8>>) -> BufferQueue
//
#[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root]
pub struct Tokenizer {
pub(crate) struct Tokenizer {
document: Dom<Document>,
#[ignore_malloc_size_of = "Defined in std"]
#[no_trace]
@ -222,7 +222,7 @@ pub struct Tokenizer {
}
impl Tokenizer {
pub fn new(
pub(crate) fn new(
document: &Document,
url: ServoUrl,
fragment_context: Option<super::FragmentContext>,
@ -284,7 +284,7 @@ impl Tokenizer {
tokenizer
}
pub fn feed(
pub(crate) fn feed(
&self,
input: &BufferQueue,
can_gc: CanGc,
@ -330,7 +330,7 @@ impl Tokenizer {
}
}
pub fn end(&self, can_gc: CanGc) {
pub(crate) fn end(&self, can_gc: CanGc) {
self.html_tokenizer_sender
.send(ToHtmlTokenizerMsg::End)
.unwrap();
@ -353,11 +353,11 @@ impl Tokenizer {
}
}
pub fn url(&self) -> &ServoUrl {
pub(crate) fn url(&self) -> &ServoUrl {
&self.url
}
pub fn set_plaintext_state(&self) {
pub(crate) fn set_plaintext_state(&self) {
self.html_tokenizer_sender
.send(ToHtmlTokenizerMsg::SetPlainTextState)
.unwrap();
@ -634,7 +634,7 @@ struct ParseNodeData {
is_integration_point: bool,
}
pub struct Sink {
pub(crate) struct Sink {
current_line: Cell<u64>,
parse_node_data: RefCell<HashMap<ParseNodeId, ParseNodeData>>,
next_parse_node_id: Cell<ParseNodeId>,

View file

@ -34,13 +34,13 @@ use crate::script_runtime::CanGc;
#[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root]
pub struct Tokenizer {
pub(crate) struct Tokenizer {
#[ignore_malloc_size_of = "Defined in html5ever"]
inner: HtmlTokenizer<TreeBuilder<Dom<Node>, Sink>>,
}
impl Tokenizer {
pub fn new(
pub(crate) fn new(
document: &Document,
url: ServoUrl,
fragment_context: Option<super::FragmentContext>,
@ -80,7 +80,7 @@ impl Tokenizer {
Tokenizer { inner }
}
pub fn feed(&self, input: &BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> {
pub(crate) fn feed(&self, input: &BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> {
match self.inner.feed(input) {
TokenizerResult::Done => TokenizerResult::Done,
TokenizerResult::Script(script) => {
@ -89,15 +89,15 @@ impl Tokenizer {
}
}
pub fn end(&self) {
pub(crate) fn end(&self) {
self.inner.end();
}
pub fn url(&self) -> &ServoUrl {
pub(crate) fn url(&self) -> &ServoUrl {
&self.inner.sink.sink.base_url
}
pub fn set_plaintext_state(&self) {
pub(crate) fn set_plaintext_state(&self) {
self.inner.set_plaintext_state();
}
}

View file

@ -89,7 +89,7 @@ mod xml;
/// ^
/// insertion point
/// ```
pub struct ServoParser {
pub(crate) struct ServoParser {
reflector: Reflector,
/// The document associated with this parser.
document: Dom<Document>,
@ -130,29 +130,29 @@ pub struct ServoParser {
prefetch_input: BufferQueue,
}
pub struct ElementAttribute {
pub(crate) struct ElementAttribute {
name: QualName,
value: DOMString,
}
#[derive(Clone, Copy, JSTraceable, MallocSizeOf, PartialEq)]
pub enum ParsingAlgorithm {
pub(crate) enum ParsingAlgorithm {
Normal,
Fragment,
}
impl ElementAttribute {
pub fn new(name: QualName, value: DOMString) -> ElementAttribute {
pub(crate) fn new(name: QualName, value: DOMString) -> ElementAttribute {
ElementAttribute { name, value }
}
}
impl ServoParser {
pub fn parser_is_not_active(&self) -> bool {
pub(crate) fn parser_is_not_active(&self) -> bool {
self.can_write()
}
pub fn parse_html_document(
pub(crate) fn parse_html_document(
document: &Document,
input: Option<DOMString>,
url: ServoUrl,
@ -186,7 +186,7 @@ impl ServoParser {
}
// https://html.spec.whatwg.org/multipage/#parsing-html-fragments
pub fn parse_html_fragment(
pub(crate) fn parse_html_fragment(
context: &Element,
input: DOMString,
can_gc: CanGc,
@ -251,7 +251,7 @@ impl ServoParser {
}
}
pub fn parse_html_script_input(document: &Document, url: ServoUrl) {
pub(crate) fn parse_html_script_input(document: &Document, url: ServoUrl) {
let parser = ServoParser::new(
document,
Tokenizer::Html(self::html::Tokenizer::new(
@ -266,7 +266,7 @@ impl ServoParser {
document.set_current_parser(Some(&parser));
}
pub fn parse_xml_document(
pub(crate) fn parse_xml_document(
document: &Document,
input: Option<DOMString>,
url: ServoUrl,
@ -286,11 +286,11 @@ impl ServoParser {
}
}
pub fn script_nesting_level(&self) -> usize {
pub(crate) fn script_nesting_level(&self) -> usize {
self.script_nesting_level.get()
}
pub fn is_script_created(&self) -> bool {
pub(crate) fn is_script_created(&self) -> bool {
self.script_created_parser
}
@ -308,7 +308,7 @@ impl ServoParser {
/// ^
/// insertion point
/// ```
pub fn resume_with_pending_parsing_blocking_script(
pub(crate) fn resume_with_pending_parsing_blocking_script(
&self,
script: &HTMLScriptElement,
result: ScriptResult,
@ -334,12 +334,12 @@ impl ServoParser {
}
}
pub fn can_write(&self) -> bool {
pub(crate) fn can_write(&self) -> bool {
self.script_created_parser || self.script_nesting_level.get() > 0
}
/// Steps 6-8 of <https://html.spec.whatwg.org/multipage/#document.write()>
pub fn write(&self, text: Vec<DOMString>, can_gc: CanGc) {
pub(crate) fn write(&self, text: Vec<DOMString>, can_gc: CanGc) {
assert!(self.can_write());
if self.document.has_pending_parsing_blocking_script() {
@ -399,7 +399,7 @@ impl ServoParser {
}
// Steps 4-6 of https://html.spec.whatwg.org/multipage/#dom-document-close
pub fn close(&self, can_gc: CanGc) {
pub(crate) fn close(&self, can_gc: CanGc) {
assert!(self.script_created_parser);
// Step 4.
@ -415,7 +415,7 @@ impl ServoParser {
}
// https://html.spec.whatwg.org/multipage/#abort-a-parser
pub fn abort(&self, can_gc: CanGc) {
pub(crate) fn abort(&self, can_gc: CanGc) {
assert!(!self.aborted.get());
self.aborted.set(true);
@ -437,7 +437,7 @@ impl ServoParser {
}
// https://html.spec.whatwg.org/multipage/#active-parser
pub fn is_active(&self) -> bool {
pub(crate) fn is_active(&self) -> bool {
self.script_nesting_level() > 0 && !self.aborted.get()
}
@ -773,7 +773,7 @@ impl Tokenizer {
/// The context required for asynchronously fetching a document
/// and parsing it progressively.
pub struct ParserContext {
pub(crate) struct ParserContext {
/// The parser that initiated the request.
parser: Option<Trusted<ServoParser>>,
/// Is this a synthesized document
@ -789,7 +789,7 @@ pub struct ParserContext {
}
impl ParserContext {
pub fn new(id: PipelineId, url: ServoUrl) -> ParserContext {
pub(crate) fn new(id: PipelineId, url: ServoUrl) -> ParserContext {
ParserContext {
parser: None,
is_synthesized_document: false,
@ -1057,9 +1057,9 @@ impl FetchResponseListener for ParserContext {
impl PreInvoke for ParserContext {}
pub struct FragmentContext<'a> {
pub context_elem: &'a Node,
pub form_elem: Option<&'a Node>,
pub(crate) struct FragmentContext<'a> {
pub(crate) context_elem: &'a Node,
pub(crate) form_elem: Option<&'a Node>,
}
#[allow(crown::unrooted_must_root)]
@ -1104,7 +1104,7 @@ fn insert(
#[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root]
pub struct Sink {
pub(crate) struct Sink {
#[no_trace]
base_url: ServoUrl,
document: Dom<Document>,

View file

@ -26,7 +26,7 @@ use crate::stylesheet_loader::stylesheet_fetch_request;
#[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root]
pub struct Tokenizer {
pub(crate) struct Tokenizer {
#[ignore_malloc_size_of = "Defined in html5ever"]
inner: HtmlTokenizer<PrefetchSink>,
}
@ -39,7 +39,7 @@ unsafe impl CustomTraceable for HtmlTokenizer<PrefetchSink> {
}
impl Tokenizer {
pub fn new(document: &Document) -> Self {
pub(crate) fn new(document: &Document) -> Self {
let sink = PrefetchSink {
origin: document.origin().immutable().clone(),
pipeline_id: document.global().pipeline_id(),
@ -58,7 +58,7 @@ impl Tokenizer {
Tokenizer { inner }
}
pub fn feed(&self, input: &BufferQueue) {
pub(crate) fn feed(&self, input: &BufferQueue) {
while let TokenizerResult::Script(PrefetchHandle) = self.inner.feed(input) {}
}
}

View file

@ -22,13 +22,13 @@ use crate::dom::servoparser::{ParsingAlgorithm, Sink};
#[derive(JSTraceable, MallocSizeOf)]
#[crown::unrooted_must_root_lint::must_root]
pub struct Tokenizer {
pub(crate) struct Tokenizer {
#[ignore_malloc_size_of = "Defined in xml5ever"]
inner: XmlTokenizer<XmlTreeBuilder<Dom<Node>, Sink>>,
}
impl Tokenizer {
pub fn new(document: &Document, url: ServoUrl) -> Self {
pub(crate) fn new(document: &Document, url: ServoUrl) -> Self {
let sink = Sink {
base_url: url,
document: Dom::from_ref(document),
@ -43,7 +43,7 @@ impl Tokenizer {
Tokenizer { inner: tok }
}
pub fn feed(&self, input: &BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> {
pub(crate) fn feed(&self, input: &BufferQueue) -> TokenizerResult<DomRoot<HTMLScriptElement>> {
self.inner.run(input);
match self.inner.sink.sink.script.take() {
Some(script) => TokenizerResult::Script(script),
@ -51,11 +51,11 @@ impl Tokenizer {
}
}
pub fn end(&self) {
pub(crate) fn end(&self) {
self.inner.end()
}
pub fn url(&self) -> &ServoUrl {
pub(crate) fn url(&self) -> &ServoUrl {
&self.inner.sink.sink.base_url
}
}