Chromium Code Reviews| Index: ppapi/tests/extensions/background_keepalive/background.cc |
| diff --git a/ppapi/tests/extensions/background_keepalive/background.cc b/ppapi/tests/extensions/background_keepalive/background.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3c4e8b36bd72bdb4be7efe5765653577e8747d72 |
| --- /dev/null |
| +++ b/ppapi/tests/extensions/background_keepalive/background.cc |
| @@ -0,0 +1,63 @@ |
| +// Copyright (c) 2013 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 <cstdio> |
| +#include <string> |
|
yzshen1
2013/12/14 01:07:01
empty line between two sections, please.
scheib
2013/12/14 05:43:50
Done.
|
| +#include "ppapi/cpp/instance.h" |
| +#include "ppapi/cpp/message_loop.h" |
| +#include "ppapi/cpp/module.h" |
| +#include "ppapi/cpp/var.h" |
| +#include "ppapi/utility/completion_callback_factory.h" |
| + |
| +class Instance : public pp::Instance { |
| + public: |
| + explicit Instance(PP_Instance instance) : |
| + pp::Instance(instance), |
| + callback_factory_(this), |
| + delay_(10), |
| + active_(true) { |
| + DoSomething(PP_OK); |
| + } |
| + virtual ~Instance() {} |
| + |
| + virtual void HandleMessage(const pp::Var& message_var) { |
| + std::string message_string = message_var.AsString(); |
| + if (message_string == "be idle") { |
| + active_ = false; |
| + } else { |
| + PostMessage("Unhandled control message."); |
| + return; |
| + } |
| + } |
| + |
| + void DoSomething(int32_t result) { |
| + if (active_) { |
| + pp::MessageLoop loop = pp::MessageLoop::GetCurrent(); |
| + pp::CompletionCallback c = callback_factory_.NewCallback( |
| + &Instance::DoSomething); |
| + loop.PostWork(c, delay_); |
| + } |
| + } |
| + |
| + pp::CompletionCallbackFactory<Instance> callback_factory_; |
| + int delay_; |
|
yzshen1
2013/12/14 01:07:01
Please comment about the unit or rename the variab
scheib
2013/12/14 05:43:50
Done.
|
| + bool active_; |
| +}; |
| + |
| +class Module : public pp::Module { |
| + public: |
| + Module() : pp::Module() {} |
| + virtual ~Module() {} |
| + |
| + virtual pp::Instance* CreateInstance(PP_Instance instance) { |
| + return new Instance(instance); |
| + } |
| +}; |
| + |
| +namespace pp { |
| +Module* CreateModule() { |
| + return new ::Module(); |
| +} |
| +} // namespace pp |
| + |