pub struct PriorityTree {
pub priorities: Vec<(u32, u32, u8, bool)>,
}Expand description
PRIORITY frame pattern for browser fingerprinting.
Different browsers send PRIORITY frames with different dependency trees. Format: (stream_id, depends_on_stream_id, weight, exclusive)
- exclusive: true means this stream replaces all dependencies of the parent
- weight: 1-256, higher means more bandwidth allocation
Fields§
§priorities: Vec<(u32, u32, u8, bool)>Priority frames to send: (stream_id, depends_on, weight, exclusive)
Implementations§
Source§impl PriorityTree
impl PriorityTree
Sourcepub fn chrome() -> Self
pub fn chrome() -> Self
Chrome PRIORITY frame pattern.
Chrome sends PRIORITY frames for streams 3,5,7,9,11:
- Stream 3: depends on 0 (root), weight 201
- Stream 5: depends on 0 (root), weight 101
- Stream 7: depends on 0 (root), weight 1
- Stream 9: depends on 7, weight 1
- Stream 11: depends on 3, weight 1
Akamai format: 3:0:0:201,5:0:0:101,7:0:0:1,9:0:7:1,11:0:3:1
Sourcepub fn firefox() -> Self
pub fn firefox() -> Self
Firefox PRIORITY frame pattern.
Firefox sends PRIORITY frames for streams that haven’t been opened yet, establishing a dependency tree for future streams. Firefox uses a different pattern than Chrome.
The exact Firefox HTTP/2 fingerprint pattern requires verification against real browser traffic captures. This is a placeholder based on Firefox’s known behavior of sending PRIORITY frames for unopened streams.
Trait Implementations§
Source§impl Clone for PriorityTree
impl Clone for PriorityTree
Source§fn clone(&self) -> PriorityTree
fn clone(&self) -> PriorityTree
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PriorityTree
impl RefUnwindSafe for PriorityTree
impl Send for PriorityTree
impl Sync for PriorityTree
impl Unpin for PriorityTree
impl UnsafeUnpin for PriorityTree
impl UnwindSafe for PriorityTree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more