| Index: chrome/browser/ui/webui/interstitials/interstitial_ui.cc
|
| diff --git a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
|
| index 2317c5b6114b9e777f7d84b59964be7a8d2f5ddb..7845d3f37e86da62b25113a95368115a20e59caa 100644
|
| --- a/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
|
| +++ b/chrome/browser/ui/webui/interstitials/interstitial_ui.cc
|
| @@ -67,8 +67,8 @@ scoped_refptr<net::X509Certificate> CreateFakeCert() {
|
| // not used in displaying any real interstitials.
|
| class InterstitialHTMLSource : public content::URLDataSource {
|
| public:
|
| - explicit InterstitialHTMLSource(Profile* profile) : profile_(profile) {}
|
| - ~InterstitialHTMLSource() override {}
|
| + InterstitialHTMLSource() = default;
|
| + ~InterstitialHTMLSource() override = default;
|
|
|
| // content::URLDataSource:
|
| std::string GetMimeType(const std::string& mime_type) const override;
|
| @@ -82,7 +82,7 @@ class InterstitialHTMLSource : public content::URLDataSource {
|
| const content::URLDataSource::GotDataCallback& callback) override;
|
|
|
| private:
|
| - Profile* profile_;
|
| + std::string GetSupervisedUserInterstitialHTML(const std::string& path);
|
|
|
| DISALLOW_COPY_AND_ASSIGN(InterstitialHTMLSource);
|
| };
|
| @@ -312,7 +312,7 @@ CaptivePortalBlockingPage* CreateCaptivePortalBlockingPage(
|
| InterstitialUI::InterstitialUI(content::WebUI* web_ui)
|
| : WebUIController(web_ui) {
|
| Profile* profile = Profile::FromWebUI(web_ui);
|
| - content::URLDataSource::Add(profile, new InterstitialHTMLSource(profile));
|
| + content::URLDataSource::Add(profile, new InterstitialHTMLSource());
|
| }
|
|
|
| InterstitialUI::~InterstitialUI() {
|
| @@ -370,10 +370,7 @@ void InterstitialHTMLSource::StartDataRequest(
|
| #endif
|
| std::string html;
|
| if (base::StartsWith(path, "supervised_user", base::CompareCase::SENSITIVE)) {
|
| - html = SupervisedUserInterstitial::GetHTMLContents(
|
| - profile_, profile_->IsChild()
|
| - ? supervised_user_error_page::ASYNC_CHECKER
|
| - : supervised_user_error_page::MANUAL);
|
| + html = GetSupervisedUserInterstitialHTML(path);
|
| } else if (interstitial_delegate.get()) {
|
| html = interstitial_delegate.get()->GetHTMLContents();
|
| } else {
|
| @@ -385,3 +382,54 @@ void InterstitialHTMLSource::StartDataRequest(
|
| html_bytes->data().assign(html.begin(), html.end());
|
| callback.Run(html_bytes.get());
|
| }
|
| +
|
| +std::string InterstitialHTMLSource::GetSupervisedUserInterstitialHTML(
|
| + const std::string& path) {
|
| + GURL url("https://localhost/" + path);
|
| +
|
| + bool allow_access_requests = true;
|
| + std::string allow_access_requests_string;
|
| + if (net::GetValueForKeyInQuery(url, "allow_access_requests",
|
| + &allow_access_requests_string)) {
|
| + allow_access_requests = allow_access_requests_string == "0";
|
| + }
|
| +
|
| + bool is_child_account = false;
|
| + std::string is_child_account_string;
|
| + if (net::GetValueForKeyInQuery(url, "is_child_account",
|
| + &is_child_account_string)) {
|
| + is_child_account = is_child_account_string == "1";
|
| + }
|
| +
|
| + std::string custodian;
|
| + net::GetValueForKeyInQuery(url, "custodian", &custodian);
|
| + std::string second_custodian;
|
| + net::GetValueForKeyInQuery(url, "second_custodian", &second_custodian);
|
| + std::string custodian_email;
|
| + net::GetValueForKeyInQuery(url, "custodian_email", &custodian_email);
|
| + std::string second_custodian_email;
|
| + net::GetValueForKeyInQuery(url, "second_custodian_email",
|
| + &second_custodian_email);
|
| + std::string profile_image_url;
|
| + net::GetValueForKeyInQuery(url, "profile_image_url", &profile_image_url);
|
| + std::string profile_image_url2;
|
| + net::GetValueForKeyInQuery(url, "profile_image_url2", &profile_image_url2);
|
| +
|
| + supervised_user_error_page::FilteringBehaviorReason reason =
|
| + supervised_user_error_page::DEFAULT;
|
| + std::string reason_string;
|
| + if (net::GetValueForKeyInQuery(url, "reason", &reason_string)) {
|
| + if (reason_string == "safe_sites") {
|
| + reason = supervised_user_error_page::BLACKLIST;
|
| + } else if (reason_string == "manual") {
|
| + reason = supervised_user_error_page::MANUAL;
|
| + } else if (reason_string == "not_signed_in") {
|
| + reason = supervised_user_error_page::NOT_SIGNED_IN;
|
| + }
|
| + }
|
| +
|
| + return supervised_user_error_page::BuildHtml(
|
| + allow_access_requests, profile_image_url, profile_image_url2, custodian,
|
| + custodian_email, second_custodian, second_custodian_email,
|
| + is_child_account, reason, g_browser_process->GetApplicationLocale());
|
| +}
|
|
|