You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2020/12/18 05:22:32 UTC

[netbeans-html4j] branch master updated (1f8b842 -> f61392c)

This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git.


    from 1f8b842  Real life JSON downloading TCK test
     new 8e3acf2  Schedule processing when topmost call has already finished
     new f61392c  Robustness when running on unsupported configurations

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../java/html/boot/script/KnockoutEnvJSTest.java   |  2 +
 .../org/netbeans/html/presenters/spi/Generic.java  |  2 +-
 .../org/netbeans/html/presenters/render/Show.java  |  2 +-
 .../org/netbeans/html/presenters/webkit/Case.java  | 10 +++-
 .../html/presenters/webkit/GtkJavaScriptTest.java  | 37 ++++++++------
 .../html/presenters/webkit/GtkKnockoutTest.java    | 56 ++++++++++++----------
 6 files changed, 67 insertions(+), 42 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[netbeans-html4j] 01/02: Schedule processing when topmost call has already finished

Posted by jt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git

commit 8e3acf2298a9fa62740880823c3f3ec8ca912ad7
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Fri Dec 18 06:21:27 2020 +0100

    Schedule processing when topmost call has already finished
---
 generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
index 8a67799..56285a1 100644
--- a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
+++ b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
@@ -667,7 +667,7 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
             params.addAll(Arrays.asList((Object[]) args));
             Object[] converted = adaptParams(method, params);
             Item top = topMostCall();
-            boolean first = top == null;
+            boolean first = top == null || Boolean.TRUE.equals(top.done);
             log(Level.FINE, "jc: {0}@{1}args: {2} is first: {3}, now: {4}", new Object[]{method.getName(), vm, params, first, topMostCall()});
             Item newItem = registerCall(new Item(nextCallId(), top, method, vm, converted));
             if (first || synchronous) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists


[netbeans-html4j] 02/02: Robustness when running on unsupported configurations

Posted by jt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git

commit f61392caa723991c06c7bb35e036cda3ee299e7d
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Fri Dec 18 06:22:17 2020 +0100

    Robustness when running on unsupported configurations
---
 .../java/html/boot/script/KnockoutEnvJSTest.java   |  2 +
 .../org/netbeans/html/presenters/render/Show.java  |  2 +-
 .../org/netbeans/html/presenters/webkit/Case.java  | 10 +++-
 .../html/presenters/webkit/GtkJavaScriptTest.java  | 37 ++++++++------
 .../html/presenters/webkit/GtkKnockoutTest.java    | 56 ++++++++++++----------
 5 files changed, 66 insertions(+), 41 deletions(-)

diff --git a/boot-script/src/test/java/net/java/html/boot/script/KnockoutEnvJSTest.java b/boot-script/src/test/java/net/java/html/boot/script/KnockoutEnvJSTest.java
index 6316f10..ee7ce76 100644
--- a/boot-script/src/test/java/net/java/html/boot/script/KnockoutEnvJSTest.java
+++ b/boot-script/src/test/java/net/java/html/boot/script/KnockoutEnvJSTest.java
@@ -166,6 +166,8 @@ public final class KnockoutEnvJSTest extends KnockoutTCK {
                 return "Does not work on JDK8, due to JDK-8046013";
             case "modifyRadioValueOnEnum":
                 return "Does not work on JDK8";
+            case "obtainAndComputeTest":
+                return "Browser doesn't support addEventListener or attachEvent";
         }
         return null;
     }
diff --git a/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java b/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java
index 149aba1..1a77f9e 100644
--- a/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java
+++ b/renderer/src/main/java/org/netbeans/html/presenters/render/Show.java
@@ -48,7 +48,7 @@ public abstract class Show {
             show.show(page);
         } catch (IOException ex) {
             throw ex;
-        } catch (Exception ex) {
+        } catch (LinkageError | Exception ex) {
             if (impl == null) {
                 impl = "xdg-open";
             }
diff --git a/webkit/src/test/java/org/netbeans/html/presenters/webkit/Case.java b/webkit/src/test/java/org/netbeans/html/presenters/webkit/Case.java
index 705e020..3861a3f 100644
--- a/webkit/src/test/java/org/netbeans/html/presenters/webkit/Case.java
+++ b/webkit/src/test/java/org/netbeans/html/presenters/webkit/Case.java
@@ -28,27 +28,33 @@ import org.testng.IHookCallBack;
 import org.testng.IHookable;
 import org.testng.ITest;
 import org.testng.ITestResult;
+import org.testng.SkipException;
 import org.testng.annotations.Test;
 
 public final class Case implements ITest, IHookable, Runnable {
     private static final Timer T = new Timer("Interrupted Exception Handler");
     private final Fn.Presenter p;
     private final Method m;
+    private final String skipMsg;
     private Object result;
     private Object inst;
 
-    Case(Fn.Presenter p, Method m) {
+    Case(Fn.Presenter p, Method m, String skipMsg) {
         this.p = p;
         this.m = m;
+        this.skipMsg = skipMsg;
     }
 
     @Override
     public String getTestName() {
-        return m.getName();
+        return m != null ? m.getName() : skipMsg;
     }
 
     @Test
     public synchronized void executeTest() throws Exception {
+        if (skipMsg != null) {
+            throw new SkipException(skipMsg);
+        }
         if (result == null) {
             Executor exec = (Executor) p;
             exec.execute(this);
diff --git a/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkJavaScriptTest.java b/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkJavaScriptTest.java
index 0a294e8..9efd3b0 100644
--- a/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkJavaScriptTest.java
+++ b/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkJavaScriptTest.java
@@ -46,22 +46,31 @@ public class GtkJavaScriptTest extends JavaScriptTCK {
     }
 
     @Factory public static Object[] compatibilityTests() throws Exception {
+        String skipMsg = null;
         Runnable onPageLoaded = GtkJavaScriptTest::initialized;
 
-        // BEGIN: org.netbeans.html.presenters.webkit.GtkJavaScriptTest
-        final WebKitPresenter headlessPresenter = new WebKitPresenter(true);
-        final BrowserBuilder bb = BrowserBuilder.newBrowser(headlessPresenter).
-            loadFinished(onPageLoaded).
-            loadPage("empty.html");
-        // END: org.netbeans.html.presenters.webkit.GtkJavaScriptTest
+        Future<Void> future;
+        try {
+            // BEGIN: org.netbeans.html.presenters.webkit.GtkJavaScriptTest
+            final WebKitPresenter headlessPresenter = new WebKitPresenter(true);
+            final BrowserBuilder bb = BrowserBuilder.newBrowser(headlessPresenter).
+                loadFinished(onPageLoaded).
+                loadPage("empty.html");
+            // END: org.netbeans.html.presenters.webkit.GtkJavaScriptTest
 
-        Future<Void> future = Executors.newSingleThreadExecutor().submit(new Callable<Void>() {
-            @Override
-            public Void call() throws Exception {
-                bb.showAndWait();
-                return null;
-            }
-        });
+            future = Executors.newSingleThreadExecutor().submit(new Callable<Void>() {
+                @Override
+                public Void call() throws Exception {
+                    bb.showAndWait();
+                    return null;
+                }
+            });
+        } catch (LinkageError err) {
+            err.printStackTrace();
+            return new Object[] {
+                new Case(null, null, err.getMessage())
+            };
+        }
 
         List<Object> res = new ArrayList<>();
         try {
@@ -78,7 +87,7 @@ public class GtkJavaScriptTest extends JavaScriptTCK {
             for (Class c : arr) {
                 for (Method m : c.getMethods()) {
                     if (m.getAnnotation(test) != null) {
-                        res.add(new Case(browserPresenter, m));
+                        res.add(new Case(browserPresenter, m, null));
                     }
                 }
             }
diff --git a/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkKnockoutTest.java b/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkKnockoutTest.java
index 8cb518f..0318685 100644
--- a/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkKnockoutTest.java
+++ b/webkit/src/test/java/org/netbeans/html/presenters/webkit/GtkKnockoutTest.java
@@ -58,10 +58,10 @@ public final class GtkKnockoutTest extends KnockoutTCK {
     private static Class<?> browserClass;
     private static Fn.Presenter browserContext;
     private static final Timeout WATCHER = new Timeout(60000);
-    
+
     public GtkKnockoutTest() {
     }
-    
+
     @Factory public static Object[] compatibilityTests() throws Exception {
         Class[] arr = testClasses();
         for (int i = 0; i < arr.length; i++) {
@@ -70,22 +70,30 @@ public final class GtkKnockoutTest extends KnockoutTCK {
                 "All classes loaded by the same classloader"
             );
         }
-        
+
         URI uri = DynamicHTTP.initServer();
-    
-        final BrowserBuilder bb = BrowserBuilder.newBrowser(
-            new WebKitPresenter(true)
-        ).loadClass(GtkKnockoutTest.class).
-            loadPage(uri.toString()).
-            invoke("initialized");
-        
-        Future<Void> future = Executors.newSingleThreadExecutor().submit(new Callable<Void>() {
-            @Override
-            public Void call() {
-                bb.showAndWait();
-                return null;
-            }
-        });
+
+        Future<Void> future;
+        try {
+            final BrowserBuilder bb = BrowserBuilder.newBrowser(
+                new WebKitPresenter(true)
+            ).loadClass(GtkKnockoutTest.class).
+                loadPage(uri.toString()).
+                invoke("initialized");
+
+            future = Executors.newSingleThreadExecutor().submit(new Callable<Void>() {
+                @Override
+                public Void call() {
+                    bb.showAndWait();
+                    return null;
+                }
+            });
+        } catch (LinkageError err) {
+            err.printStackTrace();
+            return new Object[]{
+                new Case(null, null, err.getMessage())
+            };
+        }
 
         List<Object> res = new ArrayList<>();
         try {
@@ -116,7 +124,7 @@ public final class GtkKnockoutTest extends KnockoutTCK {
             asSubclass(Annotation.class);
         for (Method m : c.getMethods()) {
             if (m.getAnnotation(koTest) != null) {
-                res.add(new Case(browserContext, m));
+                res.add(new Case(browserContext, m, null));
             }
         }
     }
@@ -127,13 +135,13 @@ public final class GtkKnockoutTest extends KnockoutTCK {
         }
         return browserClass.getClassLoader();
     }
-    
+
     public static synchronized void initialized(Class<?> browserCls) throws Exception {
         browserClass = browserCls;
         browserContext = Fn.activePresenter();
         GtkKnockoutTest.class.notifyAll();
     }
-    
+
     public static void initialized() throws Exception {
         Assert.assertSame(GtkKnockoutTest.class.getClassLoader(),
             ClassLoader.getSystemClassLoader(),
@@ -142,7 +150,7 @@ public final class GtkKnockoutTest extends KnockoutTCK {
         GtkKnockoutTest.initialized(GtkKnockoutTest.class);
         browserContext = Fn.activePresenter();
     }
-    
+
     @Override
     public BrwsrCtx createContext() {
         KO4J ko4j = new KO4J();
@@ -166,7 +174,7 @@ public final class GtkKnockoutTest extends KnockoutTCK {
         }
         return json;
     }
-    
+
     @JavaScriptBody(args = {}, body = "return new Object();")
     private static native Object createJSON();
     @JavaScriptBody(args = { "json", "key", "value" }, body = "json[key] = value;")
@@ -179,7 +187,7 @@ public final class GtkKnockoutTest extends KnockoutTCK {
     )
     public native Object executeScript(String script, Object[] arguments);
 
-    @JavaScriptBody(args = {  }, body = 
+    @JavaScriptBody(args = {  }, body =
           "var h;"
         + "if (!!window && !!window.location && !!window.location.href)\n"
         + "  h = window.location.href;\n"
@@ -188,7 +196,7 @@ public final class GtkKnockoutTest extends KnockoutTCK {
         + "return h;\n"
     )
     private static native String findBaseURL();
-    
+
     @Override
     public URI prepareURL(String content, String mimeType, String[] parameters) {
         try {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists