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

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 2383473002: [scheduler] Teach scheduler about audio state (Closed)
Patch Set: Support out-of-process frames Created 4 years, 2 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
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/view_messages.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <utility> 10 #include <utility>
(...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 875
876 ++number_of_messages; 876 ++number_of_messages;
877 IPC::Message* message_copy = new IPC::Message(*message); 877 IPC::Message* message_copy = new IPC::Message(*message);
878 message_copy->set_routing_id(rfh->GetRoutingID()); 878 message_copy->set_routing_id(rfh->GetRoutingID());
879 rfh->Send(message_copy); 879 rfh->Send(message_copy);
880 } 880 }
881 delete message; 881 delete message;
882 return number_of_messages; 882 return number_of_messages;
883 } 883 }
884 884
885 int WebContentsImpl::SendToAllViews(IPC::Message* message) {
clamy 2016/10/05 12:11:35 I think it would make a lot more sense to have the
altimin 2016/10/05 13:26:37 Done.
886 std::unordered_set<RenderViewHost*> render_view_hosts;
887 for (RenderFrameHost* rfh : GetAllFrames()) {
888 if (!rfh->IsRenderFrameLive())
889 continue;
890
891 render_view_hosts.insert(rfh->GetRenderViewHost());
892 }
893
894 int number_of_messages = 0;
895 for (RenderViewHost* rvh : render_view_hosts) {
896 if (!rvh->IsRenderViewLive())
897 continue;
898
899 ++number_of_messages;
900 IPC::Message* message_copy = new IPC::Message(*message);
901 message_copy->set_routing_id(rvh->GetRoutingID());
902 rvh->Send(message_copy);
903 }
904 delete message;
905 return number_of_messages;
906 }
907
885 void WebContentsImpl::SendPageMessage(IPC::Message* msg) { 908 void WebContentsImpl::SendPageMessage(IPC::Message* msg) {
886 frame_tree_.root()->render_manager()->SendPageMessage(msg, nullptr); 909 frame_tree_.root()->render_manager()->SendPageMessage(msg, nullptr);
887 } 910 }
888 911
889 RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() const { 912 RenderViewHostImpl* WebContentsImpl::GetRenderViewHost() const {
890 return GetRenderManager()->current_host(); 913 return GetRenderManager()->current_host();
891 } 914 }
892 915
893 int WebContentsImpl::GetRoutingID() const { 916 int WebContentsImpl::GetRoutingID() const {
894 if (!GetRenderViewHost()) 917 if (!GetRenderViewHost())
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
1271 audio_muter_.reset(new WebContentsAudioMuter(this)); 1294 audio_muter_.reset(new WebContentsAudioMuter(this));
1272 audio_muter_->StartMuting(); 1295 audio_muter_->StartMuting();
1273 } else { 1296 } else {
1274 DCHECK(audio_muter_); 1297 DCHECK(audio_muter_);
1275 audio_muter_->StopMuting(); 1298 audio_muter_->StopMuting();
1276 } 1299 }
1277 1300
1278 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 1301 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
1279 DidUpdateAudioMutingState(mute)); 1302 DidUpdateAudioMutingState(mute));
1280 1303
1281 // Notification for UI updates in response to the changed muting state. 1304 OnAudioStateChanged(!mute && audio_stream_monitor_.IsCurrentlyAudible());
1282 NotifyNavigationStateChanged(INVALIDATE_TYPE_TAB);
1283 } 1305 }
1284 1306
1285 bool WebContentsImpl::IsConnectedToBluetoothDevice() const { 1307 bool WebContentsImpl::IsConnectedToBluetoothDevice() const {
1286 return bluetooth_connected_device_count_ > 0; 1308 return bluetooth_connected_device_count_ > 0;
1287 } 1309 }
1288 1310
1289 bool WebContentsImpl::IsCrashed() const { 1311 bool WebContentsImpl::IsCrashed() const {
1290 return (crashed_status_ == base::TERMINATION_STATUS_PROCESS_CRASHED || 1312 return (crashed_status_ == base::TERMINATION_STATUS_PROCESS_CRASHED ||
1291 crashed_status_ == base::TERMINATION_STATUS_ABNORMAL_TERMINATION || 1313 crashed_status_ == base::TERMINATION_STATUS_ABNORMAL_TERMINATION ||
1292 crashed_status_ == base::TERMINATION_STATUS_PROCESS_WAS_KILLED || 1314 crashed_status_ == base::TERMINATION_STATUS_PROCESS_WAS_KILLED ||
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1332 media_web_contents_observer_->MaybeUpdateAudibleState(); 1354 media_web_contents_observer_->MaybeUpdateAudibleState();
1333 } 1355 }
1334 1356
1335 if (delegate_) 1357 if (delegate_)
1336 delegate_->NavigationStateChanged(this, changed_flags); 1358 delegate_->NavigationStateChanged(this, changed_flags);
1337 1359
1338 if (GetOuterWebContents()) 1360 if (GetOuterWebContents())
1339 GetOuterWebContents()->NotifyNavigationStateChanged(changed_flags); 1361 GetOuterWebContents()->NotifyNavigationStateChanged(changed_flags);
1340 } 1362 }
1341 1363
1364 void WebContentsImpl::OnAudioStateChanged(bool is_audio_playing) {
1365 SendToAllViews(
1366 new ViewMsg_AudioStateChanged(GetRoutingID(), is_audio_playing));
1367
1368 // Notification for UI updates in response to the changed muting state.
1369 NotifyNavigationStateChanged(INVALIDATE_TYPE_TAB);
1370 }
1371
1342 base::TimeTicks WebContentsImpl::GetLastActiveTime() const { 1372 base::TimeTicks WebContentsImpl::GetLastActiveTime() const {
1343 return last_active_time_; 1373 return last_active_time_;
1344 } 1374 }
1345 1375
1346 void WebContentsImpl::SetLastActiveTime(base::TimeTicks last_active_time) { 1376 void WebContentsImpl::SetLastActiveTime(base::TimeTicks last_active_time) {
1347 last_active_time_ = last_active_time; 1377 last_active_time_ = last_active_time;
1348 } 1378 }
1349 1379
1350 void WebContentsImpl::WasShown() { 1380 void WebContentsImpl::WasShown() {
1351 controller_.SetActive(true); 1381 controller_.SetActive(true);
(...skipping 3915 matching lines...) Expand 10 before | Expand all | Expand 10 after
5267 dialog_manager_ = dialog_manager; 5297 dialog_manager_ = dialog_manager;
5268 } 5298 }
5269 5299
5270 void WebContentsImpl::RemoveBindingSet(const std::string& interface_name) { 5300 void WebContentsImpl::RemoveBindingSet(const std::string& interface_name) {
5271 auto it = binding_sets_.find(interface_name); 5301 auto it = binding_sets_.find(interface_name);
5272 if (it != binding_sets_.end()) 5302 if (it != binding_sets_.end())
5273 binding_sets_.erase(it); 5303 binding_sets_.erase(it);
5274 } 5304 }
5275 5305
5276 } // namespace content 5306 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/view_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698