Prepare for iframe filtering in  supervised_user/*

This CL updates SupervisedUserNavigationObserver and
SupervisedUserInterstitial to be able to handle multiple interstitial
error pages inside a particular web contents. This is required because
we are enabling iframe filtering for SupervisedUserNavigationThrottle.

The CL also adds WebContents::ReloadFrame(RenderFrameHost* rfh,
bool bypass_cache) interface and implementation.

The CL also adds test in SupervisedUserNavigationThrottle for iframe
filters.

Bug: 850328
Change-Id: I6feea8f39a947011d91d1abfb27621a54281353c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1816580
Commit-Queue: Yilkal Abe <[email protected]>
Reviewed-by: Alex Moshchuk <[email protected]>
Reviewed-by: Michael Giuffrida <[email protected]>
Cr-Commit-Position: refs/heads/master@{#704413}
diff --git a/chrome/browser/supervised_user/supervised_user_service.h b/chrome/browser/supervised_user/supervised_user_service.h
index f4582648..b1c931f3 100644
--- a/chrome/browser/supervised_user/supervised_user_service.h
+++ b/chrome/browser/supervised_user/supervised_user_service.h
@@ -174,6 +174,9 @@
   }
 #endif  // !defined(OS_ANDROID)
 
+  void SetPrimaryPermissionCreatorForTest(
+      std::unique_ptr<PermissionRequestCreator> permission_creator);
+
  private:
   friend class SupervisedUserServiceExtensionTestBase;
   friend class SupervisedUserServiceFactory;