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

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

Issue 2748443005: Rename website_settings UI folders to permission_bubble. (Closed)
Patch Set: Rebase. Created 3 years, 9 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "chrome/browser/ui/website_settings/mock_permission_prompt_factory.h"
6
7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h"
9 #include "base/run_loop.h"
10 #include "base/stl_util.h"
11 #include "chrome/browser/permissions/permission_request_manager.h"
12 #include "chrome/browser/ui/website_settings/mock_permission_prompt.h"
13 #include "content/public/browser/web_contents.h"
14
15 MockPermissionPromptFactory::MockPermissionPromptFactory(
16 PermissionRequestManager* manager)
17 : can_update_ui_(false),
18 show_count_(0),
19 requests_count_(0),
20 total_requests_count_(0),
21 response_type_(PermissionRequestManager::NONE),
22 manager_(manager) {
23 manager->view_factory_ =
24 base::Bind(&MockPermissionPromptFactory::Create, base::Unretained(this));
25 }
26
27 MockPermissionPromptFactory::~MockPermissionPromptFactory() {
28 manager_->view_factory_ =
29 base::Bind(&MockPermissionPromptFactory::DoNotCreate);
30 for (auto* prompt : prompts_)
31 prompt->factory_ = nullptr;
32 prompts_.clear();
33 }
34
35 std::unique_ptr<PermissionPrompt> MockPermissionPromptFactory::Create(
36 content::WebContents* web_contents) {
37 MockPermissionPrompt* prompt = new MockPermissionPrompt(this, manager_);
38 prompt->can_update_ui_ = can_update_ui_;
39 return base::WrapUnique(prompt);
40 }
41
42 void MockPermissionPromptFactory::SetCanUpdateUi(bool can_update_ui) {
43 can_update_ui_ = can_update_ui;
44 for (auto* prompt : prompts_)
45 prompt->can_update_ui_ = can_update_ui_;
46 }
47
48 void MockPermissionPromptFactory::ResetCounts() {
49 show_count_ = 0;
50 requests_count_ = 0;
51 total_requests_count_ = 0;
52 }
53
54 void MockPermissionPromptFactory::DocumentOnLoadCompletedInMainFrame() {
55 manager_->DocumentOnLoadCompletedInMainFrame();
56 }
57
58 bool MockPermissionPromptFactory::is_visible() {
59 for (auto* prompt : prompts_) {
60 if (prompt->IsVisible())
61 return true;
62 }
63 return false;
64 }
65
66 void MockPermissionPromptFactory::WaitForPermissionBubble() {
67 if (is_visible())
68 return;
69 DCHECK(show_bubble_quit_closure_.is_null());
70 base::RunLoop loop;
71 show_bubble_quit_closure_ = loop.QuitClosure();
72 loop.Run();
73 show_bubble_quit_closure_ = base::Closure();
74 }
75
76 // static
77 std::unique_ptr<PermissionPrompt> MockPermissionPromptFactory::DoNotCreate(
78 content::WebContents* web_contents) {
79 NOTREACHED();
80 return base::WrapUnique(new MockPermissionPrompt(nullptr, nullptr));
81 }
82
83 void MockPermissionPromptFactory::UpdateResponseType() {
84 manager_->set_auto_response_for_test(response_type_);
85 }
86
87 void MockPermissionPromptFactory::ShowView(MockPermissionPrompt* prompt) {
88 if (base::ContainsValue(prompts_, prompt))
89 return;
90 prompts_.push_back(prompt);
91
92 if (!show_bubble_quit_closure_.is_null())
93 show_bubble_quit_closure_.Run();
94 }
95
96 void MockPermissionPromptFactory::HideView(MockPermissionPrompt* prompt) {
97 auto it = std::find(prompts_.begin(), prompts_.end(), prompt);
98 if (it != prompts_.end())
99 prompts_.erase(it);
100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698