Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: libadblockplus-android/src/org/adblockplus/libadblockplus/JsEngine.java

Issue 29536629: Issue 5556 - Update to use libadblockplus revision hg:566f64c8a2a8 (Closed) Base URL: github.com:abby-sergz/libadblockplus-android.git
Patch Set: Created Sept. 5, 2017, 12:59 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-present eyeo GmbH 3 * Copyright (C) 2006-present eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 package org.adblockplus.libadblockplus; 18 package org.adblockplus.libadblockplus;
19 19
20 import java.util.List; 20 import java.util.List;
21 21
22 public final class JsEngine implements Disposable 22 public final class JsEngine
23 { 23 {
24 private final Disposer disposer;
25 protected final long ptr; 24 protected final long ptr;
26 25
27 static 26 static
28 { 27 {
29 System.loadLibrary("adblockplus-jni"); 28 System.loadLibrary("adblockplus-jni");
30 registerNatives(); 29 registerNatives();
31 } 30 }
32 31
33 public JsEngine(final AppInfo appInfo, final LogSystem logSystem, final WebReq uest webRequest, final String basePath) 32 JsEngine(final long ptr)
anton 2017/09/06 06:21:27 `public` here is required (unless it's done intent
sergei 2017/09/08 09:45:01 It's done indeed deliberately in order to express
34 {
35 this(ctor(appInfo, logSystem, webRequest, basePath));
36 }
37
38 public JsEngine(final AppInfo appInfo)
39 {
40 this(appInfo, null, null, null);
41 }
42
43 protected JsEngine(final long ptr)
44 { 33 {
45 this.ptr = ptr; 34 this.ptr = ptr;
46 this.disposer = new Disposer(this, new DisposeWrapper(ptr));
47 } 35 }
48 36
49 public void setEventCallback(final String eventName, final EventCallback callb ack) 37 public void setEventCallback(final String eventName, final EventCallback callb ack)
50 { 38 {
51 setEventCallback(this.ptr, eventName, callback.ptr); 39 setEventCallback(this.ptr, eventName, callback.ptr);
52 } 40 }
53 41
54 public void removeEventCallback(final String eventName) 42 public void removeEventCallback(final String eventName)
55 { 43 {
56 removeEventCallback(this.ptr, eventName); 44 removeEventCallback(this.ptr, eventName);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 public JsValue newValue(final boolean value) 79 public JsValue newValue(final boolean value)
92 { 80 {
93 return newValue(this.ptr, value); 81 return newValue(this.ptr, value);
94 } 82 }
95 83
96 public JsValue newValue(final String value) 84 public JsValue newValue(final String value)
97 { 85 {
98 return newValue(this.ptr, value); 86 return newValue(this.ptr, value);
99 } 87 }
100 88
101 @Override
102 public void dispose()
103 {
104 this.disposer.dispose();
105 }
106
107 private final static class DisposeWrapper implements Disposable
108 {
109 private final long ptr;
110
111 public DisposeWrapper(final long ptr)
112 {
113 this.ptr = ptr;
114 }
115
116 @Override
117 public void dispose()
118 {
119 dtor(this.ptr);
120 }
121 }
122
123 private final static native void registerNatives(); 89 private final static native void registerNatives();
124 90
125 private final static native long ctor(AppInfo appInfo, LogSystem logSystem, We bRequest webRequest,
126 String basePath);
127
128 private final static native void setEventCallback(long ptr, String eventName, long callback); 91 private final static native void setEventCallback(long ptr, String eventName, long callback);
129 92
130 private final static native void removeEventCallback(long ptr, String eventNam e); 93 private final static native void removeEventCallback(long ptr, String eventNam e);
131 94
132 private final static native JsValue evaluate(long ptr, String source, String f ilename); 95 private final static native JsValue evaluate(long ptr, String source, String f ilename);
133 96
134 private final static native void triggerEvent(long ptr, String eventName, long [] args); 97 private final static native void triggerEvent(long ptr, String eventName, long [] args);
135 98
136 private final static native JsValue newValue(long ptr, long value); 99 private final static native JsValue newValue(long ptr, long value);
137 100
138 private final static native JsValue newValue(long ptr, boolean value); 101 private final static native JsValue newValue(long ptr, boolean value);
139 102
140 private final static native JsValue newValue(long ptr, String value); 103 private final static native JsValue newValue(long ptr, String value);
141
142 private final static native void dtor(long ptr);
143 } 104 }
OLDNEW

Powered by Google App Engine
This is Rietveld