Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1062)

Side by Side Diff: chrome/browser/ui/website_settings/mock_permission_prompt_factory.cc

Issue 2335623002: Use WebContents instead of Browser to construct PermissionPrompt (Closed)
Patch Set: address review comments Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/website_settings/mock_permission_prompt_factory.h" 5 #include "chrome/browser/ui/website_settings/mock_permission_prompt_factory.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/run_loop.h" 9 #include "base/run_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
11 #include "chrome/browser/permissions/permission_request_manager.h" 11 #include "chrome/browser/permissions/permission_request_manager.h"
12 #include "chrome/browser/ui/website_settings/mock_permission_prompt.h" 12 #include "chrome/browser/ui/website_settings/mock_permission_prompt.h"
13 #include "content/public/browser/web_contents.h"
13 14
14 MockPermissionPromptFactory::MockPermissionPromptFactory( 15 MockPermissionPromptFactory::MockPermissionPromptFactory(
15 PermissionRequestManager* manager) 16 PermissionRequestManager* manager)
16 : can_update_ui_(false), 17 : can_update_ui_(false),
17 show_count_(0), 18 show_count_(0),
18 requests_count_(0), 19 requests_count_(0),
19 total_requests_count_(0), 20 total_requests_count_(0),
20 response_type_(PermissionRequestManager::NONE), 21 response_type_(PermissionRequestManager::NONE),
21 manager_(manager) { 22 manager_(manager) {
22 manager->view_factory_ = 23 manager->view_factory_ =
23 base::Bind(&MockPermissionPromptFactory::Create, base::Unretained(this)); 24 base::Bind(&MockPermissionPromptFactory::Create, base::Unretained(this));
24 } 25 }
25 26
26 MockPermissionPromptFactory::~MockPermissionPromptFactory() { 27 MockPermissionPromptFactory::~MockPermissionPromptFactory() {
27 manager_->view_factory_ = 28 manager_->view_factory_ =
28 base::Bind(&MockPermissionPromptFactory::DoNotCreate); 29 base::Bind(&MockPermissionPromptFactory::DoNotCreate);
29 for (auto* prompt : prompts_) 30 for (auto* prompt : prompts_)
30 prompt->factory_ = nullptr; 31 prompt->factory_ = nullptr;
31 prompts_.clear(); 32 prompts_.clear();
32 } 33 }
33 34
34 std::unique_ptr<PermissionPrompt> MockPermissionPromptFactory::Create( 35 std::unique_ptr<PermissionPrompt> MockPermissionPromptFactory::Create(
35 Browser* browser) { 36 content::WebContents* web_contents) {
36 MockPermissionPrompt* prompt = new MockPermissionPrompt(this, manager_); 37 MockPermissionPrompt* prompt = new MockPermissionPrompt(this, manager_);
37 prompt->can_update_ui_ = can_update_ui_; 38 prompt->can_update_ui_ = can_update_ui_;
38 return base::WrapUnique(prompt); 39 return base::WrapUnique(prompt);
39 } 40 }
40 41
41 void MockPermissionPromptFactory::SetCanUpdateUi(bool can_update_ui) { 42 void MockPermissionPromptFactory::SetCanUpdateUi(bool can_update_ui) {
42 can_update_ui_ = can_update_ui; 43 can_update_ui_ = can_update_ui;
43 for (auto* prompt : prompts_) 44 for (auto* prompt : prompts_)
44 prompt->can_update_ui_ = can_update_ui_; 45 prompt->can_update_ui_ = can_update_ui_;
45 } 46 }
(...skipping 21 matching lines...) Expand all
67 return; 68 return;
68 DCHECK(show_bubble_quit_closure_.is_null()); 69 DCHECK(show_bubble_quit_closure_.is_null());
69 base::RunLoop loop; 70 base::RunLoop loop;
70 show_bubble_quit_closure_ = loop.QuitClosure(); 71 show_bubble_quit_closure_ = loop.QuitClosure();
71 loop.Run(); 72 loop.Run();
72 show_bubble_quit_closure_ = base::Closure(); 73 show_bubble_quit_closure_ = base::Closure();
73 } 74 }
74 75
75 // static 76 // static
76 std::unique_ptr<PermissionPrompt> MockPermissionPromptFactory::DoNotCreate( 77 std::unique_ptr<PermissionPrompt> MockPermissionPromptFactory::DoNotCreate(
77 Browser* browser) { 78 content::WebContents* web_contents) {
78 NOTREACHED(); 79 NOTREACHED();
79 return base::WrapUnique(new MockPermissionPrompt(nullptr, nullptr)); 80 return base::WrapUnique(new MockPermissionPrompt(nullptr, nullptr));
80 } 81 }
81 82
82 void MockPermissionPromptFactory::UpdateResponseType() { 83 void MockPermissionPromptFactory::UpdateResponseType() {
83 manager_->set_auto_response_for_test(response_type_); 84 manager_->set_auto_response_for_test(response_type_);
84 } 85 }
85 86
86 void MockPermissionPromptFactory::ShowView(MockPermissionPrompt* prompt) { 87 void MockPermissionPromptFactory::ShowView(MockPermissionPrompt* prompt) {
87 if (base::ContainsValue(prompts_, prompt)) 88 if (base::ContainsValue(prompts_, prompt))
88 return; 89 return;
89 prompts_.push_back(prompt); 90 prompts_.push_back(prompt);
90 91
91 if (!show_bubble_quit_closure_.is_null()) 92 if (!show_bubble_quit_closure_.is_null())
92 show_bubble_quit_closure_.Run(); 93 show_bubble_quit_closure_.Run();
93 } 94 }
94 95
95 void MockPermissionPromptFactory::HideView(MockPermissionPrompt* prompt) { 96 void MockPermissionPromptFactory::HideView(MockPermissionPrompt* prompt) {
96 auto it = std::find(prompts_.begin(), prompts_.end(), prompt); 97 auto it = std::find(prompts_.begin(), prompts_.end(), prompt);
97 if (it != prompts_.end()) 98 if (it != prompts_.end())
98 prompts_.erase(it); 99 prompts_.erase(it);
99 } 100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698