update_service_android.h 1.1 KB
Newer Older
1 2 3 4
// Copyright 2015 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.

5 6
#ifndef SKY_SHELL_ANDROID_UPDATE_SERVICE_ANDROID_H_
#define SKY_SHELL_ANDROID_UPDATE_SERVICE_ANDROID_H_
7 8 9

#include <jni.h>

10 11
#include "base/android/scoped_java_ref.h"
#include "base/memory/scoped_ptr.h"
12
#include "sky/engine/public/sky/sky_headless.h"
13 14 15 16

namespace sky {
namespace shell {

17
class UpdateTaskAndroid : public blink::SkyHeadless::Client {
18
 public:
19 20
  UpdateTaskAndroid(JNIEnv* env, jobject update_service);
  virtual ~UpdateTaskAndroid();
21

22
  void Start();
23

24 25
  // This C++ object is owned by the Java UpdateTask. This is called by
  // UpdateTask when it is destroyed.
26
  void Destroy(JNIEnv* env, jobject jcaller);
27

28
 private:
29 30
  void RunDartOnUIThread();

31 32 33
  // SkyHeadless::Client:
  void DidCreateIsolate(Dart_Isolate isolate) override;

34
  scoped_ptr<blink::SkyHeadless> headless_;
35 36 37 38 39 40 41 42
  base::android::ScopedJavaGlobalRef<jobject> update_service_;
};

bool RegisterUpdateService(JNIEnv* env);

}  // namespace shell
}  // namespace sky

43
#endif  // SKY_SHELL_ANDROID_UPDATE_SERVICE_ANDROID_H_