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 |