Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/ui/website_settings/permission_bubble_manager.h" | |
| 6 | |
| 7 #include "chrome/browser/ui/website_settings/permission_bubble_delegate.h" | |
| 8 | |
| 9 void PermissionBubbleManager::AddPermissionBubbleDelegate( | |
| 10 PermissionBubbleDelegate* delegate) { | |
| 11 RemovePermissionBubbleDelegate(delegate); | |
| 12 delegates_.push_back(delegate); | |
| 13 } | |
| 14 | |
| 15 void PermissionBubbleManager::RemovePermissionBubbleDelegate( | |
| 16 PermissionBubbleDelegate* delegate) { | |
| 17 for (std::vector<PermissionBubbleDelegate*>::const_iterator i = | |
| 18 delegates_.begin(); | |
| 19 i != delegates_.end(); i++) { | |
| 20 if (*i == delegate) { | |
| 21 delegates_.erase(i); | |
| 22 return; | |
| 23 } | |
|
groby-ooo-7-16
2014/01/07 00:31:17
Let's do this with STL -
delegates_.erase(std::re
| |
| 24 } | |
| 25 } | |
| 26 | |
| 27 PermissionBubbleManager::PermissionBubbleManager( | |
| 28 content::WebContents* web_contents) | |
| 29 : content::WebContentsObserver(web_contents) { | |
| 30 } | |
| 31 | |
| 32 void PermissionBubbleManager::WebContentsDestroyed( | |
| 33 content::WebContents* web_contents) { | |
|
groby-ooo-7-16
2014/01/07 00:31:17
I'm aware InfoBarService does this, but I don't th
| |
| 34 // The WebContents is going away; be aggressively paranoid and delete | |
| 35 // ourselves lest other parts of the system attempt to add permission bubbles | |
| 36 // or use us otherwise during the destruction. | |
| 37 web_contents->RemoveUserData(UserDataKey()); | |
| 38 // That was the equivalent of "delete this". This object is now destroyed; | |
| 39 // returning from this function is the only safe thing to do. | |
| 40 } | |
| OLD | NEW |