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

Side by Side Diff: content/renderer/media/media_permission_dispatcher.cc

Issue 2873333004: Rename TaskRunner::RunsTasksOnCurrentThread() in //content (Closed)
Patch Set: Created 3 years, 7 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/renderer/media/media_permission_dispatcher.h" 5 #include "content/renderer/media/media_permission_dispatcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/single_thread_task_runner.h" 9 #include "base/single_thread_task_runner.h"
10 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 const ConnectToServiceCB& connect_to_service_cb) 46 const ConnectToServiceCB& connect_to_service_cb)
47 : connect_to_service_cb_(connect_to_service_cb), 47 : connect_to_service_cb_(connect_to_service_cb),
48 task_runner_(base::ThreadTaskRunnerHandle::Get()), 48 task_runner_(base::ThreadTaskRunnerHandle::Get()),
49 next_request_id_(0), 49 next_request_id_(0),
50 weak_factory_(this) { 50 weak_factory_(this) {
51 DCHECK(!connect_to_service_cb_.is_null()); 51 DCHECK(!connect_to_service_cb_.is_null());
52 weak_ptr_ = weak_factory_.GetWeakPtr(); 52 weak_ptr_ = weak_factory_.GetWeakPtr();
53 } 53 }
54 54
55 MediaPermissionDispatcher::~MediaPermissionDispatcher() { 55 MediaPermissionDispatcher::~MediaPermissionDispatcher() {
56 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 56 DCHECK(task_runner_->RunsTasksInCurrentSequence());
57 57
58 // Fire all pending callbacks with |false|. 58 // Fire all pending callbacks with |false|.
59 for (auto& request : requests_) 59 for (auto& request : requests_)
60 request.second.Run(false); 60 request.second.Run(false);
61 } 61 }
62 62
63 void MediaPermissionDispatcher::HasPermission( 63 void MediaPermissionDispatcher::HasPermission(
64 Type type, 64 Type type,
65 const GURL& security_origin, 65 const GURL& security_origin,
66 const PermissionStatusCB& permission_status_cb) { 66 const PermissionStatusCB& permission_status_cb) {
67 if (!task_runner_->RunsTasksOnCurrentThread()) { 67 if (!task_runner_->RunsTasksInCurrentSequence()) {
68 task_runner_->PostTask( 68 task_runner_->PostTask(
69 FROM_HERE, base::Bind(&MediaPermissionDispatcher::HasPermission, 69 FROM_HERE, base::Bind(&MediaPermissionDispatcher::HasPermission,
70 weak_ptr_, type, security_origin, 70 weak_ptr_, type, security_origin,
71 media::BindToCurrentLoop(permission_status_cb))); 71 media::BindToCurrentLoop(permission_status_cb)));
72 return; 72 return;
73 } 73 }
74 74
75 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 75 DCHECK(task_runner_->RunsTasksInCurrentSequence());
76 76
77 if (!permission_service_) 77 if (!permission_service_)
78 connect_to_service_cb_.Run(mojo::MakeRequest(&permission_service_)); 78 connect_to_service_cb_.Run(mojo::MakeRequest(&permission_service_));
79 79
80 int request_id = RegisterCallback(permission_status_cb); 80 int request_id = RegisterCallback(permission_status_cb);
81 DVLOG(2) << __func__ << ": request ID " << request_id; 81 DVLOG(2) << __func__ << ": request ID " << request_id;
82 82
83 permission_service_->HasPermission( 83 permission_service_->HasPermission(
84 MediaPermissionTypeToPermissionDescriptor(type), 84 MediaPermissionTypeToPermissionDescriptor(type),
85 url::Origin(security_origin), 85 url::Origin(security_origin),
86 base::Bind(&MediaPermissionDispatcher::OnPermissionStatus, weak_ptr_, 86 base::Bind(&MediaPermissionDispatcher::OnPermissionStatus, weak_ptr_,
87 request_id)); 87 request_id));
88 } 88 }
89 89
90 void MediaPermissionDispatcher::RequestPermission( 90 void MediaPermissionDispatcher::RequestPermission(
91 Type type, 91 Type type,
92 const GURL& security_origin, 92 const GURL& security_origin,
93 const PermissionStatusCB& permission_status_cb) { 93 const PermissionStatusCB& permission_status_cb) {
94 if (!task_runner_->RunsTasksOnCurrentThread()) { 94 if (!task_runner_->RunsTasksInCurrentSequence()) {
95 task_runner_->PostTask( 95 task_runner_->PostTask(
96 FROM_HERE, base::Bind(&MediaPermissionDispatcher::RequestPermission, 96 FROM_HERE, base::Bind(&MediaPermissionDispatcher::RequestPermission,
97 weak_ptr_, type, security_origin, 97 weak_ptr_, type, security_origin,
98 media::BindToCurrentLoop(permission_status_cb))); 98 media::BindToCurrentLoop(permission_status_cb)));
99 return; 99 return;
100 } 100 }
101 101
102 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 102 DCHECK(task_runner_->RunsTasksInCurrentSequence());
103 103
104 if (!permission_service_) 104 if (!permission_service_)
105 connect_to_service_cb_.Run(mojo::MakeRequest(&permission_service_)); 105 connect_to_service_cb_.Run(mojo::MakeRequest(&permission_service_));
106 106
107 int request_id = RegisterCallback(permission_status_cb); 107 int request_id = RegisterCallback(permission_status_cb);
108 DVLOG(2) << __func__ << ": request ID " << request_id; 108 DVLOG(2) << __func__ << ": request ID " << request_id;
109 109
110 permission_service_->RequestPermission( 110 permission_service_->RequestPermission(
111 MediaPermissionTypeToPermissionDescriptor(type), 111 MediaPermissionTypeToPermissionDescriptor(type),
112 url::Origin(security_origin), 112 url::Origin(security_origin),
113 blink::WebUserGestureIndicator::IsProcessingUserGesture(), 113 blink::WebUserGestureIndicator::IsProcessingUserGesture(),
114 base::Bind(&MediaPermissionDispatcher::OnPermissionStatus, weak_ptr_, 114 base::Bind(&MediaPermissionDispatcher::OnPermissionStatus, weak_ptr_,
115 request_id)); 115 request_id));
116 } 116 }
117 117
118 uint32_t MediaPermissionDispatcher::RegisterCallback( 118 uint32_t MediaPermissionDispatcher::RegisterCallback(
119 const PermissionStatusCB& permission_status_cb) { 119 const PermissionStatusCB& permission_status_cb) {
120 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 120 DCHECK(task_runner_->RunsTasksInCurrentSequence());
121 121
122 uint32_t request_id = next_request_id_++; 122 uint32_t request_id = next_request_id_++;
123 DCHECK(!requests_.count(request_id)); 123 DCHECK(!requests_.count(request_id));
124 requests_[request_id] = permission_status_cb; 124 requests_[request_id] = permission_status_cb;
125 125
126 return request_id; 126 return request_id;
127 } 127 }
128 128
129 void MediaPermissionDispatcher::OnPermissionStatus( 129 void MediaPermissionDispatcher::OnPermissionStatus(
130 uint32_t request_id, 130 uint32_t request_id,
131 blink::mojom::PermissionStatus status) { 131 blink::mojom::PermissionStatus status) {
132 DVLOG(2) << __func__ << ": (" << request_id << ", " << status << ")"; 132 DVLOG(2) << __func__ << ": (" << request_id << ", " << status << ")";
133 DCHECK(task_runner_->RunsTasksOnCurrentThread()); 133 DCHECK(task_runner_->RunsTasksInCurrentSequence());
134 134
135 RequestMap::iterator iter = requests_.find(request_id); 135 RequestMap::iterator iter = requests_.find(request_id);
136 DCHECK(iter != requests_.end()) << "Request not found."; 136 DCHECK(iter != requests_.end()) << "Request not found.";
137 137
138 PermissionStatusCB permission_status_cb = iter->second; 138 PermissionStatusCB permission_status_cb = iter->second;
139 requests_.erase(iter); 139 requests_.erase(iter);
140 140
141 permission_status_cb.Run(status == blink::mojom::PermissionStatus::GRANTED); 141 permission_status_cb.Run(status == blink::mojom::PermissionStatus::GRANTED);
142 } 142 }
143 143
144 } // namespace content 144 } // namespace content
OLDNEW
« no previous file with comments | « content/public/test/test_browser_thread.cc ('k') | content/renderer/media/media_stream_audio_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698