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

Unified Diff: chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc

Issue 2388313004: Flash: Use better APIs for preventing sleep (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/DEPS ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
diff --git a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
index 5ce665036057c6062f7d54cc8bc8ad568c52e7a3..c8ff5919e21c1ae7b530ef85248e6fa82892e76a 100644
--- a/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
+++ b/chrome/browser/renderer_host/pepper/pepper_flash_browser_host.cc
@@ -13,6 +13,7 @@
#include "content/public/browser/browser_ppapi_host.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
+#include "device/power_save_blocker/power_save_blocker.h"
#include "ipc/ipc_message_macros.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/c/private/ppb_flash.h"
@@ -80,19 +81,20 @@ int32_t PepperFlashBrowserHost::OnResourceMessageReceived(
int32_t PepperFlashBrowserHost::OnUpdateActivity(
ppapi::host::HostMessageContext* host_context) {
-#if defined(OS_WIN)
- // Reading then writing back the same value to the screensaver timeout system
- // setting resets the countdown which prevents the screensaver from turning
- // on "for a while". As long as the plugin pings us with this message faster
- // than the screensaver timeout, it won't go on.
- int value = 0;
- if (SystemParametersInfo(SPI_GETSCREENSAVETIMEOUT, 0, &value, 0))
- SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, value, NULL, 0);
-#elif defined(OS_MACOSX)
- UpdateSystemActivity(OverallAct);
-#else
-// TODO(brettw) implement this for other platforms.
-#endif
+ device::PowerSaveBlocker* blocker = new device::PowerSaveBlocker(
+ device::PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
+ device::PowerSaveBlocker::kReasonOther, "Requested By PepperFlash",
+ BrowserThread::GetTaskRunnerForThread(BrowserThread::UI),
+ BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE));
+ auto delete_blocker = [](device::PowerSaveBlocker* blocker) {
+ delete blocker;
+ };
+ // There is no specification for how long OnUpdateActivity should prevent the
+ // screen from going to sleep. Empirically, twitch.tv calls this method every
+ // 10 seconds. Be conservative and allow 45 seconds before deleting the block.
+ BrowserThread::PostDelayedTask(BrowserThread::IO, FROM_HERE,
+ base::Bind(delete_blocker, blocker),
+ base::TimeDelta::FromSeconds(45));
bbudge 2016/10/13 19:53:51 Since this is a plugin API, it seems bad to allow
ccameron 2016/10/14 21:39:43 Sure -- switched it to a DelayTimer impl.
return PP_OK;
}
« no previous file with comments | « chrome/browser/DEPS ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698