Index: ios/chrome/browser/web/network_activity_indicator_tab_helper.mm |
diff --git a/ios/chrome/browser/web/network_activity_indicator_tab_helper.mm b/ios/chrome/browser/web/network_activity_indicator_tab_helper.mm |
index 105ac327d258333b6bfed3044ea8d231dad45b9d..7734e77e7d2f7f1e36b03fa1c8d0e0b0869eb359 100644 |
--- a/ios/chrome/browser/web/network_activity_indicator_tab_helper.mm |
+++ b/ios/chrome/browser/web/network_activity_indicator_tab_helper.mm |
@@ -25,7 +25,14 @@ NetworkActivityIndicatorTabHelper::NetworkActivityIndicatorTabHelper( |
NSString* tab_id) |
: web::WebStateObserver(web_state), network_activity_key_([tab_id copy]) {} |
-NetworkActivityIndicatorTabHelper::~NetworkActivityIndicatorTabHelper() {} |
+NetworkActivityIndicatorTabHelper::~NetworkActivityIndicatorTabHelper() { |
+ NetworkActivityIndicatorManager* shared_manager = |
+ [NetworkActivityIndicatorManager sharedInstance]; |
+ // Verifies that there is a network task associated with this instance |
+ // before stopping a task, so that this method is idempotent. |
+ if ([shared_manager numNetworkTasksForGroup:network_activity_key_]) |
+ [shared_manager stopNetworkTaskForGroup:network_activity_key_]; |
+} |
void NetworkActivityIndicatorTabHelper::DidStartLoading() { |
NetworkActivityIndicatorManager* shared_manager = |