| Index: components/safe_browsing/password_protection/password_protection_service.h
|
| diff --git a/components/safe_browsing/password_protection/password_protection_service.h b/components/safe_browsing/password_protection/password_protection_service.h
|
| index 77eb8b38bb090e85602d17fc0ae4283ff8569c5b..7060bb20c2f71ae93120f514335ffeb768fd89d8 100644
|
| --- a/components/safe_browsing/password_protection/password_protection_service.h
|
| +++ b/components/safe_browsing/password_protection/password_protection_service.h
|
| @@ -21,6 +21,10 @@
|
| #include "net/url_request/url_request_context_getter.h"
|
| #include "third_party/protobuf/src/google/protobuf/repeated_field.h"
|
|
|
| +namespace content {
|
| +class WebContents;
|
| +}
|
| +
|
| namespace history {
|
| class HistoryService;
|
| }
|
| @@ -61,6 +65,7 @@ class PasswordProtectionService : public history::HistoryServiceObserver {
|
| SERVICE_DESTROYED = 11,
|
| DISABLED_DUE_TO_FEATURE_DISABLED = 12,
|
| DISABLED_DUE_TO_USER_POPULATION = 13,
|
| + URL_NOT_VALID_FOR_REPUTATION_COMPUTING = 14,
|
| MAX_OUTCOME
|
| };
|
| PasswordProtectionService(
|
| @@ -94,26 +99,44 @@ class PasswordProtectionService : public history::HistoryServiceObserver {
|
| // Creates an instance of PasswordProtectionRequest and call Start() on that
|
| // instance. This function also insert this request object in |requests_| for
|
| // record keeping.
|
| - void StartRequest(const GURL& main_frame_url,
|
| + void StartRequest(content::WebContents* web_contents,
|
| + const GURL& main_frame_url,
|
| const GURL& password_form_action,
|
| const GURL& password_form_frame_url,
|
| const std::string& saved_domain,
|
| LoginReputationClientRequest::TriggerType type);
|
|
|
| virtual void MaybeStartPasswordFieldOnFocusRequest(
|
| + content::WebContents* web_contents,
|
| const GURL& main_frame_url,
|
| const GURL& password_form_action,
|
| const GURL& password_form_frame_url);
|
|
|
| virtual void MaybeStartProtectedPasswordEntryRequest(
|
| + content::WebContents* web_contents,
|
| const GURL& main_frame_url,
|
| const std::string& saved_domain);
|
|
|
| scoped_refptr<SafeBrowsingDatabaseManager> database_manager();
|
|
|
| + // Safe Browsing backend cannot get a reliable reputation of a URL if
|
| + // (1) URL is not valid
|
| + // (2) URL doesn't have http or https scheme
|
| + // (3) It maps to a local host.
|
| + // (4) Its hostname is an IP Address in an IANA-reserved range.
|
| + // (5) Its hostname is a not-yet-assigned by ICANN gTLD.
|
| + // (6) Its hostname is a dotless domain.
|
| + static bool CanGetReputationOfURL(const GURL& url);
|
| +
|
| protected:
|
| friend class PasswordProtectionRequest;
|
|
|
| + // Chrome can send password protection ping if it is allowed by Finch config
|
| + // and if Safe Browsing can compute reputation of |main_frame_url| (e.g.
|
| + // Safe Browsing is not able to compute reputation of a private IP or
|
| + // a local host.)
|
| + bool CanSendPing(const base::Feature& feature, const GURL& main_frame_url);
|
| +
|
| // Called by a PasswordProtectionRequest instance when it finishes to remove
|
| // itself from |requests_|.
|
| virtual void RequestFinished(
|
| @@ -211,8 +234,8 @@ class PasswordProtectionService : public history::HistoryServiceObserver {
|
| const LoginReputationClientResponse* verdict,
|
| const base::Time& receive_time);
|
|
|
| - static void RecordPingingDisabledReason(const base::Feature& feature,
|
| - RequestOutcome reason);
|
| + static void RecordNoPingingReason(const base::Feature& feature,
|
| + RequestOutcome reason);
|
| // Number of verdict stored for this profile.
|
| int stored_verdict_count_;
|
|
|
|
|