aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_task.rs
Commit message (Collapse)AuthorAgeFilesLines
...
* | Auto merge of #6841 - pcwalton:squash-animation-ticks, r=metajackbors-servo2015-07-301-1/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | script: Squash duplicate animation tick events in the queue. This prevents them from piling up endlessly if the JS `requestAnimationFrame()` callback takes a long time to complete. r? @jdm <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6841) <!-- Reviewable:end -->
| * | script: Squash duplicate animation tick events in the queue.Patrick Walton2015-07-291-1/+9
| | | | | | | | | | | | | | | This prevents them from piling up endlessly if the JS `requestAnimationFrame()` callback takes a long time to complete.
* | | Add a `kind` field to memory reports.Nicholas Nethercote2015-07-291-10/+36
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used for two memory reporting improvements. - It's used to distinguish "explicit" memory reports from others. This mirrors the same categorization that is used in Firefox, and gives a single tree that's the best place to look. It replaces the "pages" tree which was always intended to be a temporary stand-in for "explicit". - It's used to computed "heap-unclassified" values for both the jemalloc and system heaps, both of which are placed into the "explicit" tree. Example output: ``` | 114.99 MiB -- explicit | 52.34 MiB -- jemalloc-heap-unclassified | 46.14 MiB -- system-heap-unclassified | 14.95 MiB -- url(file:///home/njn/moz/servo2/../servo-static-suite/wikipe dia/Guardians%20of%20the%20Galaxy%20(film)%20-%20Wikipedia,%20the%20free%20encyc lopedia.html) | 7.32 MiB -- js | 3.07 MiB -- malloc-heap | 3.00 MiB -- gc-heap | 2.49 MiB -- used | 0.34 MiB -- decommitted | 0.09 MiB -- unused | 0.09 MiB -- admin | 1.25 MiB -- non-heap | 1.36 MiB -- layout-worker-3-local-context | 1.34 MiB -- layout-worker-0-local-context | 1.24 MiB -- layout-worker-1-local-context | 1.24 MiB -- layout-worker-4-local-context | 1.16 MiB -- layout-worker-2-local-context | 0.89 MiB -- layout-worker-5-local-context | 0.38 MiB -- layout-task | 0.31 MiB -- display-list | 0.07 MiB -- local-context | 1.56 MiB -- compositor-task | 0.78 MiB -- surface-map | 0.78 MiB -- layer-tree ``` The heap-unclassified values dominate the "explicit" tree because reporter coverage is still quite poor.
* | devtools: Convert the developer tools to run over IPC.Patrick Walton2015-07-271-16/+21
| |
* | script: Make the `ImageCacheTask` use IPC.Patrick Walton2015-07-261-5/+9
| | | | | | | | | | This necessitated getting rid of the boxed trait object that was being be passed between the script task and the image cache task.
* | profile: Make the time and memory profilers run over IPC.Patrick Walton2015-07-241-14/+12
|/ | | | | Uses the `Router` abstraction inside `ipc-channel` to avoid spawning new threads.
* Auto merge of #6682 - boghison:scripttask, r=jdmbors-servo2015-07-221-17/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | Fix a few issues - Use SmallVec<[T; N]> - Make find_iframe a free function - Make ProgressEvent use enums for bubbles and cancelable - Change README, as `rust-snapshot-hash` is just a text file <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6682) <!-- Reviewable:end -->
| * Fix #6676Bogdan Cuza2015-07-221-17/+7
| |
* | Make struct part of unrooted_must_root handle type parametersManish Goregaokar2015-07-221-0/+2
|/
* Rename browser_context identifiers to browsing_context.Ms2ger2015-07-201-1/+1
|
* Ensure we get the post-redirect urlJames Graham2015-07-191-0/+2
|
* Wire up the JS engine's memory reporting.Nicholas Nethercote2015-07-151-5/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SpiderMonkey provides an extremely fine-grained breakdown of memory usage, but for Servo we aggregate the measurements into a small number of coarse buckets, which seems appropriate for the current level of detail provided by Servo's memory profiler. Sample output: ``` | 10.99 MiB -- pages | 7.75 MiB -- url(http://html5demos.com/worker) | 4.63 MiB -- js | 2.00 MiB -- gc-heap | 0.94 MiB -- decommitted | 0.92 MiB -- used | 0.09 MiB -- unused | 0.05 MiB -- admin | 1.44 MiB -- malloc-heap | 1.19 MiB -- non-heap | [...] | 3.24 MiB -- url(http://html5demos.com/js/worker-cruncher.js) | 3.24 MiB -- js | 1.17 MiB -- malloc-heap | 1.06 MiB -- non-heap | 1.00 MiB -- gc-heap | 0.69 MiB -- used | 0.19 MiB -- decommitted | 0.09 MiB -- unused | 0.03 MiB -- admin ``` Most of the changes are plumbing to get the script and worker tasks communicating with the memory profiler task.
* script: Split `Pipeline::create` into chrome process and contentPatrick Walton2015-07-141-6/+32
| | | | | | | | | | | | process parts. This will make it easier to adapt to IPC. The trickiest part here was to make script tasks spawn new layout tasks directly instead of having the pipeline do it for them. The latter approach will not work in multiprocess mode, because layout and script must run in the same address space and the pipeline cannot inject tasks into another process.
* compositing: Move messages that go over the `ScriptListener` to go overPatrick Walton2015-07-141-19/+19
| | | | | | | | | an IPC channel instead. Because this used a boxed trait object to invoke messages across a process boundary, and boxed trait objects are not supported across IPC, we spawn a helper thread inside the compositor to perform the marshaling for us.
* Remove url field from PageWill Huxtable2015-07-111-1/+1
|
* Refactor #[jstraceable] to #[derive(JSTraceable)]David Winslow2015-07-011-3/+3
| | | | fixes #6524
* Fix some warnings caused by the SM upgradeMichael Wu2015-06-191-1/+1
|
* Upgrade to SM 39Michael Wu2015-06-191-102/+101
|
* Use euclid from crates.ioecoal952015-06-191-2/+2
|
* rust-geom API changesCorey Farwell2015-06-131-1/+1
| | | | https://github.com/servo/rust-geom/pull/81
* Add support for switching frames with the webdriver API.James Graham2015-06-011-1/+3
| | | | This moves webdriver_traits into msg to avoid a circular dependency.
* Change not(ndebug) to debug_assertionsMatt Brubeck2015-06-011-1/+1
| | | | The name of this directive changed in rust-lang/rust#22980.
* add navigation state data to LoadComplete messages, finish cef load state cbsMike Blumenkrantz2015-05-271-1/+1
|
* script: Reflow 200 milliseconds after the `<body>` is parsed, like GeckoPatrick Walton2015-05-261-1/+1
| | | | does.
* Auto merge of #6168 - tamird:get-cached-messages, r=jdmbors-servo2015-05-261-0/+2
|\ | | | | | | | | | | | | | | Rebase of #4175, closes #4175. r? @jdm <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6168) <!-- Reviewable:end -->
| * Implemented `GetCachedMessages`Tamir Duberstein2015-05-261-0/+2
| |
* | Auto merge of #6140 - nox:cleanup-rootedvec, r=Manishearthbors-servo2015-05-261-3/+5
|\ \ | |/ |/| | | | | | | <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6140) <!-- Reviewable:end -->
| * Optimise use of RootedVec in ScriptTask::handle_event()Anthony Ramine2015-05-261-3/+5
| |
* | Reduce max line length from 150 to 120 charactersCorey Farwell2015-05-241-2/+7
| | | | | | | | Part of https://github.com/servo/servo/issues/6041
* | Auto merge of #5727 - jdm:parserinterrupt2, r=mbrubeckbors-servo2015-05-211-40/+56
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | ...r parsing. Hook up document loading to async networking events. Relies on https://github.com/servo/html5ever/pull/107, so we'll likely need to backport it rather than wait for the next rustc upgrade. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5727) <!-- Reviewable:end -->
| * | Make external script sources load asynchronously, yet still block further ↵Josh Matthews2015-05-201-40/+56
| | | | | | | | | | | | parsing. Hook up document loading to async networking events.
* | | net: Don't load the placeholder image for background images, only forPatrick Walton2015-05-201-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | image fragments. This also changes the way the placeholder is handled in the image cache task to decode it up front instead of each time an image fails to load, both because it was more convenient to implement that way and because it saves CPU cycles to do so. This matches the behavior of Gecko and WebKit. It improves the look of our cached copy of Wikipedia.
* | Add closed pipelines record as a debugging aidGlenn Watson2015-05-201-9/+24
| |
* | Handle case where a page fetch completes after pipeline exits.Glenn Watson2015-05-201-4/+7
| |
* | Address review commentsGlenn Watson2015-05-201-2/+1
| |
* | Fix several hangs / panics during pipeline cleanup of in progress loads.Glenn Watson2015-05-191-5/+24
|/ | | | This fixes a hang found while testing the jQuery test suite.
* Add basic support for executeAsyncScript.James Graham2015-05-141-2/+4
| | | | | | This relies on a global webdriverCallback function, which is visible to content. Obviously that's not a long term solution for a number of reasons, but it allows us to experiment for now
* Make WebDriver Get() command wait on pages loading before returning.James Graham2015-05-141-3/+3
| | | | | This makes using WebDriver significantly less racy. Also refactors the message structure a little
* Various fixes for cleaning up iframes, compositor layers, pipelines and threads.Glenn Watson2015-05-141-1/+12
| | | | This allows most of the jquery test suite to run without exhausting thread resources.
* Fixes a number of race conditions and reliability issues with reftests and ↵Glenn Watson2015-05-141-13/+39
| | | | | | | | | | | | compositor. The basic idea is it's safe to output an image for reftest by testing: - That the compositor doesn't have any animations active. - That the compositor is not waiting on any outstanding paint messages to arrive. - That the script tasks are "idle" and therefore won't cause reflow. - This currently means page loaded, onload fired, reftest-wait not active, first reflow triggered. - It could easily be expanded to handle pending timers etc. - That the "epoch" that the layout tasks have last laid out after script went idle, is reflected by the compositor in all visible layers for that pipeline.
* Auto merge of #5804 - jdm:docloader, r=Ms2gerbors-servo2015-05-111-14/+45
|\ | | | | | | | | | | | | | | | | | | This implements a simple load-tracking system and tracks stylesheet loads as an example of how it fits together. This is a simplified and rebased version of #3714; I do not believe that the main thrust of hsivonen's comments (related to tracking navigation in browsing contexts) affect this part of the work. r? @Ms2ger <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5804) <!-- Reviewable:end -->
| * Delay stylesheet load in test to increase confidence.Josh Matthews2015-05-111-1/+1
| |
| * Make link elements fire a load event.Josh Matthews2015-05-111-2/+4
| |
| * Make stylesheets block page load.Josh Matthews2015-05-111-1/+9
| |
| * Implement a DocumentLoader type that tracks pending loads and notifies the ↵Josh Matthews2015-05-111-14/+35
| | | | | | | | script task when the queue is empty. Dispatch the document load event based on the DocumentLoader's notification.
* | Add support for getActiveElement webdriver commandJames Graham2015-05-111-0/+2
| |
* | Auto merge of #5969 - jgraham:webdriver_select_css, r=jdmbors-servo2015-05-111-0/+8
|\ \ | | | | | | | | | | | | | | | | | | | | | Also adds example support for getting the name and text properties of the elements. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/5969) <!-- Reviewable:end -->
| * | Add WebDriver support for getting elements by selector.James Graham2015-05-081-0/+8
| | | | | | | | | | | | Also adds example support for getting the name and text properties of the elements.
* | | Remove reference counting from the Runtime implementation.Ms2ger2015-05-101-2/+2
| | |
* | | Use Runtime in Window.Ms2ger2015-05-101-3/+3
| | |