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

Unified Diff: content/browser/loader/resource_scheduler.cc

Issue 562273008: Add audio signal to the ResourceScheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/loader/resource_scheduler.h ('k') | content/browser/loader/resource_scheduler_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/loader/resource_scheduler.cc
diff --git a/content/browser/loader/resource_scheduler.cc b/content/browser/loader/resource_scheduler.cc
index ad44d7f5ca86fc969705a84b17b5eb1e28ea0b5e..7eb34ff9233a8c04ea6202ac4c307875addc567e 100644
--- a/content/browser/loader/resource_scheduler.cc
+++ b/content/browser/loader/resource_scheduler.cc
@@ -229,8 +229,10 @@ void ResourceScheduler::RequestQueue::Insert(
// Each client represents a tab.
class ResourceScheduler::Client {
public:
- explicit Client(ResourceScheduler* scheduler, bool is_visible)
- : is_audible_(false),
+ explicit Client(ResourceScheduler* scheduler,
+ bool is_visible,
+ bool is_audible)
+ : is_audible_(is_audible),
is_visible_(is_visible),
is_loaded_(false),
is_paused_(false),
@@ -786,12 +788,13 @@ void ResourceScheduler::RemoveRequest(ScheduledResourceRequest* request) {
void ResourceScheduler::OnClientCreated(int child_id,
int route_id,
- bool is_visible) {
+ bool is_visible,
+ bool is_audible) {
DCHECK(CalledOnValidThread());
ClientId client_id = MakeClientId(child_id, route_id);
DCHECK(!ContainsKey(client_map_, client_id));
- Client* client = new Client(this, is_visible);
+ Client* client = new Client(this, is_visible, is_audible);
client_map_[client_id] = client;
// TODO(aiolos): set Client visibility/audibility when signals are added
@@ -821,6 +824,14 @@ void ResourceScheduler::OnClientDeleted(int child_id, int route_id) {
client_map_.erase(it);
}
+void ResourceScheduler::OnLoadingStateChanged(int child_id,
+ int route_id,
+ bool is_loaded) {
+ Client* client = GetClient(child_id, route_id);
+ DCHECK(client);
+ client->OnLoadingStateChanged(is_loaded);
+}
+
void ResourceScheduler::OnVisibilityChanged(int child_id,
int route_id,
bool is_visible) {
@@ -829,12 +840,13 @@ void ResourceScheduler::OnVisibilityChanged(int child_id,
client->OnVisibilityChanged(is_visible);
}
-void ResourceScheduler::OnLoadingStateChanged(int child_id,
- int route_id,
- bool is_loaded) {
+void ResourceScheduler::OnAudibilityChanged(int child_id,
+ int route_id,
+ bool is_audible) {
Client* client = GetClient(child_id, route_id);
- DCHECK(client);
- client->OnLoadingStateChanged(is_loaded);
+ // We might get this call after the client has been deleted.
+ if (client)
+ client->OnAudibilityChanged(is_audible);
}
void ResourceScheduler::OnNavigate(int child_id, int route_id) {
@@ -880,14 +892,6 @@ void ResourceScheduler::OnReceivedSpdyProxiedHttpResponse(
client->OnReceivedSpdyProxiedHttpResponse();
}
-void ResourceScheduler::OnAudibilityChanged(int child_id,
- int route_id,
- bool is_audible) {
- Client* client = GetClient(child_id, route_id);
- DCHECK(client);
- client->OnAudibilityChanged(is_audible);
-}
-
bool ResourceScheduler::IsClientVisibleForTesting(int child_id, int route_id) {
Client* client = GetClient(child_id, route_id);
DCHECK(client);
« no previous file with comments | « content/browser/loader/resource_scheduler.h ('k') | content/browser/loader/resource_scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698