Chromium Code Reviews| Index: chrome/browser/task_management/providers/web_contents/web_contents_tags_manager.cc |
| diff --git a/chrome/browser/task_management/providers/web_contents/web_contents_tags_manager.cc b/chrome/browser/task_management/providers/web_contents/web_contents_tags_manager.cc |
| index b61ef1e062710103e53ef6a90147a3b1f2be47c9..d89cb1d2ef8fe894e8f712ca7f27e0cced556092 100644 |
| --- a/chrome/browser/task_management/providers/web_contents/web_contents_tags_manager.cc |
| +++ b/chrome/browser/task_management/providers/web_contents/web_contents_tags_manager.cc |
| @@ -32,6 +32,8 @@ void WebContentsTagsManager::RemoveTag(WebContentsTag* tag) { |
| // We must however make sure that the provider has already forgotten about the |
| // tag and its associated web_contents. |
| + // If this check fails, then it's an indication that the |tag|'s destructor |
|
ncarter (slow)
2015/06/19 19:50:51
If you move the call out of the dtor (as suggested
afakhry
2015/06/19 21:49:22
Done.
|
| + // should have called |WebContentsTagsManager::ClearFromProvider()|. |
| if (provider_) |
| CHECK(!provider_->HasWebContents(tag->web_contents())); |
| } |
| @@ -47,6 +49,11 @@ void WebContentsTagsManager::ClearProvider() { |
| provider_ = nullptr; |
| } |
| +void WebContentsTagsManager::ClearFromProvider(WebContentsTag* tag) { |
| + if (provider_) |
| + provider_->OnWebContentsTagRemoved(tag); |
| +} |
| + |
| WebContentsTagsManager::WebContentsTagsManager() |
| : provider_(nullptr) { |
| } |