blob: db4cdbf7d8b460bf3a68f751a2e4b7fbf5d589e1 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_SECURITY_INTERSTITIALS_CORE_SAFE_BROWSING_LOUD_ERROR_UI_H_
#define COMPONENTS_SECURITY_INTERSTITIALS_CORE_SAFE_BROWSING_LOUD_ERROR_UI_H_
#include "base/macros.h"
#include "base/time/time.h"
#include "base/values.h"
#include "components/security_interstitials/core/base_safe_browsing_error_ui.h"
#include "components/security_interstitials/core/controller_client.h"
#include "url/gurl.h"
namespace security_interstitials {
// Loud version of the safe browsing interstitial. This is the full screen
// version of the interstitial used on Desktop, Android and iOS. It is
// selectively used in parts of WebView.
// This class displays UI for Safe Browsing errors that block page loads. This
// class is purely about visual display; it does not do any error-handling logic
// to determine what type of error should be displayed when.
class SafeBrowsingLoudErrorUI
: public security_interstitials::BaseSafeBrowsingErrorUI {
public:
SafeBrowsingLoudErrorUI(
const GURL& request_url,
const GURL& main_frame_url,
BaseSafeBrowsingErrorUI::SBInterstitialReason reason,
const BaseSafeBrowsingErrorUI::SBErrorDisplayOptions& display_options,
const std::string& app_locale,
const base::Time& time_triggered,
ControllerClient* controller);
~SafeBrowsingLoudErrorUI() override;
// Implement BaseSafeBrowsingErrorUI.
void PopulateStringsForHtml(base::DictionaryValue* load_time_data) override;
void HandleCommand(SecurityInterstitialCommand command) override;
int GetHTMLTemplateId() const override;
private:
// Fills the passed dictionary with the values to be passed to the template
// when creating the HTML.
void PopulateExtendedReportingOption(base::DictionaryValue* load_time_data);
void PopulateMalwareLoadTimeData(base::DictionaryValue* load_time_data);
void PopulateHarmfulLoadTimeData(base::DictionaryValue* load_time_data);
void PopulatePhishingLoadTimeData(base::DictionaryValue* load_time_data);
DISALLOW_COPY_AND_ASSIGN(SafeBrowsingLoudErrorUI);
};
} // security_interstitials
#endif // COMPONENTS_SECURITY_INTERSTITIALS_CORE_SAFE_BROWSING_LOUD_ERROR_UI_H_