@@ -20,17 +20,17 @@ internal class FrameManager
2020 private const string RefererHeaderName = "referer" ;
2121 private readonly AsyncDictionaryHelper < string , Frame > _asyncFrames ;
2222 private readonly List < string > _isolatedWorlds = new List < string > ( ) ;
23-
2423 private const string UtilityWorldName = "__puppeteer_utility_world__" ;
2524
26- private FrameManager ( CDPSession client , Page page , NetworkManager networkManager )
25+ private FrameManager ( CDPSession client , Page page , NetworkManager networkManager , TimeoutSettings timeoutSettings )
2726 {
2827 Client = client ;
2928 Page = page ;
3029 _frames = new ConcurrentDictionary < string , Frame > ( ) ;
3130 _contextIdToContext = new Dictionary < int , ExecutionContext > ( ) ;
3231 _logger = Client . Connection . LoggerFactory . CreateLogger < FrameManager > ( ) ;
3332 NetworkManager = networkManager ;
33+ TimeoutSettings = timeoutSettings ;
3434 _asyncFrames = new AsyncDictionaryHelper < string , Frame > ( _frames , "Frame {0} not found" ) ;
3535
3636 Client . MessageReceived += Client_MessageReceived ;
@@ -48,14 +48,18 @@ private FrameManager(CDPSession client, Page page, NetworkManager networkManager
4848 internal NetworkManager NetworkManager { get ; }
4949 internal Frame MainFrame { get ; set ; }
5050 internal Page Page { get ; }
51- internal int DefaultNavigationTimeout { get ; set ; } = 30000 ;
52-
51+ internal TimeoutSettings TimeoutSettings { get ; }
5352 #endregion
5453
5554 #region Public Methods
56- internal static async Task < FrameManager > CreateFrameManagerAsync ( CDPSession client , Page page , NetworkManager networkManager , FrameTree frameTree )
55+ internal static async Task < FrameManager > CreateFrameManagerAsync (
56+ CDPSession client ,
57+ Page page ,
58+ NetworkManager networkManager ,
59+ FrameTree frameTree ,
60+ TimeoutSettings timeoutSettings )
5761 {
58- var frameManager = new FrameManager ( client , page , networkManager ) ;
62+ var frameManager = new FrameManager ( client , page , networkManager , timeoutSettings ) ;
5963 await frameManager . HandleFrameTreeAsync ( frameTree ) . ConfigureAwait ( false ) ;
6064 return frameManager ;
6165 }
@@ -77,7 +81,7 @@ public async Task<Response> NavigateFrameAsync(Frame frame, string url, Navigati
7781 ? NetworkManager . ExtraHTTPHeaders ? . GetValueOrDefault ( RefererHeaderName )
7882 : options . Referer ;
7983 var requests = new Dictionary < string , Request > ( ) ;
80- var timeout = options ? . Timeout ?? DefaultNavigationTimeout ;
84+ var timeout = options ? . Timeout ?? TimeoutSettings . NavigationTimeout ;
8185
8286 using ( var watcher = new LifecycleWatcher ( this , frame , options ? . WaitUntil , timeout ) )
8387 {
@@ -125,7 +129,7 @@ private async Task NavigateAsync(CDPSession client, string url, string referrer,
125129
126130 public async Task < Response > WaitForFrameNavigationAsync ( Frame frame , NavigationOptions options = null )
127131 {
128- var timeout = options ? . Timeout ?? DefaultNavigationTimeout ;
132+ var timeout = options ? . Timeout ?? TimeoutSettings . NavigationTimeout ;
129133 using ( var watcher = new LifecycleWatcher ( this , frame , options ? . WaitUntil , timeout ) )
130134 {
131135 var raceTask = await Task . WhenAny (
0 commit comments