Commit 8e91b74b authored by gbillock@chromium.org's avatar gbillock@chromium.org

[WebsiteSettings] Fix bug in permission bubble manager to alter showing state...

[WebsiteSettings] Fix bug in permission bubble manager to alter showing state when bubble is closed.

This bug meant that subsequent calls to AddRequest wouldn't show the bubble, since the manager still believed it was being shown.

R=leng@chromium.org

Review URL: https://codereview.chromium.org/162423002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251397 0039d316-1c4b-4281-b951-d872f2087c98
parent 9d4dc4ba
...@@ -162,17 +162,15 @@ void PermissionBubbleManager::Closing() { ...@@ -162,17 +162,15 @@ void PermissionBubbleManager::Closing() {
void PermissionBubbleManager::ShowBubble() { void PermissionBubbleManager::ShowBubble() {
if (view_ && !bubble_showing_ && requests_.size()) { if (view_ && !bubble_showing_ && requests_.size()) {
view_->SetDelegate(this);
view_->Show(requests_, accept_states_, customization_mode_); view_->Show(requests_, accept_states_, customization_mode_);
bubble_showing_ = true; bubble_showing_ = true;
} }
} }
void PermissionBubbleManager::FinalizeBubble() { void PermissionBubbleManager::FinalizeBubble() {
if (view_) { if (view_)
view_->SetDelegate(NULL);
view_->Hide(); view_->Hide();
} bubble_showing_ = false;
std::vector<PermissionBubbleRequest*>::iterator requests_iter; std::vector<PermissionBubbleRequest*>::iterator requests_iter;
for (requests_iter = requests_.begin(); for (requests_iter = requests_.begin();
...@@ -182,7 +180,6 @@ void PermissionBubbleManager::FinalizeBubble() { ...@@ -182,7 +180,6 @@ void PermissionBubbleManager::FinalizeBubble() {
} }
requests_.clear(); requests_.clear();
accept_states_.clear(); accept_states_.clear();
bubble_showing_ = false;
if (queued_requests_.size()) { if (queued_requests_.size()) {
requests_ = queued_requests_; requests_ = queued_requests_;
accept_states_.resize(requests_.size(), true); accept_states_.resize(requests_.size(), true);
......
...@@ -283,3 +283,22 @@ TEST_F(PermissionBubbleManagerTest, TestAddDuplicateRequest) { ...@@ -283,3 +283,22 @@ TEST_F(PermissionBubbleManagerTest, TestAddDuplicateRequest) {
EXPECT_EQ(&request1_, view_.permission_requests_[0]); EXPECT_EQ(&request1_, view_.permission_requests_[0]);
EXPECT_EQ(&request2_, view_.permission_requests_[1]); EXPECT_EQ(&request2_, view_.permission_requests_[1]);
} }
TEST_F(PermissionBubbleManagerTest, SequentialRequests) {
manager_->SetView(&view_);
manager_->AddRequest(&request1_);
WaitForCoalescing();
EXPECT_TRUE(view_.shown_);
Accept();
EXPECT_TRUE(request1_.granted_);
EXPECT_FALSE(view_.shown_);
manager_->AddRequest(&request2_);
WaitForCoalescing();
EXPECT_TRUE(view_.shown_);
Accept();
EXPECT_FALSE(view_.shown_);
EXPECT_TRUE(request2_.granted_);
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment