Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 3015 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3026 | 3026 |
| 3027 void WebContentsImpl::OnUpdateFaviconURL( | 3027 void WebContentsImpl::OnUpdateFaviconURL( |
| 3028 const std::vector<FaviconURL>& candidates) { | 3028 const std::vector<FaviconURL>& candidates) { |
| 3029 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 3029 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
| 3030 DidUpdateFaviconURL(candidates)); | 3030 DidUpdateFaviconURL(candidates)); |
| 3031 } | 3031 } |
| 3032 | 3032 |
| 3033 void WebContentsImpl::OnMediaPlayingNotification(int64 player_cookie, | 3033 void WebContentsImpl::OnMediaPlayingNotification(int64 player_cookie, |
| 3034 bool has_video, | 3034 bool has_video, |
| 3035 bool has_audio) { | 3035 bool has_audio) { |
| 3036 // Chrome OS does its own detection of audio and video. | |
| 3037 #if !defined(OS_CHROMEOS) | 3036 #if !defined(OS_CHROMEOS) |
| 3038 scoped_ptr<PowerSaveBlocker> blocker; | 3037 scoped_ptr<PowerSaveBlocker> blocker; |
| 3039 if (has_video) { | 3038 if (has_video) { |
| 3040 blocker = PowerSaveBlocker::Create( | 3039 blocker = PowerSaveBlocker::Create( |
| 3041 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, "Playing video"); | 3040 PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep, "Playing video"); |
| 3042 #if defined(OS_ANDROID) | 3041 #if defined(OS_ANDROID) |
| 3043 static_cast<PowerSaveBlockerImpl*>(blocker.get()) | 3042 static_cast<PowerSaveBlockerImpl*>(blocker.get()) |
| 3044 ->InitDisplaySleepBlocker(GetView()->GetNativeView()); | 3043 ->InitDisplaySleepBlocker(GetView()->GetNativeView()); |
| 3045 #endif | 3044 #endif |
| 3046 } else if (has_audio) { | 3045 } else if (has_audio) { |
| 3047 blocker = PowerSaveBlocker::Create( | 3046 blocker = PowerSaveBlocker::Create( |
| 3048 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, "Playing audio"); | 3047 PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension, "Playing audio"); |
| 3049 } | 3048 } |
| 3050 | 3049 |
| 3051 if (blocker) { | 3050 if (blocker) { |
| 3051 delete power_save_blockers_[render_frame_message_source_][player_cookie]; | |
|
Avi (use Gerrit)
2014/08/07 15:30:06
Gah.
I see that this fixes the problem, but can't
| |
| 3052 power_save_blockers_[render_frame_message_source_][player_cookie] = | 3052 power_save_blockers_[render_frame_message_source_][player_cookie] = |
| 3053 blocker.release(); | 3053 blocker.release(); |
| 3054 } | 3054 } |
| 3055 #endif // !defined(OS_CHROMEOS) | 3055 #endif // !defined(OS_CHROMEOS) |
| 3056 } | 3056 } |
| 3057 | 3057 |
| 3058 void WebContentsImpl::OnMediaPausedNotification(int64 player_cookie) { | 3058 void WebContentsImpl::OnMediaPausedNotification(int64 player_cookie) { |
| 3059 // Chrome OS does its own detection of audio and video. | |
| 3060 #if !defined(OS_CHROMEOS) | 3059 #if !defined(OS_CHROMEOS) |
| 3061 delete power_save_blockers_[render_frame_message_source_][player_cookie]; | 3060 delete power_save_blockers_[render_frame_message_source_][player_cookie]; |
| 3062 power_save_blockers_[render_frame_message_source_].erase(player_cookie); | 3061 power_save_blockers_[render_frame_message_source_].erase(player_cookie); |
| 3063 #endif // !defined(OS_CHROMEOS) | 3062 #endif // !defined(OS_CHROMEOS) |
| 3064 } | 3063 } |
| 3065 | 3064 |
| 3066 void WebContentsImpl::OnFirstVisuallyNonEmptyPaint() { | 3065 void WebContentsImpl::OnFirstVisuallyNonEmptyPaint() { |
| 3067 FOR_EACH_OBSERVER(WebContentsObserver, observers_, | 3066 FOR_EACH_OBSERVER(WebContentsObserver, observers_, |
| 3068 DidFirstVisuallyNonEmptyPaint()); | 3067 DidFirstVisuallyNonEmptyPaint()); |
| 3069 } | 3068 } |
| (...skipping 1136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4206 CHECK(!browser_plugin_guest_); | 4205 CHECK(!browser_plugin_guest_); |
| 4207 browser_plugin_guest_.reset(guest); | 4206 browser_plugin_guest_.reset(guest); |
| 4208 } | 4207 } |
| 4209 | 4208 |
| 4210 BrowserPluginEmbedder* WebContentsImpl::GetBrowserPluginEmbedder() const { | 4209 BrowserPluginEmbedder* WebContentsImpl::GetBrowserPluginEmbedder() const { |
| 4211 return browser_plugin_embedder_.get(); | 4210 return browser_plugin_embedder_.get(); |
| 4212 } | 4211 } |
| 4213 | 4212 |
| 4214 void WebContentsImpl::ClearPowerSaveBlockers( | 4213 void WebContentsImpl::ClearPowerSaveBlockers( |
| 4215 RenderFrameHost* render_frame_host) { | 4214 RenderFrameHost* render_frame_host) { |
| 4215 #if !defined(OS_CHROMEOS) | |
| 4216 STLDeleteValues(&power_save_blockers_[render_frame_host]); | 4216 STLDeleteValues(&power_save_blockers_[render_frame_host]); |
| 4217 power_save_blockers_.erase(render_frame_host); | 4217 power_save_blockers_.erase(render_frame_host); |
| 4218 #endif | |
| 4218 } | 4219 } |
| 4219 | 4220 |
| 4220 void WebContentsImpl::ClearAllPowerSaveBlockers() { | 4221 void WebContentsImpl::ClearAllPowerSaveBlockers() { |
| 4222 #if !defined(OS_CHROMEOS) | |
| 4221 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin()); | 4223 for (PowerSaveBlockerMap::iterator i(power_save_blockers_.begin()); |
| 4222 i != power_save_blockers_.end(); ++i) | 4224 i != power_save_blockers_.end(); ++i) |
| 4223 STLDeleteValues(&power_save_blockers_[i->first]); | 4225 STLDeleteValues(&power_save_blockers_[i->first]); |
| 4224 power_save_blockers_.clear(); | 4226 power_save_blockers_.clear(); |
| 4227 #endif | |
| 4225 } | 4228 } |
| 4226 | 4229 |
| 4227 gfx::Size WebContentsImpl::GetSizeForNewRenderView() { | 4230 gfx::Size WebContentsImpl::GetSizeForNewRenderView() { |
| 4228 gfx::Size size; | 4231 gfx::Size size; |
| 4229 if (delegate_) | 4232 if (delegate_) |
| 4230 size = delegate_->GetSizeForNewRenderView(this); | 4233 size = delegate_->GetSizeForNewRenderView(this); |
| 4231 if (size.IsEmpty()) | 4234 if (size.IsEmpty()) |
| 4232 size = GetContainerBounds().size(); | 4235 size = GetContainerBounds().size(); |
| 4233 return size; | 4236 return size; |
| 4234 } | 4237 } |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 4245 if (new_size != old_size) | 4248 if (new_size != old_size) |
| 4246 delegate_->UpdatePreferredSize(this, new_size); | 4249 delegate_->UpdatePreferredSize(this, new_size); |
| 4247 } | 4250 } |
| 4248 | 4251 |
| 4249 void WebContentsImpl::ResumeResponseDeferredAtStart() { | 4252 void WebContentsImpl::ResumeResponseDeferredAtStart() { |
| 4250 FrameTreeNode* node = frame_tree_.root(); | 4253 FrameTreeNode* node = frame_tree_.root(); |
| 4251 node->render_manager()->ResumeResponseDeferredAtStart(); | 4254 node->render_manager()->ResumeResponseDeferredAtStart(); |
| 4252 } | 4255 } |
| 4253 | 4256 |
| 4254 } // namespace content | 4257 } // namespace content |
| OLD | NEW |