mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Auto merge of #18854 - servo:servo-unstable-feature, r=nox
Make optional the usage of some unstable features With `--no-default-features --features default-except-unstable`, more crates can now be compiled on stable Rust. This will help integrate them in rustc’s regression testing and compiler performance benchmarking. <!-- 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/18854) <!-- Reviewable:end -->
This commit is contained in:
commit
78aaa85aec
40 changed files with 549 additions and 236 deletions
|
@ -772,6 +772,7 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
|||
self.all_descendant_browsing_contexts_iter(BrowsingContextId::from(top_level_browsing_context_id))
|
||||
}
|
||||
|
||||
#[cfg(feature = "unstable")]
|
||||
/// The joint session future is the merge of the session future of every
|
||||
/// browsing_context, sorted chronologically.
|
||||
fn joint_session_future<'a>(&'a self, top_level_browsing_context_id: TopLevelBrowsingContextId)
|
||||
|
@ -782,12 +783,26 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
|||
.kmerge_by(|a, b| a.instant.cmp(&b.instant) == Ordering::Less)
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "unstable"))]
|
||||
/// The joint session future is the merge of the session future of every
|
||||
/// browsing_context, sorted chronologically.
|
||||
fn joint_session_future<'a>(&'a self, top_level_browsing_context_id: TopLevelBrowsingContextId)
|
||||
-> Box<Iterator<Item = &'a SessionHistoryEntry> + 'a>
|
||||
{
|
||||
Box::new(
|
||||
self.all_browsing_contexts_iter(top_level_browsing_context_id)
|
||||
.map(|browsing_context| browsing_context.next.iter().rev())
|
||||
.kmerge_by(|a, b| a.instant.cmp(&b.instant) == Ordering::Less)
|
||||
)
|
||||
}
|
||||
|
||||
/// Is the joint session future empty?
|
||||
fn joint_session_future_is_empty(&self, top_level_browsing_context_id: TopLevelBrowsingContextId) -> bool {
|
||||
self.all_browsing_contexts_iter(top_level_browsing_context_id)
|
||||
.all(|browsing_context| browsing_context.next.is_empty())
|
||||
}
|
||||
|
||||
#[cfg(feature = "unstable")]
|
||||
/// The joint session past is the merge of the session past of every
|
||||
/// browsing_context, sorted reverse chronologically.
|
||||
fn joint_session_past<'a>(&'a self, top_level_browsing_context_id: TopLevelBrowsingContextId)
|
||||
|
@ -804,6 +819,25 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>
|
|||
.map(|(_, entry)| entry)
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "unstable"))]
|
||||
/// The joint session past is the merge of the session past of every
|
||||
/// browsing_context, sorted reverse chronologically.
|
||||
fn joint_session_past<'a>(&'a self, top_level_browsing_context_id: TopLevelBrowsingContextId)
|
||||
-> Box<Iterator<Item = &'a SessionHistoryEntry> + 'a>
|
||||
{
|
||||
Box::new(
|
||||
self.all_browsing_contexts_iter(top_level_browsing_context_id)
|
||||
.map(|browsing_context| browsing_context.prev.iter().rev()
|
||||
.scan(browsing_context.instant, |prev_instant, entry| {
|
||||
let instant = *prev_instant;
|
||||
*prev_instant = entry.instant;
|
||||
Some((instant, entry))
|
||||
}))
|
||||
.kmerge_by(|a, b| a.0.cmp(&b.0) == Ordering::Greater)
|
||||
.map(|(_, entry)| entry)
|
||||
)
|
||||
}
|
||||
|
||||
/// Is the joint session past empty?
|
||||
fn joint_session_past_is_empty(&self, top_level_browsing_context_id: TopLevelBrowsingContextId) -> bool {
|
||||
self.all_browsing_contexts_iter(top_level_browsing_context_id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue