#include "components/error_page/content/browser/net_error_auto_reloader.h"
#include <memory>
#include <optional>
#include <utility>
#include "base/memory/raw_ptr.h"
#include "base/test/bind.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/common/content_features.h"
#include "content/public/test/browser_test.h"
#include "content/public/test/browser_test_utils.h"
#include "content/public/test/content_browser_test.h"
#include "content/public/test/content_browser_test_utils.h"
#include "content/public/test/fenced_frame_test_util.h"
#include "content/public/test/navigation_handle_observer.h"
#include "content/public/test/test_navigation_throttle.h"
#include "content/public/test/test_navigation_throttle_inserter.h"
#include "content/public/test/url_loader_interceptor.h"
#include "content/shell/browser/shell.h"
#include "content/shell/browser/shell_content_browser_client.h"
#include "net/base/net_errors.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace error_page {
namespace {
class NetErrorUrlInterceptor { … };
class CustomErrorPageThrottleInserter { … };
class DeferNextNavigationThrottleInserter
: public content::WebContentsObserver { … };
base::TimeDelta GetDelayForReloadCount(size_t count) { … }
class NetErrorAutoReloaderBrowserTest : public content::ContentBrowserTest { … };
content::RenderFrameHost* GetChild(content::RenderFrameHost& parent) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest, NoError) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest, ErrorSchedulesReload) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest, ErrorRecovery) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest, ReloadDelayBackoff) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
ResetOnAutoReloadWithNewError) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest, StopCancelsAutoReload) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NoAutoReloadOnUnsupportedNetworkErrors) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NoAutoReloadWithoutHttpOrHttps) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NavigationCancelsAutoReload) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NoAutoReloadWhileOffline) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
AutoReloadWhenBrowserComesOnline) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NoAutoReloadOnNonErrorPageWhenBrowserComesOnline) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NoAutoReloadWhenContentsHidden) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
AutoReloadWhenContentsBecomeVisible) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
NoAutoReloadOnNonErrorPageWhenContentsBecomeVisible) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
AutoReloadPreserveSandbox) { … }
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderBrowserTest,
AutoReloadPreservePreserveDownloadBehavior) { … }
class NetErrorAutoReloaderFencedFrameBrowserTest
: public NetErrorAutoReloaderBrowserTest { … };
IN_PROC_BROWSER_TEST_F(NetErrorAutoReloaderFencedFrameBrowserTest,
NoAutoReloadOnFencedFrames) { … }
}
}