diff options
Diffstat (limited to 'chromium/extensions/renderer/lazy_background_page_native_handler.cc')
-rw-r--r-- | chromium/extensions/renderer/lazy_background_page_native_handler.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/chromium/extensions/renderer/lazy_background_page_native_handler.cc b/chromium/extensions/renderer/lazy_background_page_native_handler.cc new file mode 100644 index 00000000000..f09beec7a7f --- /dev/null +++ b/chromium/extensions/renderer/lazy_background_page_native_handler.cc @@ -0,0 +1,46 @@ +// Copyright 2014 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 "extensions/renderer/lazy_background_page_native_handler.h" + +#include "base/bind.h" +#include "content/public/renderer/render_frame.h" +#include "extensions/common/extension_messages.h" +#include "extensions/renderer/extension_frame_helper.h" +#include "extensions/renderer/script_context.h" + +namespace extensions { + +LazyBackgroundPageNativeHandler::LazyBackgroundPageNativeHandler( + ScriptContext* context) + : ObjectBackedNativeHandler(context) { + RouteFunction( + "IncrementKeepaliveCount", + base::Bind(&LazyBackgroundPageNativeHandler::IncrementKeepaliveCount, + base::Unretained(this))); + RouteFunction( + "DecrementKeepaliveCount", + base::Bind(&LazyBackgroundPageNativeHandler::DecrementKeepaliveCount, + base::Unretained(this))); +} + +void LazyBackgroundPageNativeHandler::IncrementKeepaliveCount( + const v8::FunctionCallbackInfo<v8::Value>& args) { + if (context() && ExtensionFrameHelper::IsContextForEventPage(context())) { + content::RenderFrame* render_frame = context()->GetRenderFrame(); + render_frame->Send(new ExtensionHostMsg_IncrementLazyKeepaliveCount( + render_frame->GetRoutingID())); + } +} + +void LazyBackgroundPageNativeHandler::DecrementKeepaliveCount( + const v8::FunctionCallbackInfo<v8::Value>& args) { + if (context() && ExtensionFrameHelper::IsContextForEventPage(context())) { + content::RenderFrame* render_frame = context()->GetRenderFrame(); + render_frame->Send(new ExtensionHostMsg_DecrementLazyKeepaliveCount( + render_frame->GetRoutingID())); + } +} + +} // namespace extensions |