blob: 51861a214093312500c69a7470e5f94d0138e41e [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_QUIET_ERROR_UI_H_
#define COMPONENTS_SECURITY_INTERSTITIALS_CORE_SAFE_BROWSING_QUIET_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 {
// Quiet version of the safe browsing interstitial. This is the small screen
// version of the interstitial selectively used in parts of WebView.
// This class displays a quiet UI for Safe Browsing errors that block page loads
// specifically for WebView. 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 SafeBrowsingQuietErrorUI
: public security_interstitials::BaseSafeBrowsingErrorUI {
public:
SafeBrowsingQuietErrorUI(
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,
const bool is_giant_webview);
~SafeBrowsingQuietErrorUI() override;
// Fills the passed dictionary with the values to be passed to the template
// when creating the HTML.
void PopulateStringsForHtml(base::DictionaryValue* load_time_data) override;
void HandleCommand(SecurityInterstitialCommand command) override;
// Manually set whether displaying in a giant WebView. Specifially used in
// tests.
void SetGiantWebViewForTesting(bool is_giant_webview);
int GetHTMLTemplateId() const override;
private:
void PopulateMalwareLoadTimeData(base::DictionaryValue* load_time_data);
void PopulateHarmfulLoadTimeData(base::DictionaryValue* load_time_data);
void PopulatePhishingLoadTimeData(base::DictionaryValue* load_time_data);
void PopulateBillingLoadTimeData(base::DictionaryValue* load_time_data);
bool is_giant_webview_;
DISALLOW_COPY_AND_ASSIGN(SafeBrowsingQuietErrorUI);
};
} // security_interstitials
#endif // COMPONENTS_SECURITY_INTERSTITIALS_CORE_SAFE_BROWSING_QUIET_ERROR_UI_H_