Index: content/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
diff --git a/content/browser/renderer_host/pepper/pepper_flash_browser_host.cc b/content/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ba4f75f6e4946d9e231f1a2112360f9a89639d98 |
--- /dev/null |
+++ b/content/browser/renderer_host/pepper/pepper_flash_browser_host.cc |
@@ -0,0 +1,60 @@ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "content/browser/renderer_host/pepper/pepper_flash_browser_host.h" |
+ |
+#include "content/public/browser/browser_ppapi_host.h" |
+#include "ipc/ipc_message_macros.h" |
+#include "ppapi/c/pp_errors.h" |
+#include "ppapi/host/dispatch_host_message.h" |
+#include "ppapi/proxy/ppapi_messages.h" |
+#include "ppapi/proxy/resource_message_params.h" |
+ |
+#ifdef OS_WIN |
+#include <windows.h> |
+#elif defined(OS_MACOSX) |
+#include <CoreServices/CoreServices.h> |
+#endif |
+ |
+namespace content { |
+ |
+PepperFlashBrowserHost::PepperFlashBrowserHost( |
+ BrowserPpapiHost* host, |
+ PP_Instance instance, |
+ PP_Resource resource) |
+ : ResourceHost(host->GetPpapiHost(), instance, resource) { |
+} |
+ |
+PepperFlashBrowserHost::~PepperFlashBrowserHost() { |
+} |
+ |
+int32_t PepperFlashBrowserHost::OnResourceMessageReceived( |
+ const IPC::Message& msg, |
+ ppapi::host::HostMessageContext* context) { |
+ IPC_BEGIN_MESSAGE_MAP(PepperFlashBrowserHost, msg) |
+ PPAPI_DISPATCH_HOST_RESOURCE_CALL_0(PpapiHostMsg_Flash_UpdateActivity, |
+ OnMsgUpdateActivity); |
+ IPC_END_MESSAGE_MAP() |
+ return PP_ERROR_FAILED; |
+} |
+ |
+int32_t PepperFlashBrowserHost::OnMsgUpdateActivity( |
+ 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 |
+ return PP_OK; |
+} |
+ |
+} // namespace content |