browsing_context.go RawHistoryFolder
1package dto
2
3// WindowDisposition describes how the browsing context should be presented
4// relative to the source frame. Values mirror Chromium/CEF/WebKit navigation
5// dispositions at a normalized product seam.
6type WindowDisposition string
7
8const (
9 // WindowDispositionCurrentTab replaces the current document in the same browsing context.
10 WindowDispositionCurrentTab WindowDisposition = "current-tab"
11 // WindowDispositionNewTab opens in a new tab-like context.
12 WindowDispositionNewTab WindowDisposition = "new-tab"
13 // WindowDispositionNewPopup opens in a popup-style context.
14 WindowDispositionNewPopup WindowDisposition = "new-popup"
15 // WindowDispositionNewWindow opens in a new top-level window.
16 WindowDispositionNewWindow WindowDisposition = "new-window"
17)
18
19// TriggerKind categorizes what triggered a browsing-context request.
20type TriggerKind string
21
22const (
23 TriggerUnknown TriggerKind = "unknown"
24 TriggerLinkNewPage TriggerKind = "link-new-page"
25 TriggerScriptWindowOpen TriggerKind = "script-window-open"
26 TriggerNamedTargetNavigation TriggerKind = "named-target-navigation"
27 TriggerAuthPopupRequest TriggerKind = "auth-popup-request"
28)
29
30// RequestContextDisposition makes request-context inheritance explicit at the
31// policy seam without leaking infrastructure request-context types upward.
32type RequestContextDisposition string
33
34const (
35 // RequestContextInheritParent preserves the parent request context/session.
36 RequestContextInheritParent RequestContextDisposition = "inherit-parent"
37 // RequestContextIsolate starts from a fresh unrelated request context.
38 RequestContextIsolate RequestContextDisposition = "isolate"
39)
40
41// NewBrowsingContextRequest is the normalized request captured from engine/UI
42// signals before policy decides how it should be hosted.
43type NewBrowsingContextRequest struct {
44 ParentWebViewID uint64
45
46 SourceBrowserID int32
47 SourceFrameID string
48 SourceFrameURL string
49
50 TargetURI string
51 TargetFrameName string
52 TargetDisposition WindowDisposition
53
54 IsUserGesture bool
55 NoJavaScriptAccess bool
56 WindowFeatures string
57
58 TriggerKind TriggerKind
59 AuthIntent bool
60 RequiresNativeOpener bool
61 RequestContextDisposition RequestContextDisposition
62}
63
64// HostDecisionKind categorizes the approved host choices for a new browsing context.
65type HostDecisionKind string
66
67const (
68 HostDecisionReuseNamedPane HostDecisionKind = "reuse-named-pane"
69 HostDecisionCreatePane HostDecisionKind = "create-pane"
70 HostDecisionCreateNativeWin HostDecisionKind = "create-native-window"
71 HostDecisionDeny HostDecisionKind = "deny"
72)
73
74// HostDecision represents the output of browsing-context policy.
75type HostDecision struct {
76 Kind HostDecisionKind
77
78 ReuseContextName string
79 BrowsingContextName string
80
81 RequestContextDisposition RequestContextDisposition
82 RequiresNativeOpener bool
83 Reason string
84}