fix(browser): navigation chain limit adjustable and correctly named
The loop in navigate_with_wait_post_inner limits how many documents a navigation chain may load. It counts navigations the page itself triggers after each load: assignments to location and form submissions, which CDP's Page.ClientNavigationReason calls scriptInitiated and formSubmission*. HTTP 3xx redirects never reach this loop. They are followed one layer down, in obscura-net, with their own limit and their own error. The message still read "Too many redirects (limit 10)", so a chain of client-initiated navigations looked like a redirect storm. This name sends an investigation to the wrong layer. It points at the redirect chain while the cause is a JavaScript loop. The limit was also a function-local constant with no way to raise it. The low default is right and stays 10, but an endpoint that chains longer than nine navigations for good reasons was simply unreachable. It is now a per-page value with a fallback to the environment, in the same form navigation_timeout already has: page.set_navigation_chain_limit(20) programmatic, takes precedence OBSCURA_NAV_CHAIN_LIMIT=20 in operation neither set unchanged default 10 The number counts documents, the first navigation included. So 10 allows the requested document and nine client-initiated navigations on top. The error message names this unit. The number is now something an operator acts on, and "limit 10" next to the word "navigations" would read as ten navigations and send them exactly one too low. Values below 1 are raised to 1 on both paths. A zero would let the loop run without a single iteration, the page would report success and have loaded nothing. Only an unreadable value from the environment falls back to the default. A 0 therefore means the same on both paths: load the first document and do not chain further.
A
aech committed
7aec2e8d66d577389c26870907de828b496fa71c
Parent: e391f66