{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":34677782,"defaultBranch":"main","name":"java-html-sanitizer","ownerLogin":"OWASP","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-04-27T16:26:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/155815?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711382921.0","currentOid":""},"activityList":{"items":[{"before":"43089899bae8fae0cb0016c5700beace7ddd26f0","after":"f729a089b20aef49ed9ffd7ed1c7e207eee71dc5","ref":"refs/heads/main","pushedAt":"2024-03-26T15:57:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Merge branch 'main' of github.com:OWASP/java-html-sanitizer","shortMessageHtmlLink":"Merge branch 'main' of github.com:OWASP/java-html-sanitizer"}},{"before":"fbfe3cc7b3540bfb9be29245c2961a10e1ca4aa5","after":"43089899bae8fae0cb0016c5700beace7ddd26f0","ref":"refs/heads/main","pushedAt":"2024-03-25T18:41:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Update SECURITY.md","shortMessageHtmlLink":"Update SECURITY.md"}},{"before":"6d5515848e3e2b02f98fc581d987b9e943e8251d","after":"fbfe3cc7b3540bfb9be29245c2961a10e1ca4aa5","ref":"refs/heads/main","pushedAt":"2024-03-25T18:32:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"empiricism: remove uses of Guava\n\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"empiricism: remove uses of Guava"}},{"before":"dd92edf691b0eabf87d0faa38165d36c058b94cf","after":"6d5515848e3e2b02f98fc581d987b9e943e8251d","ref":"refs/heads/main","pushedAt":"2024-03-25T18:22:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"RELEASE-checklist: update with changes to module arrangement\n\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"RELEASE-checklist: update with changes to module arrangement"}},{"before":"98c137a4129666493673b08da26472b59b08548d","after":"dd92edf691b0eabf87d0faa38165d36c058b94cf","ref":"refs/heads/main","pushedAt":"2024-03-25T16:10:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Bumped dev version","shortMessageHtmlLink":"Bumped dev version"}},{"before":"a9ac1d63c5318486e9620f5089075d3c6e99c1c3","after":"98c137a4129666493673b08da26472b59b08548d","ref":"refs/heads/main","pushedAt":"2024-03-25T15:38:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"avoid duplicate module entries between aggregate and aparent\n\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"avoid duplicate module entries between aggregate and aparent"}},{"before":"630524d00e3cd0052330b2214b8d0d5a944ff40c","after":"a9ac1d63c5318486e9620f5089075d3c6e99c1c3","ref":"refs/heads/main","pushedAt":"2024-03-25T15:26:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Updated SECURITY.MD file with relevant details. (#324)\n\n* Update SECURITY.md\r\n\r\n* Update SECURITY.md\r\n\r\nI have updated the Security.md file by listing all the versions released yet and the latest version that is being worked on is being supported with security patches.\r\n\r\nSteps to report a vulnerablity is same as mentioned in the docs.\r\n\r\n* Update SECURITY.md\r\n\r\n* Update SECURITY.md","shortMessageHtmlLink":"Updated SECURITY.MD file with relevant details. (#324)"}},{"before":"f9bc21d477362c536df3a7b16cfe4af8ae488ac2","after":null,"ref":"refs/heads/shims-for-java89-compat","pushedAt":"2024-03-25T15:24:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"}},{"before":"032d11b8931442a026d12a3b44176652e631a8a1","after":"630524d00e3cd0052330b2214b8d0d5a944ff40c","ref":"refs/heads/main","pushedAt":"2024-03-25T15:24:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Shim Java 10 collections APIs (#328)\n\nThis commit adds Maven `` to the parent POM and two small\r\nsub-modules: java8-shim and java10-shim.\r\n\r\nJava8-shim defines an interface with methods like `.listCopyOf`\r\ncorresponding to Java 10's `java.util.List.copyOf`.\r\n\r\nOn Java 8-9, those APIs delegate to a homegrown equivalent.\r\nOn Java 10 and later, those APIs just call out to the standard\r\nlibrary functions.\r\n\r\nI did the following experiment to see how well this JIT inlines.\r\nThe trace far below is derived by adding the main method below to\r\nJava8Shim and running the command line second from bottom\r\n\r\n```java\r\n @Override public void main(String... argv) {\r\n List> ls = new ArrayList<>();\r\n for (int i = 0; i < 10000000; ++i) {\r\n ls.add(get().listOf(i, i + 1, i + 2));\r\n }\r\n }\r\n```\r\n\r\nGetting JIT diagnostics:\r\n\r\n```sh\r\njavac --release 8 -d out src/main/java/org/owasp/shim/Java8Shim.java \\\r\n src/main/java/org/owasp/shim/ForJava8.java\r\njavac --release 10 -d out -cp out \\\r\n src/main/java/org/owasp/shim/ForJava9AndLater.java\r\njava -cp out \\\r\n -XX:+UnlockDiagnosticVMOptions \\\r\n -XX:CompileCommand=print,org/owasp/shim/ForJava9AndLater.listOf \\\r\n org.owasp.shim.Java8Shim\r\n```\r\n\r\n
Dump with -XX:CompileCommand=print\r\n\r\n```\r\n 0x00000001144e9380: ; ImmutableOopMap {rbp=Oop [0]=Oop [8]=Oop }\r\n ;*anewarray {reexecute=0 rethrow=0 return_oop=1}\r\n ; - java.util.List::of@1 (line 847)\r\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\r\n 0x00000001144e9380: fc83 9bff | 488b d8e9 | 27ff ffff\r\n\r\n 0x00000001144e938c: ; {metadata('java/util/ImmutableCollections$ListN')}\r\n 0x00000001144e938c: 48be 2807 | 1b44 0100 | 0000 488b\r\n\r\n 0x00000001144e9398: ; {runtime_call _new_instance_Java}\r\n 0x00000001144e9398: eb66 90e8\r\n\r\n 0x00000001144e939c: ; ImmutableOopMap {rbp=Oop [8]=Oop }\r\n ;*new {reexecute=0 rethrow=0 return_oop=1}\r\n ; - java.util.ImmutableCollections::listFromTrustedArray@115 (line 220)\r\n ; - java.util.List::of@16 (line 847)\r\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\r\n 0x00000001144e939c: 60ad 9bff | ebac bd01 | 0000 004c | 8bc9 eb05 | bd02 0000 | 004c 890c | 24eb 0633 | ed4c 8914\r\n 0x00000001144e93bc: 24be 45ff\r\n\r\n 0x00000001144e93c0: ; {runtime_call UncommonTrapBlob}\r\n 0x00000001144e93c0: ffff 90e8\r\n\r\n 0x00000001144e93c4: ; ImmutableOopMap {[0]=Oop [8]=Oop }\r\n ;*ifnonnull {reexecute=1 rethrow=0 return_oop=0}\r\n ; - (reexecute) java.util.Objects::requireNonNull@1 (line 208)\r\n ; - java.util.ImmutableCollections::listFromTrustedArray@42 (line 213)\r\n ; - java.util.List::of@16 (line 847)\r\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\r\n 0x00000001144e93c4: 3842 91ff | 488b f0eb | 0348 8bf0 | 4883 c430\r\n\r\n 0x00000001144e93d4: ; {runtime_call _rethrow_Java}\r\n 0x00000001144e93d4: 5de9 26b0\r\n\r\n 0x00000001144e93d8: ; {internal_word}\r\n 0x00000001144e93d8: 9bff 49ba | 6093 4e14 | 0100 0000 | 4d89 9760\r\n\r\n 0x00000001144e93e8: ; {runtime_call SafepointBlob}\r\n 0x00000001144e93e8: 0300 00e9 | 1053 91ff | f4f4 f4f4 | f4f4 f4f4 | f4f4 f4f4 | f4f4 f4f4\r\n[Exception Handler]\r\n 0x00000001144e9400: ; {no_reloc}\r\n 0x00000001144e9400: e97b f59a | ffe8 0000 | 0000 4883\r\n\r\n 0x00000001144e940c: ; {runtime_call DeoptimizationBlob}\r\n 0x00000001144e940c: 2c24 05e9 | 8c45 91ff | f4f4 f4f4\r\n[/MachCode]\r\n```\r\n\r\niiuc, when there is one implementation of an interface loaded, the interface methods can devirtualize and the below shows that ForJava9AndLater::listOf with 3 arguments inlines to a null check and delegates the rest to `listFromTrustedArray`.\r\n\r\n```\r\n 0x00000001144e93c4: ; ImmutableOopMap {[0]=Oop [8]=Oop }\r\n ;*ifnonnull {reexecute=1 rethrow=0 return_oop=0}\r\n ; - (reexecute) java.util.Objects::requireNonNull@1 (line 208)\r\n ; - java.util.ImmutableCollections::listFromTrustedArray@42 (line 213)\r\n ; - java.util.List::of@16 (line 847)\r\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\r\n```\r\n\r\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"Shim Java 10 collections APIs (#328)"}},{"before":"f1af8031c2e6ae15c68df55a05830daadf8fcaa4","after":"f9bc21d477362c536df3a7b16cfe4af8ae488ac2","ref":"refs/heads/shims-for-java89-compat","pushedAt":"2024-03-25T15:21:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Merge branch 'main' into shims-for-java89-compat\n\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"Merge branch 'main' into shims-for-java89-compat"}},{"before":null,"after":"f1af8031c2e6ae15c68df55a05830daadf8fcaa4","ref":"refs/heads/shims-for-java89-compat","pushedAt":"2024-03-23T06:47:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Shim Java 10 collections APIs\n\nThis commit adds Maven `` to the parent POM and two small\nsub-modules: java8-shim and java10-shim.\n\nJava8-shim defines an interface with methods like `.listCopyOf`\ncorresponding to Java 10's `java.util.List.copyOf`.\n\nOn Java 8-9, those APIs delegate to a homegrown equivalent.\nOn Java 10 and later, those APIs just call out to the standard\nlibrary functions.\n\nI did the following experiment to see how well this JIT inlines.\nThe trace far below is derived by adding the main method below to\nJava8Shim and running the command line second from bottom\n\n```java\n @Override public void main(String... argv) {\n List> ls = new ArrayList<>();\n for (int i = 0; i < 10000000; ++i) {\n ls.add(get().listOf(i, i + 1, i + 2));\n }\n }\n```\n\nGetting JIT diagnostics:\n\n```sh\njavac --release 8 -d out src/main/java/org/owasp/shim/Java8Shim.java \\\n src/main/java/org/owasp/shim/ForJava8.java\njavac --release 10 -d out -cp out \\\n src/main/java/org/owasp/shim/ForJava9AndLater.java\njava -cp out \\\n -XX:+UnlockDiagnosticVMOptions \\\n -XX:CompileCommand=print,org/owasp/shim/ForJava9AndLater.listOf \\\n org.owasp.shim.Java8Shim\n```\n\n
Dump with -XX:CompileCommand=print\n\n```\n 0x00000001144e9380: ; ImmutableOopMap {rbp=Oop [0]=Oop [8]=Oop }\n ;*anewarray {reexecute=0 rethrow=0 return_oop=1}\n ; - java.util.List::of@1 (line 847)\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\n 0x00000001144e9380: fc83 9bff | 488b d8e9 | 27ff ffff\n\n 0x00000001144e938c: ; {metadata('java/util/ImmutableCollections$ListN')}\n 0x00000001144e938c: 48be 2807 | 1b44 0100 | 0000 488b\n\n 0x00000001144e9398: ; {runtime_call _new_instance_Java}\n 0x00000001144e9398: eb66 90e8\n\n 0x00000001144e939c: ; ImmutableOopMap {rbp=Oop [8]=Oop }\n ;*new {reexecute=0 rethrow=0 return_oop=1}\n ; - java.util.ImmutableCollections::listFromTrustedArray@115 (line 220)\n ; - java.util.List::of@16 (line 847)\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\n 0x00000001144e939c: 60ad 9bff | ebac bd01 | 0000 004c | 8bc9 eb05 | bd02 0000 | 004c 890c | 24eb 0633 | ed4c 8914\n 0x00000001144e93bc: 24be 45ff\n\n 0x00000001144e93c0: ; {runtime_call UncommonTrapBlob}\n 0x00000001144e93c0: ffff 90e8\n\n 0x00000001144e93c4: ; ImmutableOopMap {[0]=Oop [8]=Oop }\n ;*ifnonnull {reexecute=1 rethrow=0 return_oop=0}\n ; - (reexecute) java.util.Objects::requireNonNull@1 (line 208)\n ; - java.util.ImmutableCollections::listFromTrustedArray@42 (line 213)\n ; - java.util.List::of@16 (line 847)\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\n 0x00000001144e93c4: 3842 91ff | 488b f0eb | 0348 8bf0 | 4883 c430\n\n 0x00000001144e93d4: ; {runtime_call _rethrow_Java}\n 0x00000001144e93d4: 5de9 26b0\n\n 0x00000001144e93d8: ; {internal_word}\n 0x00000001144e93d8: 9bff 49ba | 6093 4e14 | 0100 0000 | 4d89 9760\n\n 0x00000001144e93e8: ; {runtime_call SafepointBlob}\n 0x00000001144e93e8: 0300 00e9 | 1053 91ff | f4f4 f4f4 | f4f4 f4f4 | f4f4 f4f4 | f4f4 f4f4\n[Exception Handler]\n 0x00000001144e9400: ; {no_reloc}\n 0x00000001144e9400: e97b f59a | ffe8 0000 | 0000 4883\n\n 0x00000001144e940c: ; {runtime_call DeoptimizationBlob}\n 0x00000001144e940c: 2c24 05e9 | 8c45 91ff | f4f4 f4f4\n[/MachCode]\n```\n\niiuc, when there is one implementation of an interface loaded, the interface methods can devirtualize and the below shows that ForJava9AndLater::listOf with 3 arguments inlines to a null check and delegates the rest to `listFromTrustedArray`.\n\n```\n 0x00000001144e93c4: ; ImmutableOopMap {[0]=Oop [8]=Oop }\n ;*ifnonnull {reexecute=1 rethrow=0 return_oop=0}\n ; - (reexecute) java.util.Objects::requireNonNull@1 (line 208)\n ; - java.util.ImmutableCollections::listFromTrustedArray@42 (line 213)\n ; - java.util.List::of@16 (line 847)\n ; - org.owasp.shim.ForJava9AndLater::listOf@3 (line 21)\n```\n\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"Shim Java 10 collections APIs"}},{"before":"cd61b17d04dbf185c14e988e454e86cf3e688d92","after":"032d11b8931442a026d12a3b44176652e631a8a1","ref":"refs/heads/main","pushedAt":"2024-02-05T17:02:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Update valid word-break CSS property values (#315)\n\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Update valid word-break CSS property values (#315)"}},{"before":"3c86741c5abada5dd98c7342db7631d76fceafd8","after":"cd61b17d04dbf185c14e988e454e86cf3e688d92","ref":"refs/heads/main","pushedAt":"2024-02-02T20:27:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Cleanup redundant specification of type parameters (#320)\n\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Cleanup redundant specification of type parameters (#320)"}},{"before":"c42cc40525de469acc220bc47ef785a3daedbdc4","after":"3c86741c5abada5dd98c7342db7631d76fceafd8","ref":"refs/heads/main","pushedAt":"2024-02-02T18:46:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Add overflow-wrap to CssSchema definition list (#312)\n\nSigned-off-by: Sven Strickroth \r\nCo-authored-by: Mike Samuel ","shortMessageHtmlLink":"Add overflow-wrap to CssSchema definition list (#312)"}},{"before":"3e32abc00f2064fd80b878adcf3529eb0babb136","after":"c42cc40525de469acc220bc47ef785a3daedbdc4","ref":"refs/heads/main","pushedAt":"2024-02-02T18:44:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Undo JDK6 hack (#311)\n\n* Undo AutoClosable hack introduced for JDK6 compatibility\r\n\r\nThis basically reverts commit f7e09249ad65b8f5a276e3fdd079f4c48b6eef79 (and commit 74c6dd0247ea8c676aa8ce9db8c1497db2763aa5).\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Directly use Integer.compare\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n---------\r\n\r\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Undo JDK6 hack (#311)"}},{"before":"2901ef0d36ada245ba81d1e063e4b1388da2e60c","after":"3e32abc00f2064fd80b878adcf3529eb0babb136","ref":"refs/heads/main","pushedAt":"2024-02-02T18:42:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Avoid unnecessary copies (#302)\n\n* Avoid unnecessary copies\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Update CssSchema.java\r\n\r\n---------\r\n\r\nSigned-off-by: Sven Strickroth \r\nCo-authored-by: Mike Samuel ","shortMessageHtmlLink":"Avoid unnecessary copies (#302)"}},{"before":"58fac009fa89c056fa53358568c4f9d0191b2e9e","after":"2901ef0d36ada245ba81d1e063e4b1388da2e60c","ref":"refs/heads/main","pushedAt":"2024-02-02T16:48:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Fix repeatedly adding rel values (#307)\n\n* Don't allow duplicates in rel attribute for links\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Use lower case link rel attribute words\r\n\r\n---------\r\n\r\nSigned-off-by: Sven Strickroth \r\nCo-authored-by: Mike Samuel ","shortMessageHtmlLink":"Fix repeatedly adding rel values (#307)"}},{"before":"65d48eaf08e08c96e3cfead2e6bf0824b397e191","after":"58fac009fa89c056fa53358568c4f9d0191b2e9e","ref":"refs/heads/main","pushedAt":"2024-02-02T16:41:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Unbreak CssSchema.withProperties(Map) (#313)\n\nThis method never worked before.\r\n\r\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Unbreak CssSchema.withProperties(Map) (#313)"}},{"before":"e8aa0f1b75ab81eea97ef173fefc023a3e16963d","after":"65d48eaf08e08c96e3cfead2e6bf0824b397e191","ref":"refs/heads/main","pushedAt":"2024-02-02T16:41:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Drop travis badge and add GitHub workflow badge (#319)\n\n* Drop travis badge\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Add badge for GitHub CI workflow\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n---------\r\n\r\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Drop travis badge and add GitHub workflow badge (#319)"}},{"before":"a52123afc43e9a50801654fb58fe835dd0803d27","after":null,"ref":"refs/heads/fix-rel-test-jdk-10-reqs-and-foreign-content","pushedAt":"2024-02-02T04:24:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"}},{"before":"73b86b585456e2113daba14835d57709f69b7aec","after":"e8aa0f1b75ab81eea97ef173fefc023a3e16963d","ref":"refs/heads/main","pushedAt":"2024-02-02T04:24:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Get tests passing and recognize foreign content nodes better (#318)\n\nPrepping for a release.\r\n\r\nOne test was not passing:\r\nHtmlBuilderTest.testRelLinksWhenRelisPartOfData\r\n\r\nI was also getting IDE warnings that there were some uses\r\nof `@since 10` APIs which made it hard to run tests\r\noutside mvn.\r\n\r\nThis commit cleans up those issues and a few warnings\r\nabout `@deprecated` in javadoc without a corresponding\r\nannotation.\r\n\r\nSigned-off-by: Mike Samuel ","shortMessageHtmlLink":"Get tests passing and recognize foreign content nodes better (#318)"}},{"before":"62750d527ad2ad58b1b9a935f8632092d743bdc4","after":"73b86b585456e2113daba14835d57709f69b7aec","ref":"refs/heads/main","pushedAt":"2024-02-02T04:19:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Increase test coverage (#314)\n\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Increase test coverage (#314)"}},{"before":"b3cba12bd6d2d6ec6586b7c7345f514c73d2f764","after":null,"ref":"refs/heads/dependabot/maven/parent/com.google.protobuf-protobuf-java-3.16.3","pushedAt":"2024-02-02T04:16:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"}},{"before":"68662fcade34686a7dffef3000e26cf7efe9a825","after":"62750d527ad2ad58b1b9a935f8632092d743bdc4","ref":"refs/heads/main","pushedAt":"2024-02-02T04:16:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Bump protobuf-java from 3.9.1 to 3.16.3 in /parent (#274)\n\nBumps [protobuf-java](https://github.com/protocolbuffers/protobuf) from 3.9.1 to 3.16.3.\r\n- [Release notes](https://github.com/protocolbuffers/protobuf/releases)\r\n- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py)\r\n- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.9.1...v3.16.3)\r\n\r\n---\r\nupdated-dependencies:\r\n- dependency-name: com.google.protobuf:protobuf-java\r\n dependency-type: direct:production\r\n...\r\n\r\nSigned-off-by: dependabot[bot] \r\nCo-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>","shortMessageHtmlLink":"Bump protobuf-java from 3.9.1 to 3.16.3 in /parent (#274)"}},{"before":"0166eb4da7c9ed00a95911aeaa66d0aa83b19527","after":"68662fcade34686a7dffef3000e26cf7efe9a825","ref":"refs/heads/main","pushedAt":"2024-02-02T04:15:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Fix allowAttributes().globally() (#247) (#248)\n\n* Fix allowAttributes().globally() (#247)\r\n\r\nAdd guard to .globally() method of HtmlPolicyBuilder to prevent\r\nArrayOutOfBoundsException when checking to see if the zeroth\r\nelement of the attributeNames list contains 'style'.\r\n\r\nThis restores behaviour present in version 202180219.1 which\r\nallowed for an empty allowed attributes names list to be\r\nspecified globally through the builder.\r\n\r\n* Allow styling when any attribute name matches \"style\" globally\r\n\r\n---------\r\n\r\nCo-authored-by: Mike Samuel ","shortMessageHtmlLink":"Fix allowAttributes().globally() (#247) (#248)"}},{"before":"e4e82ffc8a0f849a2e9f0bd5e61cd6b8671ab01b","after":"0166eb4da7c9ed00a95911aeaa66d0aa83b19527","ref":"refs/heads/main","pushedAt":"2024-02-02T04:07:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Add GitHub actions for testing (#305)\n\n* Add GitHub actions for testing\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Store artifacts\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Only store one artifact\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n---------\r\n\r\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Add GitHub actions for testing (#305)"}},{"before":"4870e56845d467cd13d30723c9d52815cdb06099","after":"e4e82ffc8a0f849a2e9f0bd5e61cd6b8671ab01b","ref":"refs/heads/main","pushedAt":"2024-02-02T04:06:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Remove mentionings of guava (#303)\n\n* Remove the guava dependency from README.md\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Remove guava also from the documentation\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n* Update RELEASE-checklist.sh to not contain guava any more\r\n\r\nSigned-off-by: Sven Strickroth \r\n\r\n---------\r\n\r\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Remove mentionings of guava (#303)"}},{"before":"3e6d6d8ec4b1570575e92cfbdaa7232980ddf9b1","after":"4870e56845d467cd13d30723c9d52815cdb06099","ref":"refs/heads/main","pushedAt":"2024-02-02T04:05:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Add .gitattributes (#308)\n\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Add .gitattributes (#308)"}},{"before":"5ae6c89bf88bdc5af90bb3e6c02c3a76df80ad36","after":"3e6d6d8ec4b1570575e92cfbdaa7232980ddf9b1","ref":"refs/heads/main","pushedAt":"2024-02-02T03:55:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Move test helper to test directory (#317)\n\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Move test helper to test directory (#317)"}},{"before":"91c5fdc146a01aab1e8b0db38be449a960fe88c1","after":"5ae6c89bf88bdc5af90bb3e6c02c3a76df80ad36","ref":"refs/heads/main","pushedAt":"2024-02-02T03:55:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"mikesamuel","name":"Mike Samuel","path":"/mikesamuel","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/368886?s=80&v=4"},"commit":{"message":"Drop unnecessary import (#316)\n\nSigned-off-by: Sven Strickroth ","shortMessageHtmlLink":"Drop unnecessary import (#316)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEH9FEQwA","startCursor":null,"endCursor":null}},"title":"Activity ยท OWASP/java-html-sanitizer"}