Index: components/content_settings/core/browser/content_settings_usages_state.cc |
diff --git a/components/content_settings/core/browser/content_settings_usages_state.cc b/components/content_settings/core/browser/content_settings_usages_state.cc |
index 0619ff3ffc64cffb4c7ce7def7958b85cd9ccf56..b0486a90758c62f37b75c0ee617908c1df5152db 100644 |
--- a/components/content_settings/core/browser/content_settings_usages_state.cc |
+++ b/components/content_settings/core/browser/content_settings_usages_state.cc |
@@ -10,6 +10,12 @@ |
#include "components/content_settings/core/browser/host_content_settings_map.h" |
#include "components/url_formatter/url_formatter.h" |
+ContentSettingsUsagesState::CommittedDetails::CommittedDetails() |
+ : current_url_valid(false) { |
+} |
+ |
+ContentSettingsUsagesState::CommittedDetails::~CommittedDetails() {} |
+ |
ContentSettingsUsagesState::ContentSettingsUsagesState( |
HostContentSettingsMap* host_content_settings_map, |
ContentSettingsType type) |
@@ -27,10 +33,12 @@ void ContentSettingsUsagesState::OnPermissionSet( |
} |
void ContentSettingsUsagesState::DidNavigate(const CommittedDetails& details) { |
- embedder_url_ = details.current_url; |
+ if (details.current_url_valid) |
+ embedder_url_ = details.current_url; |
if (state_map_.empty()) |
return; |
- if (details.previous_url.GetOrigin() != details.current_url.GetOrigin()) { |
+ if (!details.current_url_valid || |
+ details.previous_url.GetOrigin() != details.current_url.GetOrigin()) { |
state_map_.clear(); |
return; |
} |