Index: chrome/browser/web_resource/resource_request_allowed_notifier.cc |
diff --git a/chrome/browser/web_resource/resource_request_allowed_notifier.cc b/chrome/browser/web_resource/resource_request_allowed_notifier.cc |
index 3650944119631f4ff52470192a41c16e3121ea8c..269c299cf04e9dfbca661748b5f793440bef74b8 100644 |
--- a/chrome/browser/web_resource/resource_request_allowed_notifier.cc |
+++ b/chrome/browser/web_resource/resource_request_allowed_notifier.cc |
@@ -45,8 +45,9 @@ bool ResourceRequestAllowedNotifier::ResourceRequestsAllowed() { |
// The observer requested permission. Return the current criteria state and |
// set a flag to remind this class to notify the observer once the criteria |
// is met. |
- observer_requested_permission_ = true; |
- return !waiting_for_user_to_accept_eula_ && !waiting_for_network_; |
+ observer_requested_permission_ = waiting_for_user_to_accept_eula_ || |
+ waiting_for_network_; |
+ return !observer_requested_permission_; |
} |
void ResourceRequestAllowedNotifier::SetWaitingForNetworkForTesting( |
@@ -59,6 +60,11 @@ void ResourceRequestAllowedNotifier::SetWaitingForEulaForTesting( |
waiting_for_user_to_accept_eula_ = waiting; |
} |
+void ResourceRequestAllowedNotifier::SetObserverRequestedForTesting( |
+ bool requested) { |
+ observer_requested_permission_ = requested; |
+} |
+ |
void ResourceRequestAllowedNotifier::MaybeNotifyObserver() { |
// Need to ensure that all criteria are met before notifying observers. |
if (observer_requested_permission_ && ResourceRequestsAllowed()) { |
@@ -96,5 +102,9 @@ void ResourceRequestAllowedNotifier::OnConnectionTypeChanged( |
waiting_for_network_ = false; |
DVLOG(1) << "Network came back online."; |
MaybeNotifyObserver(); |
+ } else if (!waiting_for_network_ && |
+ type == net::NetworkChangeNotifier::CONNECTION_NONE) { |
+ waiting_for_network_ = true; |
+ DVLOG(1) << "Network went offline."; |
} |
} |