I have made some minor text changes to the file, which is a nice addition. Basically, I made the headings consistently sentence case (they were a mix of sentence case and title case), changed passive voice to active voice wherever I could, and tweaked a couple of minor things.
a On Mon, Dec 13, 2021 at 8:51 AM Harbs <harbs.li...@gmail.com> wrote: > I created a page about swcs: > https://apache.github.io/royale-docs/libraries/library-basics < > https://apache.github.io/royale-docs/libraries/library-basics> > > I added a paragraph about the GCL swc, but I’m really not very clear on > how it works... > > > On Dec 12, 2021, at 5:46 PM, Harbs <harbs.li...@gmail.com> wrote: > > > > I spent some more time on this, but I’m not sure how to get the compiler > to realize that we need the goog files. > > > > For Event we have this: > > > > goog.addDependency('../../../org/apache/royale/events/Event.js', > ['org.apache.royale.events.Event'], ['goog.events.Event', > 'org.apache.royale.events.IRoyaleEvent']); > > > > But Royale Event subclasses goog.events.Event. > > > > How do I tell the compiler that > org.apache.royale.utils.string.sanitizeUrl requires goog.html.SafeUrl ? > > > > The same for org.apache.royale.utils.string.sanitizeHtml with > goog.html.sanitizer.HtmlSanitizer and goog.html.SafeHtml. > > > > Alex? Josh? Greg? > > > > Thanks, > > Harbs > > > >> On Dec 12, 2021, at 2:13 AM, Harbs <harbs.li...@gmail.com> wrote: > >> > >> I added code for sanitizing, but it’s not working because the goog.html > files are not being copied. I don’t know what needs to be done to make that > happen. > >> > >> Harbs > >> > >>> On Dec 12, 2021, at 2:12 AM, ha...@apache.org wrote: > >>> > >>> This is an automated email from the ASF dual-hosted git repository. > >>> > >>> harbs pushed a commit to branch feature/sanitize > >>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git > >>> > >>> commit 1b12594c60420d3503f9e366f314c9d875e16ddb > >>> Author: Harbs <ha...@in-tools.com> > >>> AuthorDate: Sun Dec 12 02:12:05 2021 +0200 > >>> > >>> Added sanitizeUrl and sanitizeHtml > >>> --- > >>> .../projects/Core/src/main/royale/CoreClasses.as | 2 + > >>> .../org/apache/royale/utils/string/sanitizeHtml.as | 38 ++++++++++++++ > >>> .../org/apache/royale/utils/string/sanitizeUrl.as | 36 +++++++++++++ > >>> .../src/test/royale/flexUnitTests/CoreTester.as | 1 + > >>> .../{CoreTester.as => SanitizeTest.as} | 59 > ++++++++++++++-------- > >>> 5 files changed, 115 insertions(+), 21 deletions(-) > >>> > >>> diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as > b/frameworks/projects/Core/src/main/royale/CoreClasses.as > >>> index 21593fd..dd088eb 100644 > >>> --- a/frameworks/projects/Core/src/main/royale/CoreClasses.as > >>> +++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as > >>> @@ -342,6 +342,8 @@ internal class CoreClasses > >>> import org.apache.royale.utils.string.trimRight; trimRight; > >>> import org.apache.royale.utils.string.trimLeft; trimLeft; > >>> import org.apache.royale.utils.string.cacheBust; cacheBust; > >>> + import org.apache.royale.utils.string.sanitizeHtml; sanitizeHtml; > >>> + import org.apache.royale.utils.string.sanitizeUrl; sanitizeUrl; > >>> > >>> import org.apache.royale.utils.date.addDays; addDays; > >>> import org.apache.royale.utils.date.addHours; addHours; > >>> diff --git > a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeHtml.as > b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeHtml.as > >>> new file mode 100644 > >>> index 0000000..360ef63 > >>> --- /dev/null > >>> +++ > b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeHtml.as > >>> @@ -0,0 +1,38 @@ > >>> > +//////////////////////////////////////////////////////////////////////////////// > >>> +// > >>> +// Licensed to the Apache Software Foundation (ASF) under one or more > >>> +// contributor license agreements. See the NOTICE file distributed > with > >>> +// this work for additional information regarding copyright > ownership. > >>> +// The ASF licenses this file to You under the Apache License, > Version 2.0 > >>> +// (the "License"); you may not use this file except in compliance > with > >>> +// the License. You may obtain a copy of the License at > >>> +// > >>> +// http://www.apache.org/licenses/LICENSE-2.0 > >>> +// > >>> +// Unless required by applicable law or agreed to in writing, > software > >>> +// distributed under the License is distributed on an "AS IS" BASIS, > >>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > >>> +// See the License for the specific language governing permissions > and > >>> +// limitations under the License. > >>> +// > >>> > +//////////////////////////////////////////////////////////////////////////////// > >>> +package org.apache.royale.utils.string > >>> +{ > >>> + COMPILE::JS{ > >>> + import goog.html.sanitizer.HtmlSanitizer; > >>> + import goog.html.SafeHtml; > >>> + } > >>> + > >>> + public function sanitizeHtml(html:String):String > >>> + { > >>> + COMPILE::JS > >>> + { > >>> + return > SafeHtml.unwrap(HtmlSanitizer.sanitize(html)); > >>> + } > >>> + //TODO sanitize in swf > >>> + COMPILE::SWF > >>> + { > >>> + return html; > >>> + } > >>> + } > >>> +} > >>> \ No newline at end of file > >>> diff --git > a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeUrl.as > b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeUrl.as > >>> new file mode 100644 > >>> index 0000000..cd4151d > >>> --- /dev/null > >>> +++ > b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/string/sanitizeUrl.as > >>> @@ -0,0 +1,36 @@ > >>> > +//////////////////////////////////////////////////////////////////////////////// > >>> +// > >>> +// Licensed to the Apache Software Foundation (ASF) under one or more > >>> +// contributor license agreements. See the NOTICE file distributed > with > >>> +// this work for additional information regarding copyright > ownership. > >>> +// The ASF licenses this file to You under the Apache License, > Version 2.0 > >>> +// (the "License"); you may not use this file except in compliance > with > >>> +// the License. You may obtain a copy of the License at > >>> +// > >>> +// http://www.apache.org/licenses/LICENSE-2.0 > >>> +// > >>> +// Unless required by applicable law or agreed to in writing, > software > >>> +// distributed under the License is distributed on an "AS IS" BASIS, > >>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > >>> +// See the License for the specific language governing permissions > and > >>> +// limitations under the License. > >>> +// > >>> > +//////////////////////////////////////////////////////////////////////////////// > >>> +package org.apache.royale.utils.string > >>> +{ > >>> + COMPILE::JS{ > >>> + import goog.html.SafeUrl; > >>> + import goog.html.SafeUrl; > >>> + } > >>> + public function sanitizeUrl(url:String):String > >>> + { > >>> + COMPILE::JS{ > >>> + return SafeUrl.unwrap(SafeUrl.sanitize(url)); > >>> + } > >>> + > >>> + //TODO sanitize in swf > >>> + COMPILE::SWF{ > >>> + return url; > >>> + } > >>> + } > >>> +} > >>> \ No newline at end of file > >>> diff --git > a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > b/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > >>> index c8adc02..9441daf 100644 > >>> --- > a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > >>> +++ > b/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > >>> @@ -42,5 +42,6 @@ package flexUnitTests > >>> public var keyConverterTest:KeyConverterTest; > >>> public var keyboardEventConverterTest:KeyboardEventConverterTest; > >>> public var stringUtilsTest:StringUtilsTest; > >>> + public var sanitizerTest:SanitizeTest; > >>> } > >>> } > >>> diff --git > a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > b/frameworks/projects/Core/src/test/royale/flexUnitTests/SanitizeTest.as > >>> similarity index 50% > >>> copy from > frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > >>> copy to > frameworks/projects/Core/src/test/royale/flexUnitTests/SanitizeTest.as > >>> index c8adc02..7173f52 100644 > >>> --- > a/frameworks/projects/Core/src/test/royale/flexUnitTests/CoreTester.as > >>> +++ > b/frameworks/projects/Core/src/test/royale/flexUnitTests/SanitizeTest.as > >>> @@ -18,29 +18,46 @@ > >>> > //////////////////////////////////////////////////////////////////////////////// > >>> package flexUnitTests > >>> { > >>> - import flexUnitTests.language.* > >>> + import org.apache.royale.utils.string.*; > >>> + import org.apache.royale.test.asserts.*; > >>> > >>> - [Suite] > >>> - [RunWith("org.apache.royale.test.runners.SuiteRunner")] > >>> - public class CoreTester > >>> - { > >>> + public class SanitizeTest > >>> + { > >>> + [Before] > >>> + public function setUp():void > >>> + { > >>> + } > >>> > >>> - //language tests > >>> - public var languageTestIs:LanguageTesterTestIs; > >>> - public var languageTestIntUint:LanguageTesterIntUint; > >>> - public var languageTestVector:LanguageTesterTestVector; > >>> - public var languageTestClass:LanguageTesterTestClass; > >>> - public var > languageTestLoopVariants:LanguageTesterTestLoopVariants; > >>> - public var languageTestArraySort:LanguageTesterArraySort; > >>> - public var languageTesttryCatch:LanguageTesterTestTryCatch; > >>> + [After] > >>> + public function tearDown():void > >>> + { > >>> + } > >>> > >>> - //core tests > >>> - public var strandTesterTest:StrandTesterTest; > >>> - public var binaryDataTesterTest:BinaryDataTesterTest; > >>> - public var arrayUtilsTest:ArrayUtilsTest; > >>> - public var dateUtilsTest:DateUtilsTest; > >>> - public var keyConverterTest:KeyConverterTest; > >>> - public var > keyboardEventConverterTest:KeyboardEventConverterTest; > >>> - public var stringUtilsTest:StringUtilsTest; > >>> + [BeforeClass] > >>> + public static function setUpBeforeClass():void > >>> + { > >>> + } > >>> + > >>> + [AfterClass] > >>> + public static function tearDownAfterClass():void > >>> + { > >>> + } > >>> + > >>> + [Test] > >>> + public function testHTML():void > >>> + { > >>> + var safeHtml:String = 'Hello <em>World</em>'; > >>> + assertEquals(safeHtml, sanitizeHtml(safeHtml)); > >>> + } > >>> + > >>> + [Test] > >>> + public function testUrl():void > >>> + { > >>> + var safeUrl:String = "https://foobaz.com" > >>> + assertEquals(safeUrl, sanitizeUrl(safeUrl)); > >>> + } > >>> + > >>> + > >>> + > >>> } > >>> } > >> > > > > -- Andrew Wetmore Editor, Moose House Publications <https://moosehousepress.com/> Editor-Writer, The Apache Software Foundation <https://apache.org/>