aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/document_loader.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix GC borrow hazards triggered by LoadBlocker::terminate (#34122)tanishka2024-11-041-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | * Fix GC borrow hazards triggered by LoadBlocker::terminate Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com> * Fix clippy warnings Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com> * Use borrow_mut() Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com> * Revert to previous code due to crown unrooted error Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com> * Update test expectations Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com> --------- Signed-off-by: taniishkaaa <tanishkasingh2004@gmail.com>
* net: Start reducing number of IPCs channels used for fetch with a ↵Martin Robinson2024-10-161-17/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `FetchThread` (#33863) Instead of creating a `ROUTER` for each fetch, create a fetch thread which handles all incoming and outcoming fetch requests. Now messages involving fetches carry a "request id" which indicates which fetch is being addressed by the message. This greatly reduces the number of file descriptors used by fetch. In addition, the interface for kicking off fetches is simplified when using the `Listener` with `Document`s and the `GlobalScope`. This does not fix all leaked file descriptors / mach ports, but greatly eliminates the number used. Now tests can be run without limiting procesess on modern macOS systems. Followup work: 1. There are more instances where fetch is done using the old method. Some of these require more changes in order to be converted to the `FetchThread` approach. 2. Eliminate usage of IPC channels when doing redirects. 3. Also eliminate the IPC channel used for cancel handling. 4. This change opens up the possiblity of controlling the priority of fetch requests. Fixes #29834. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Propagate `CanGc` from `Document::new()` (#33386)Andriy Sultanov2024-09-091-3/+4
| | | | | | | | | | | | | * Add canGc as a parameter to autogenerated trait methods Signed-off-by: Andriy Sultanov <sultanovandriy@gmail.com> * Propagate CanGc from Document::new() Signed-off-by: Andriy Sultanov <sultanovandriy@gmail.com> --------- Signed-off-by: Andriy Sultanov <sultanovandriy@gmail.com>
* clippy: fixed some warnings in components/script (#31888)Ekta Siwach2024-03-261-4/+3
|
* clippy: Fix several warnings (#31710)RustAndMetal2024-03-181-1/+1
| | | Signed-off-by: RustAndMetal <111676747+RustAndMetal@users.noreply.github.com>
* Replace script_plugins with a clippy like rustc driver (named crown) (#30508)Samson2023-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove script_plugins * Use crown instead of script_plugins * crown_is_not_used * Use crown in command base * bootstrap crown * tidy happy * disable sccache * Bring crown in tree * Install crown from tree * fix windows ci * fix warning * fix mac libscript_plugins.dylib is not available anymore * Update components/script/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Update for nightly-2023-03-18 Mostly just based off https://github.com/servo/servo/pull/30630 * Always install crown it's slow only when there is new version * Run crown test with `mach test-unit` * Small fixups; better trace_in_no_trace tests * Better doc * crown in config.toml * Fix tidy for real * no sccache on rustc_wrapper * document rustc overrides * fixup of compiletest * Make a few minor comment adjustments * Fix a typo in python/servo/platform/base.py Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com> * Proper test types * Ignore tidy on crown/tests --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Strict import formatting (grouping and granularity) (#30325)Samson2023-09-111-5/+5
| | | | | * strict imports formatting * Reformat all imports
* No tracing of nop traceable fields (#29926)Samson2023-08-041-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add `no_trace` option to JSTraceable derive * NoTrace wrapper * Port some types to no_trace schematics * Fixing my unsafe mistakes (not tracing traceables) * Add docs & safety guards for no_trace Safety guards (trait shenanigans) guarantees safety usage of `no_trace` * Port canvas_traits to no_trace * Port servo_media to no_trace * Port net_traits to no_trace * Port style to no_trace * Port webgpu to no_trace * Port script_traits to no_trace * Port canvas_traits, devtools_traits, embedder_traits, profile_traits to no_trace * unrooted_must_root lint in seperate file * Add trace_in_no_trace_lint as script_plugin * Composable types in must_not_have_traceable * Introduced HashMapTracedValues wrapper * `HashMap<NoTrace<K>,V>`->`HashMapTracedValues<K,V>` * Port rest of servo's types to no_trace * Port html5ever, euclid, mime and http to no_trace * Port remaining externals to no_trace * Port webxr and Arc<Mutex<_>> * Fix spelling in notrace doc
* Use `#![register_tool]` instead of `#![register_attr]`Simon Sapin2019-11-151-1/+1
| | | | CC https://github.com/rust-lang/rust/issues/66079
* Remove unused code from script* cratesest312019-06-021-18/+0
|
* Auto merge of #23183 - krk:fix-23144, r=asajeffreybors-servo2019-04-111-2/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace panic with warn in DocumentLoader.finish_load. Fix panic on broken script URL with an onerror handler that rewrites the document. <!-- Please describe your changes on the following line: --> --- <!-- 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 #23144 <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23183) <!-- Reviewable:end -->
| * Replace panic with warn in DocumentLoader.finish_load.krk2019-04-091-2/+6
| | | | | | | | | | Fix panic on broken script URL with an onerror handler that rewrites the document.
* | Implementing the builder pattern for RequestInitLucas Fantacuci2019-04-101-3/+3
|/
* ran ./mach fmtelias2019-03-141-3/+2
| | | | | | - removed unused import in document_loader.rs - limit unsafe block in mark_document_with_no_blocked_loads in script_thread.rs - changed name of if let value to load in Drop for LoadBlocker in document_loader.rs
* removed spurrious assert in Drop for LoadBlockerelias2019-03-131-2/+2
|
* Update MPL license to https (part 3)Jan Andre Ikenmeyer2018-11-191-1/+1
|
* Reorder importsPyfisch2018-11-061-2/+2
|
* Format remaining filesPyfisch2018-11-061-1/+2
|
* `cargo fix --edition`Simon Sapin2018-11-061-3/+3
|
* Format script componentchansuke2018-09-191-17/+39
|
* implement window.stop, improve aborting document loadGregory Terzian2018-07-291-2/+15
|
* Add a topLevelDomComplete metric.Alan Jeffrey2017-12-141-0/+7
|
* Fetch cancellation: Add cancel_chan to FetchContextManish Goregaokar2017-11-171-1/+1
|
* Merge functionality of WebsocketConnect into FetchKeith Yeung2017-10-241-2/+4
|
* Replace all uses of the `heapsize` crate with `malloc_size_of`.Nicholas Nethercote2017-10-181-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Servo currently uses `heapsize`, but Stylo/Gecko use `malloc_size_of`. `malloc_size_of` is better -- it handles various cases that `heapsize` does not -- so this patch changes Servo to use `malloc_size_of`. This patch makes the following changes to the `malloc_size_of` crate. - Adds `MallocSizeOf` trait implementations for numerous types, some built-in (e.g. `VecDeque`), some external and Servo-only (e.g. `string_cache`). - Makes `enclosing_size_of_op` optional, because vanilla jemalloc doesn't support that operation. - For `HashSet`/`HashMap`, falls back to a computed estimate when `enclosing_size_of_op` isn't available. - Adds an extern "C" `malloc_size_of` function that does the actual heap measurement; this is based on the same functions from the `heapsize` crate. This patch makes the following changes elsewhere. - Converts all the uses of `heapsize` to instead use `malloc_size_of`. - Disables the "heapsize"/"heap_size" feature for the external crates that provide it. - Removes the `HeapSizeOf` implementation from `hashglobe`. - Adds `ignore` annotations to a few `Rc`/`Arc`, because `malloc_size_of` doesn't derive those types, unlike `heapsize`.
* Fix commonmark Markdown warnings in docs, part 1Matt Brubeck2017-10-171-1/+2
| | | | | | | | Fixes warnings from rust-lang/rust#44229 when `--enable-commonmark` is passed to rustdoc. This is mostly a global find-and-replace for bare URIs on lines by themselves in doc comments.
* Rename JS<T> to Dom<T>Anthony Ramine2017-09-261-3/+3
|
* Rename dom::bindings::js to dom::bindings::rootAnthony Ramine2017-09-261-1/+1
|
* Decouple media load blockers from their resource URLAnthony Ramine2017-09-251-5/+5
| | | | | A media element can delay the document's load event without having a resource URL, and it can even block it while being inserted into a different document AFAIK.
* Rename Document::mut_loader to loader_mutAnthony Ramine2017-09-251-1/+1
|
* fix #18594: Unnecessarily allocating an error stringtigercosmos2017-09-231-1/+1
|
* order derivable traits listsClément DAVID2017-08-231-3/+3
| | | | | | Ignoring : - **generated**.rs - python/tidy/servo_tidy_tests/rust_tidy.rs
* Remove mutability requirement from fetch_async_background.Josh Matthews2017-02-281-1/+1
|
* Extract layout image request into separate file. Do not block the document ↵Josh Matthews2017-02-221-0/+7
| | | | load event.
* Urlmageddon: Use refcounted urls more often.Emilio Cobos Álvarez2016-11-171-10/+10
|
* Lookup frames by frame_id, not pipeline_id.Alan Jeffrey2016-11-031-0/+3
|
* Remove DocumentLoader::pipeline.Ms2ger2016-10-131-5/+1
|
* Remove Document::load_async.Ms2ger2016-10-131-32/+3
|
* Privatize PendingAsyncLoad.Ms2ger2016-10-041-8/+8
|
* Remove Document::add_blocking_load.Ms2ger2016-10-041-2/+2
|
* Inline prepare_async_load.Ms2ger2016-10-041-19/+10
|
* Avoid PendingAsyncLoad in fetch_async.Ms2ger2016-10-041-7/+5
|
* Use fetch infrastructure to load external scriptsKeith Yeung2016-09-211-1/+1
|
* Add fetch_async to PendingAsyncLoad, DocumentLoader and DocumentKeith Yeung2016-09-211-2/+15
|
* Bring referrer policy delivery to <a> and <link> via rel attributeYing-Ruei Liang(KK)2016-09-201-5/+7
|
* Integrate service worker manager threadRahul Sharma2016-07-161-5/+2
|
* change load blocker drop assert to debug_assertConnor Brewster2016-06-301-1/+1
|
* Add file backend support for Blob and relatedZhen Zhang2016-06-011-15/+14
| | | | | | | | Changes include: - Add BlobImpl to Blob, and related caching mechanism - Expose ResourceThreads to document_loader, workerglobalscope, worker, and global - Fix encode_multipart_form_data - Other small fixes to accommodate the above changes
* adding interface for custom responsesRahul Sharma2016-05-201-4/+11
|
* Implement trait-based ResourceThreads and clean up related naming issuesZhen Zhang2016-05-201-5/+5
| | | | | | | | | | Changes include: - Introduce an IpcSend trait to abstract over a collection of IpcSenders - Implement ResourceThreads collection to abstract the resource-related sub threads across the component - Rename original ResourceThread and ControlMsg into an unifed CoreResource__ to accommodate above changes and avoid confusions