From ebcf24f5bd7f2f19dead0bde948720acbbdc3be2 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Thu, 8 Aug 2019 10:02:59 +0200 Subject: [PATCH 01/33] Added WASessionCookieProtectionFilter and renamed WAProtectionFilter into WARemoteAddressProtection filter --- .../README.md | 1 + .../properties.json | 8 +++----- .../WAProtectionFilter.class/README.md | 3 --- .../README.md | 2 +- .../properties.json | 2 +- .../README.md | 3 +++ .../instance/handleFiltered..st | 0 .../instance/remoteAddress.st | 0 .../instance/remoteAddressFromRequest..st | 0 .../instance/verifyRequest..st | 0 .../properties.json | 13 +++++++++++++ .../README.md | 7 +++++++ .../class/browserSessionIDCookieKey.st | 4 ++++ .../instance/browserSessionID.st | 3 +++ .../instance/handleFiltered..st | 15 +++++++++++++++ .../instance/privateBrowserSessionID..st | 3 +++ .../instance/privateBrowserSessionIDSize.st | 4 ++++ .../instance/privateSetBrowserSessionID..st | 19 +++++++++++++++++++ .../instance/privateVerifyBrowserSession..st | 5 +++++ .../instance/respondCookiesRequired..st | 16 ++++++++++++++++ .../properties.json | 13 +++++++++++++ .../instance/protector.st | 2 +- .../monticello.meta/version | 1 - 23 files changed, 112 insertions(+), 12 deletions(-) create mode 100644 repository/Seaside-Core.package/WAAbstractProtectionFilter.class/README.md rename repository/Seaside-Core.package/{WAProtectionFilter.class => WAAbstractProtectionFilter.class}/properties.json (57%) delete mode 100644 repository/Seaside-Core.package/WAProtectionFilter.class/README.md create mode 100644 repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/README.md rename repository/Seaside-Core.package/{WAProtectionFilter.class => WARemoteAddressProtectionFilter.class}/instance/handleFiltered..st (100%) rename repository/Seaside-Core.package/{WAProtectionFilter.class => WARemoteAddressProtectionFilter.class}/instance/remoteAddress.st (100%) rename repository/Seaside-Core.package/{WAProtectionFilter.class => WARemoteAddressProtectionFilter.class}/instance/remoteAddressFromRequest..st (100%) rename repository/Seaside-Core.package/{WAProtectionFilter.class => WARemoteAddressProtectionFilter.class}/instance/verifyRequest..st (100%) create mode 100644 repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/properties.json create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionID.st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json delete mode 100644 repository/Seaside-Tests-Functional.package/monticello.meta/version diff --git a/repository/Seaside-Core.package/WAAbstractProtectionFilter.class/README.md b/repository/Seaside-Core.package/WAAbstractProtectionFilter.class/README.md new file mode 100644 index 000000000..3588a62cc --- /dev/null +++ b/repository/Seaside-Core.package/WAAbstractProtectionFilter.class/README.md @@ -0,0 +1 @@ +A protection filter protects the wrapped request handler, mostly useful to protect against session hijacking. See subclasses for different strategies. \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAProtectionFilter.class/properties.json b/repository/Seaside-Core.package/WAAbstractProtectionFilter.class/properties.json similarity index 57% rename from repository/Seaside-Core.package/WAProtectionFilter.class/properties.json rename to repository/Seaside-Core.package/WAAbstractProtectionFilter.class/properties.json index 3bb4aba35..503f7ff7d 100644 --- a/repository/Seaside-Core.package/WAProtectionFilter.class/properties.json +++ b/repository/Seaside-Core.package/WAAbstractProtectionFilter.class/properties.json @@ -1,13 +1,11 @@ { - "commentStamp" : "lr 8/11/2009 10:56", + "commentStamp" : "JohanBrichau 8/4/2019 07:41", "super" : "WARequestFilter", "category" : "Seaside-Core-Filter", "classinstvars" : [ ], "pools" : [ ], "classvars" : [ ], - "instvars" : [ - "remoteAddress" - ], - "name" : "WAProtectionFilter", + "instvars" : [ ], + "name" : "WAAbstractProtectionFilter", "type" : "normal" } \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAProtectionFilter.class/README.md b/repository/Seaside-Core.package/WAProtectionFilter.class/README.md deleted file mode 100644 index 52719533d..000000000 --- a/repository/Seaside-Core.package/WAProtectionFilter.class/README.md +++ /dev/null @@ -1,3 +0,0 @@ -The protection filter ensures that the wrapped request handler only accepts requests from the same IP. Do add this filter to a WASession for example to avoid session hijacking, do not add it to static request handlers such as WAApplication or WADispatcher as this might restrict access to the handler if your IP changes. - -Note that checking for IP addresses is not bullet proof and should never be used as the sole security measure for a web application as IP addresses can be easily spoofed. \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md index 164e5b6df..55cc16ece 100644 --- a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md +++ b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md @@ -4,4 +4,4 @@ I track request handlers using a query field. This results in URLs looking like This is a very simple and robust approach. It is also very convenient for development. Just remove the _s and you have a new session. -However there are some drawbacks. The smallest is aesthetical, the URL in the address bar of the browser is less "clean". Second because the session id is part of the request URL it shows up in all kinds of places. For example server logs. Not only the log of the server running the application but also very web site visited from there because it shows up in the Referer HTTP header. The danger of this is that when somebody knows the session id of somebody else he can take over his session. While most of these problems can be mitigated by adding a WAProtectionFilter to every session this creates new problems for users with changing IPs (eg. mobile devices). \ No newline at end of file +However there are some drawbacks. The smallest is aesthetical, the URL in the address bar of the browser is less "clean". Second because the session id is part of the request URL it shows up in all kinds of places. For example server logs. Not only the log of the server running the application but also very web site visited from there because it shows up in the Referer HTTP header. The danger of this is that when somebody knows the session id of somebody else he can take over his session. Most of these problems can be mitigated by adding a WARemoteAddressProtectionFilter or WASessionCookieProtectionFilter to every session. The first one this creates new problems for users with changing IPs (eg. mobile devices). \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json index 75b54afd1..a70da55c4 100644 --- a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json +++ b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "pmm 7/17/2011 17:12", + "commentStamp" : "JohanBrichau 8/4/2019 07:31", "super" : "WAHandlerTrackingStrategy", "category" : "Seaside-Core-RequestHandling", "classinstvars" : [ ], diff --git a/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/README.md b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/README.md new file mode 100644 index 000000000..8cee13460 --- /dev/null +++ b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/README.md @@ -0,0 +1,3 @@ +The remote address protection filter ensures that the wrapped request handler only accepts requests from the same IP. Do add this filter to a WASession for example to avoid session hijacking, do not add it to static request handlers such as WAApplication or WADispatcher as this might restrict access to the handler if your IP changes. + +Note that checking for IP addresses is not bullet proof and should never be used as the sole security measure for a web application as IP addresses can be easily spoofed. \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAProtectionFilter.class/instance/handleFiltered..st b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/handleFiltered..st similarity index 100% rename from repository/Seaside-Core.package/WAProtectionFilter.class/instance/handleFiltered..st rename to repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/handleFiltered..st diff --git a/repository/Seaside-Core.package/WAProtectionFilter.class/instance/remoteAddress.st b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddress.st similarity index 100% rename from repository/Seaside-Core.package/WAProtectionFilter.class/instance/remoteAddress.st rename to repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddress.st diff --git a/repository/Seaside-Core.package/WAProtectionFilter.class/instance/remoteAddressFromRequest..st b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st similarity index 100% rename from repository/Seaside-Core.package/WAProtectionFilter.class/instance/remoteAddressFromRequest..st rename to repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st diff --git a/repository/Seaside-Core.package/WAProtectionFilter.class/instance/verifyRequest..st b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/verifyRequest..st similarity index 100% rename from repository/Seaside-Core.package/WAProtectionFilter.class/instance/verifyRequest..st rename to repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/verifyRequest..st diff --git a/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/properties.json b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/properties.json new file mode 100644 index 000000000..0a045745f --- /dev/null +++ b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/properties.json @@ -0,0 +1,13 @@ +{ + "commentStamp" : "JohanBrichau 8/4/2019 07:26", + "super" : "WAAbstractProtectionFilter", + "category" : "Seaside-Core-Filter", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "remoteAddress" + ], + "name" : "WARemoteAddressProtectionFilter", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md new file mode 100644 index 000000000..92f0ec880 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md @@ -0,0 +1,7 @@ +The session cookie protection filter ensures that the wrapped request handler only accepts requests from the same browser session. Do add this filter to a WASession for example to avoid session hijacking. + +This filter is specifically useful to protect session hijacking when using the (default) query field session tracking strategy. + +Because WAQueryFieldHandlerTrackingStrategy puts the Seaside session key in the url, a session can be easily hijacked by copying the url. This request filter prevents this by requiring a browser session cookie associated to the Seaside session. As a result, a copied Seaside url can only be used in the same browser session. + +The use of this filter, in combination with WAQueryFieldHandlerTrackingStrategy, keeps the ability for a user to open multiple sessions of the same Seaside application in a single browser, while removing easy session hijacking. A malicious user that wants to hijack the session now needs both the url and the cookie. \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st new file mode 100644 index 000000000..821eb4e23 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st @@ -0,0 +1,4 @@ +private - constants +browserSessionIDCookieKey + + ^ 'seaside_browser_session' \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionID.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionID.st new file mode 100644 index 000000000..db20da0cb --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionID.st @@ -0,0 +1,3 @@ +accessing +browserSessionID + ^ browserSessionID \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st new file mode 100644 index 000000000..9c57250fa --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st @@ -0,0 +1,15 @@ +processing +handleFiltered: aRequestContext + "If the browserSessionID instvar is nil, we are a newly created session and should set our browser session id. + Otherwise, verify the browser session id for the current request." + self browserSessionID + ifNil: [ self privateSetBrowserSessionID: aRequestContext ] + ifNotNil: [ + (self privateVerifyBrowserSession: aRequestContext) + ifFalse: [ + "If we carry a redirected url field, we have tried setting a cookie, which failed. + In the other case, treat the request identical to when the session expired." + (self requestContext request queryFields includesKey: 'cookiecheck') + ifTrue:[ self respondCookiesRequired: aRequestContext ] + ifFalse: [ aRequestContext registry handleExpired: aRequestContext ] ] ]. + super handleFiltered: aRequestContext \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st new file mode 100644 index 000000000..2461ce7cd --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st @@ -0,0 +1,3 @@ +private +privateBrowserSessionID: aValue + browserSessionID := aValue \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st new file mode 100644 index 000000000..e74595729 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st @@ -0,0 +1,4 @@ +private +privateBrowserSessionIDSize + + ^ 20 \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st new file mode 100644 index 000000000..20a12441e --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st @@ -0,0 +1,19 @@ +private +privateSetBrowserSessionID: aRequestContext + "If there already is a browser session cookie, we reuse this one. + We can associate multiple session with a single browser session." + (aRequestContext request cookieAt: self class browserSessionIDCookieKey) + ifNotNil: [ :cookie | self privateBrowserSessionID: cookie value ] + ifNil: [ + self privateBrowserSessionID: (WAKeyGenerator current keyOfLength: self privateBrowserSessionIDSize). + aRequestContext response + addCookie: + (aRequestContext newCookie + path: '/'; + key: self class browserSessionIDCookieKey; + secure: GRPlatform current isPharo not; + value: self browserSessionID); + redirectTo: (aRequestContext request url copy + addField: self application keyField value: self session key; + addField: 'cookiecheck' value: nil; + yourself) ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st new file mode 100644 index 000000000..6480f6784 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st @@ -0,0 +1,5 @@ +private +privateVerifyBrowserSession: requestContext + | cookie | + cookie := requestContext request cookieAt: self class browserSessionIDCookieKey. + ^ cookie notNil and: [ cookie value = self browserSessionID ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st new file mode 100644 index 000000000..407451721 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st @@ -0,0 +1,16 @@ +processing +respondCookiesRequired: aRequestContext + | dialog | + dialog := WAHtmlCanvas builder + fullDocument: true; + rootBlock: [ :root | + root + beHtml5; + title: 'Cookies Required' ]; + render: [ :html | "html render: NPCookiesDisabledComponent new" ]. + aRequestContext + respond: [ :response | + response + forbidden; + contentType: WAMimeType textHtml; + nextPutAll: dialog ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json new file mode 100644 index 000000000..c27658654 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json @@ -0,0 +1,13 @@ +{ + "commentStamp" : "JohanBrichau 8/4/2019 07:29", + "super" : "WAAbstractProtectionFilter", + "category" : "Seaside-Core-Filter", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ + "browserSessionID" + ], + "name" : "WASessionCookieProtectionFilter", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st index 669354a04..a65dad185 100644 --- a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st +++ b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st @@ -2,6 +2,6 @@ actions protector | filter | "We could use #filterWith:during: but that requires Flow." - filter := WAProtectionFilter new. + filter := WAAbstractProtectionFilter new. self session addFilter: filter. child inform: 'Open this page on a different computer by copying the complete URL to a machine with a different IP address. Seaside should reply with a forbidden message. Closing this dialog should remove the filter.' onAnswer: [ self session removeFilter: filter ] \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/monticello.meta/version b/repository/Seaside-Tests-Functional.package/monticello.meta/version deleted file mode 100644 index 565a0b7b5..000000000 --- a/repository/Seaside-Tests-Functional.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'Seaside-Tests-Functional-pmm.172' message '- add functional test for deprecation' id 'f4757c31-2032-0d00-a684-b59c0707b477' date '13 September 2018' time '12:49:07.821321 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.171' message '- found 20ms in WALotsaLinksFunctionalTest' id '962e5b52-0e96-4be9-a161-8b60d8e3a5f4' date '26 August 2016' time '10:09:21.620084 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.170' message '- direct rendering for numbers' id '81fdfefe-7bff-4989-b1c4-0c8f93e9b554' date '26 August 2016' time '8:57:34.97452 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.169' message 'Support inline CSS and JavaScript #839 - https://github.com/SeasideSt/Seaside/issues/839' id '5128a2c9-6e19-416e-ba8f-da355a400df2' date '21 August 2016' time '2:50:08.922968 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-JohanBrichau.168' message 'correction: datalist options should use the value attribute rather than nested text' id '9f3d948f-4670-4187-bfef-dc6f3e14294b' date '6 December 2015' time '11:31:35.18541 am' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-Functional-JohanBrichau.167' message 'Fix incomplete functional test for html5 datalist. Thanks to Hilaire for spotting.' id 'f7295892-03d6-4d1d-b391-88cd9ae1c355' date '6 December 2015' time '10:21:27.104394 am' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-Functional-pmm.166' message '- formatting - bug references' id 'cf5f6627-cc91-47a9-8eb6-be7f4e1ef657' date '14 July 2015' time '12:20:05.460422 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.165' message '- empty merge commit' id '1ca7e0ce-49ee-466f-a025-c00d8ed5499f' date '12 July 2015' time '10:35:35 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.164' message '#820 Configurations should not hold on to classes' id '94487524-8d17-4a8d-9fb9-d63dbb9384ea' date '12 July 2015' time '10:11:38 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.162' message '- lint fixes' id '780ca820-425c-4489-9706-04d6266202fc' date '19 August 2014' time '11:22:23 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.161' message 'Issue 763: Add support for srcset on img and source tag' id 'fd7b2ca1-9b59-466e-9613-cdf0d80b51c1' date '17 August 2014' time '8:23:47 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.160' message '- lint fixes' id '034ebe18-46b2-4f41-8e95-4e3e8b2afbff' date '16 August 2014' time '5:00 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.159' message '- fix tiger size' id '7108ebf0-7f70-4e4a-97d2-71e2d038e829' date '1 February 2014' time '5:38:31 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.158' message '- fix tiger URL' id '10293eae-f555-4f1e-ad6f-ed1199a0b93b' date '1 February 2014' time '5:35:47 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.157' message '- fine tune performance colors' id '9839ce1c-0e1f-400d-9253-8518337e5570' date '1 February 2014' time '5:27:21 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.156' message '- Slime' id '71fe90b1-6f24-4f2c-ab94-bbc087472724' date '14 September 2013' time '5:19:33 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.155' message '- Slime' id 'ba61b3b7-dd64-416c-9d11-06e0bb9d50d6' date '14 September 2013' time '5:05:42 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-JohanBrichau.154' message 'Moved Seaside-HTML5 to Seaside-Canvas and Seaside-Core' id 'fc89528c-d228-40e8-85e9-c508a1cf0168' date '12 September 2013' time '2:18:11.422 pm' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-Functional-pmm.153' message 'Issue 749: Wrong handling of urls encoded in UTF8 http://code.google.com/p/seaside/issues/detail?id=749' id '7158f325-52c1-414a-8645-ff150ba6ffa1' date '8 September 2013' time '4:31:04 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.152' message '- Slime fixes, mostly recategorizations' id '3a22cae5-b0c9-4c33-8c70-d2f0c19dd72e' date '3 September 2012' time '4:40 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.151' message '- formatting Nazis from outer space' id '6dd445c3-a8a3-4947-838a-7f94342848c3' date '1 September 2012' time '5:23:48 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.150' message '- formatting Nazis from outer space' id '0ccb6362-bb2c-4e9f-8d67-1746f6cfc78b' date '1 September 2012' time '11:30:38 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.149' message '- merged' id '77632866-52dc-41e5-bfbf-73ec28eca698' date '5 May 2012' time '6:51 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.148' message '- Issue 727: walkback only works for exceptions in callback phase - http://code.google.com/p/seaside/issues/detail?id=727 - add way to fix rendering error - add post test' id '058b9798-ce33-458f-bf08-39455922cf68' date '5 May 2012' time '6:50:18 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.143' message '- merge with trunk' id '12209b2b-7d2b-47ff-828a-19153b5ae19c' date '23 August 2011' time '12:19:17 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.141' message '- Issue 592: investigate tracking sessions by SSL session id - add functional test for SSL session id' id 'd8c61fd0-369f-42aa-a961-d050b37fef03' date '14 August 2011' time '12:46:38 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.140' message '- merge with 3.0' id 'ac750e43-21c8-4f47-886a-95e29d0d65a4' date '6 August 2011' time '8:18:12 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.139' message '- remove deprecated methods and classes' id 'e3caff97-3d57-46a5-8886-7e7242acab53' date '2 August 2011' time '9:11:16 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.138' message '- fixed formatting of return message' id '3e092777-1e87-4e47-89f7-8489b7f41388' date '25 July 2011' time '8:21:17 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.137' message '- fixed spacing in blocks' id '50c65b26-bfd3-467d-b691-86c5d5fe3af8' date '25 July 2011' time '7:23:41 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.136' message '- Seaside-Tests-Functional-pmm.135 with new UUID' id 'fbb91f67-3e67-4be9-90f6-65c3b4927538' date '23 July 2011' time '8:26:07 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.133' message '- lint fixes' id '591168b7-3a73-4e42-97cb-e44c61269314' date '19 February 2011' time '11:09:58 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.132' message '- lint fixes' id '486a4808-e1a5-4df6-8292-e7a668cab3dc' date '18 February 2011' time '11:18:01 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.131' message '- lint fixes' id 'dc46a20a-21c4-4a22-a0f5-2f7931236b9a' date '16 February 2011' time '10:38:05 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.130' message '- formatting' id '66f735c6-8163-4fc3-8a42-0fcd190af343' date '8 February 2011' time '9:52:51 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-as.129' message 'Issue 639: merge WAHtmlCanvas and WARenderCanvas http://code.google.com/p/seaside/issues/detail?id=639' id '2268fa96-1f04-e841-91e7-172bf204a6e7' date '6 February 2011' time '10:17:59 pm' author 'as' ancestors ((name 'Seaside-Tests-Functional-pmm.128' message '- move keygen to HTML 5' id 'd27495e8-f5d4-44c3-afea-344d87c0cb65' date '2 February 2011' time '8:01:17 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.127' message '- move ruby to HTML 5' id '8b136ced-92eb-4920-81b2-a0faed623f6e' date '2 February 2011' time '7:55:54 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.126' message '- Issue 356: Add functional test for WAValidationDecoration - http://code.google.com/p/seaside/issues/detail?id=356' id 'bdbe5782-df57-494d-8e1c-8aad5865fa6e' date '19 December 2010' time '5:39:16 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.125' message '- Chrome has sometimes missing Content-Type on uploads' id 'ef8124e0-3440-40ea-b841-ed042c05ae89' date '31 October 2010' time '2:06:03 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.124' message '- don''t test character by character rendering for null codec' id '2dee6780-ab7f-41d9-b86d-a98b682b0a07' date '24 August 2010' time '6:58:45 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.123' message '- fixed bug with #with: causing date and time selectors appear twice (thanks to the annonymous reporter in the comments of the Seaside Book)' id '23f58081-124d-4605-81a3-d674c8c01cbf' date '2 August 2010' time '6:50:28 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.122' message 'add explicit dependency on Widgets' id '03bcb787-98c7-47c7-b78f-3ffb0014a83b' date '24 June 2010' time '11:22:53 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-obi.121' message '- fix comment' id 'a663fef8-12f3-564a-9ab3-8ecbb2b08ec7' date '13 June 2010' time '9:08:24 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-YM.120' message 'Fix redirection in expiry tests' id 'b50f16fb-eede-4218-a7f1-89b53a4f83b7' date '22 May 2010' time '11:47:48 pm' author 'YM' ancestors ((name 'Seaside-Tests-Functional-obi.119' message '- adjust some performance test values - add & to better test text rendering performance' id '60e6f2eb-f6e0-bd45-a20e-5e5c153086a7' date '21 May 2010' time '9:05:01 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.118' message 'fix typo' id '489fcc39-a550-45e2-95c0-83239d9d6b48' date '22 February 2010' time '12:18:36 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.117' message '- added explicit repository url' id '2dcf3a12-20b6-4622-88a0-1acc2366d411' date '17 February 2010' time '3:51:06 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.116' message 'Properly fix http://code.google.com/p/seaside/issues/detail?id=544 I introduce a GROrderedMultiMap which specifically allows duplicate keys (GRSmallDictionary no longer does). This is used to implement WARequestFields, which is used throughtout for storing GET and POST fields. #at: will return the first matching field and #allAt: will return all matching values. Various renamings, fixes to callbacks, and to unit and functional tests. I also had to fix the Swazoo and Comanche server adaptors to correctly create WARequestFields instances for the POST fields and to correctly include the raw POST body in all cases (but it seems to be a ByteArray in Swazoo''s case and a ByteString or String for Comanche... seems not ideal)' id '2185bf15-e04e-48a8-a6d7-767fa0304e41' date '15 February 2010' time '9:33:11 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.115' message 'Bring WAUrl terminology in line with RFC 3986 (I got distracted on this while trying to work on fixing multiple fields with the same key). Leave old methods there marked as deprecated.' id '463bd778-6554-4eef-a505-d350e24f79e8' date '15 February 2010' time '2:52:53 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.114' message 'Let''s set a good example by properly namespacing our extensions to GRPlatform. Also tidy up and remove unused methods.' id 'ace0827e-ec89-4fd1-92a2-27edd9679fb7' date '9 February 2010' time '1:45:41 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.113' message 'http://code.google.com/p/seaside/issues/detail?id=405 Start storing the query fields in the Request URL and adjust accessors so that #queryFields returns those, #postFields returns the POST fields, and #fields returns a merge of the two. This is the simplest, least invasive implementation of this I could come up with. I still think we need to put some serious thought into how field merging and so on works.' id '8c2113ed-a3d6-482f-830d-16098712225b' date '31 January 2010' time '12:31:45 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.112' message 'http://code.google.com/p/seaside/issues/detail?id=488 Revert Seaside-Tests-Functional-dkh.92 (or at least some of it)' id '98a2ae41-1adc-4bfc-8625-c56e30d17acf' date '26 January 2010' time '2:00:15 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.111' message '- fixed some slime issues' id 'a30a2e68-3c71-4da9-b5d9-b406a317a74e' date '25 January 2010' time '11:41:21 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.110' message '- fixed various bugs in the radio button implementation - made radio buttons backward compatible - fixed some formatting issues' id '3e69ef59-e23a-48c0-b7a3-051663517b9b' date '25 January 2010' time '11:18:47 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.109' message '- fixed formatting - fixed custom selection (requires explicit registration)' id 'f1ea9ba5-9f84-4109-810e-cd0c02a578a4' date '23 January 2010' time '2:06:52 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-obi.108' message '- add custom list rendering test' id '4629c1b4-e245-1d4e-a302-f71b3c2d258b' date '19 January 2010' time '11:21:11 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.107' message 'Tidy up naming and URLs for the various functional test suites. Hopefully this will make them easier to find for non-developers.' id '865ea112-0d73-40c6-b8ca-da94a511f119' date '11 January 2010' time '1:15:34 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-obi.106' message '- use renamed method' id '1ceb6630-f382-5843-87c7-ea8d4edb0b4e' date '1 January 2010' time '10:04:08 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.105' message '- simplify nested list rendering code' id '5040e91c-ad54-054e-bd8e-902b1977b11c' date '1 January 2010' time '9:49:25 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.104' message '- enable #selected: for radio group' id 'de186e0d-6cf1-9041-ac9a-2011b6718a80' date '31 December 2009' time '9:56:04 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.103' message '- use #value: instead of #callbackValue: for radio button' id '3cd63db3-d8fd-c042-8de4-d0453283f01d' date '31 December 2009' time '7:09:54 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.102' message '- use "callbackValue: each" instead of "value: (group valueFor: each)" for radio buttons ' id 'e586403c-1a7b-6a46-bad8-2aec69b70e19' date '31 December 2009' time '1:44:26 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.101' message '- get rid of WADispatchCallback - use new rendering technique for radio group' id 'd44d6c88-776c-5341-8cf6-d955c240d44d' date '30 December 2009' time '5:06:20 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.100' message '- fix issues 374: Select- and multi-select-list-items 279: Select List without #callbacks: http://code.google.com/p/seaside/issues/detail?id=374 http://code.google.com/p/seaside/issues/detail?id=279 - add nested multi selection test - change nested rendering code' id 'a58560b7-7de4-4544-a7b1-dea94301aa75' date '30 December 2009' time '2:53:17 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-Issue374-obi.99' message '- cleanup' id '2889c116-63e0-3243-ac14-f9ceb75e29aa' date '30 December 2009' time '1:37:58 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-Issue374-obi.98' message '- add nested multi selection test - change nested rendering code' id '21c3a062-a7b4-cb45-be63-424638d6177a' date '30 December 2009' time '11:08:07 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.97' message 'merge' id '106197ff-6c55-4237-afba-d728838c171b' date '29 December 2009' time '5:00:15 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.96' message '- move Task stuff into Component package - no longer need special Flow configuration settings - Make parameter to onAnswer: blocks optional - Add #call:onAnswer: which does a #show:onAnswer: and then sends a render notification; rewrite #call: to use #call:onAnswer: - Make as few of the functional tests as possible depend on Flow' id '7ca49241-e9a4-4e7f-9e13-96c5a2ee4b78' date '29 December 2009' time '4:07:22 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.95' message '- http://code.google.com/p/seaside/issues/detail?id=507 - Issue 507: WAUrlEncodingFunctionalTest Parameter encoding fails - http://code.google.com/p/seaside/issues/detail?id=508 - Issue 508: WAUrlEncodingFunctionalTest instructions are incorrect' id 'ec58366b-7ecb-4e1b-95f3-a55c1d527fd7' date '5 December 2009' time '12:04:31 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-dkh.94' message '- update the comments with GemStone-specific info' id '438ce99d-10e3-4c76-ad3d-09c758aeedfd' date '23 November 2009' time '3:40 pm' author 'dkh' ancestors ((name 'Seaside-Tests-Functional-lr.93' message 'merged' id 'aec5175a-f796-4c2d-9e1a-9ead3d95243a' date '14 November 2009' time '6:14:26 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.92' message '- Issue 480: WAUploadFunctionalTest fails to load .txt file - http://code.google.com/p/seaside/issues/detail?id=480 - make WAFile more file WARequest' id '23ddc3d2-56f5-4d72-a813-65e50ea8e4e0' date '14 November 2009' time '4:52:11 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-dkh.92' message '- fix bug http://code.google.com/p/seaside/issues/detail?id=488' id '197e94d9-78c0-42e8-8d8b-7818c6c2016a' date '13 November 2009' time '3:48:48 pm' author 'dkh' ancestors ((name 'Seaside-Tests-Functional-jf.91' message 'Deprecate now-confusingly-named WARequestHandler>>baseUrl in favour of #url' id 'dd2eb6f7-df6f-40e1-b36f-08ff2d75ee54' date '3 November 2009' time '1:25:21 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.90' message 'Rename Seaside-Platform to Grease in order to help make clear that it is not Seaside-specific and can be used by other projects as a compatibility layer. This was spawned by discussions when I started porting Magritte to VAST using the Platform layer.' id 'fbd8690d-8ba0-4958-aa8c-c4f8c4d2ab88' date '30 September 2009' time '10:54:59 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.89' message '- formatting' id 'ffaf8d90-41cd-4d4f-9d56-8f0a592e0286' date '20 September 2009' time '11:35:48 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.88' message '- fix parameter functional test' id 'b9fa5f60-096d-4acd-bff4-b47efba00261' date '6 September 2009' time '2:31:25 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.87' message '- Issue 458: Need a functional test for WARequest>>body - http://code.google.com/p/seaside/issues/detail?id=458' id 'c52d761f-6c49-4a3b-a92a-75674fcc4867' date '6 September 2009' time '1:36:21 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.86' message '- add #nextIfPresentDo: to path consumer' id '1460c175-42a0-431e-805a-738e90475d90' date '1 September 2009' time '9:04:51 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.85' message '- Issue 440: provide access to unconsumed path element - http://code.google.com/p/seaside/issues/detail?id=440' id 'e7276469-c0cd-421f-a2b6-0cec661e8fe3' date '31 August 2009' time '3:27:23 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.84' message '- renamed the string ''Squeak'' in package names to ''Pharo'' (see Issue 433) ' id 'd160f203-bdb4-4269-9199-1aa5753cb6f6' date '30 August 2009' time '5:52:52 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.83' message '- added functional test for tailing slash' id '65d14aa3-9ce1-436e-b265-c3431945acbf' date '15 August 2009' time '11:15:38 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.82' message '- coding conventions' id 'c964c2e4-6f74-4b08-aeb9-1752089a4dd7' date '5 July 2009' time '1:28:41 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-obi.81' message '- extend WAInputFunctionalTest to test also the titles: functionality see http://code.google.com/p/seaside/issues/detail?id=375' id '528388d1-51b8-fc45-a0e1-33f232ca2abf' date '4 July 2009' time '9:23:16 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-lr.80' message '- fixes: Issue 363: WAPopupFunctionalTest issues - assign an answer handler that closes the window' id '24e139b6-f018-4451-9c8f-76988e321f36' date '29 June 2009' time '10:37:28 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.79' message '- fixed http://code.google.com/p/seaside/issues/detail?id=389 - image url was wrong' id 'd9543b0f-35b6-4980-98b8-4a2bc7758963' date '14 June 2009' time '1:13:34 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.78' message '- fixed categorization' id '83f01374-2e47-4d53-86fa-c6c43e6da70e' date '15 May 2009' time '6:31:36 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.77' message '- replace some users of #asString with platform independent #seasideString - fixed some Slime issue' id '1c3fff68-462d-4796-aa41-ebf47730b1be' date '26 April 2009' time '7:11:03 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-obi.76' message '- use inline rendering for performance tests' id 'a0f2f4d5-8857-9149-9098-1533751f63e7' date '13 March 2009' time '9:33:21 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.75' message '- show number of iterations' id 'b332e614-7e27-4245-a9eb-d305ec86dbae' date '12 March 2009' time '7:46:43 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.74' message '- use reference values for performance tests' id '28a4b49b-2206-cc4c-9499-8d9d885321c2' date '11 March 2009' time '9:33:21 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.73' message '- reordering performance tests' id '0313e27f-8eaa-8644-a550-7be76ff2ab96' date '11 March 2009' time '12:51 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.72' message '- use better timing for WAPerformanceFunctionalTest' id 'f7cc2371-187d-674c-9c9f-75b59fe28de6' date '10 March 2009' time '11:59:17 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.71' message '- added WAPerformanceFunctionalTest' id '4aef2e46-bfd1-7548-a918-2021e6b6650a' date '10 March 2009' time '9:43:29 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.70' message '- fixed misspelling at WALotsaLinksFunctionalTest' id '6e0e38fb-f17b-1d46-b99c-cafec82a94fd' date '10 March 2009' time '8:25:18 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.69' message '- removed unsent method' id '0a719e53-dffc-4c42-ae8b-06b85c8abd84' date '8 March 2009' time '7:30:31 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.68' message '- Removed test component for "closeThisPopup" from Functional Tests' id '7193a5e1-89ab-0d4b-984a-3daa92b52f89' date '8 March 2009' time '5:53:03 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.67' message '- add test for "closeThisPopup" # see http://code.google.com/p/seaside/issues/detail?id=299' id 'bb0510c3-c6e1-1f46-ade7-c62cf12fc90d' date '8 March 2009' time '5:14:48 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-lr.66' message '- fixed various lint issues' id '00881d08-a3a1-4415-a335-640004077a65' date '5 March 2009' time '9:18:09 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.65' message 'Remove dependency of WAExceptionFilter on Session and move it into the Core package. Have it store its own configuration. Still no UI for actually configuring it but I''ll do that next. In the meantime, Applications added with WAAdmin will have a new named configuration added to the filter so that can be used to change the exception handler for *all* applications. You''ll need to clear your config cache and reload your applications after loading this.' id '5ac1dfcb-9849-4333-8c0d-92aae56f297e' date '4 March 2009' time '11:14:49 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.64' message '- fixed various slime/lint issues that went unnoticed so far because of a bug in the refactoring engine' id '7a565861-2d27-4bd8-bd3c-f204d7463e25' date '28 February 2009' time '11:19:55 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.63' message '- the input tests should also test hidden input fields' id '678b651d-709d-47df-a34d-da602c353b5a' date '22 February 2009' time '3:33:29 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.62' message '- added a file input to WAInputElementContainer to be able to tests its behavior in different scenarios - renamed WAGetInputFunctionalTest to WAInputGetFunctionalTest, WAInputFunctionalTest to WAInputPostFunctionalTest and WAMultipartInputFunctionalTest to WAInputPostMultipartFunctionalTest so that they show up in the functional next to each other - improved the explanation in WAInputGetFunctionalTest, WAInputPostFunctionalTest and WAInputPostMultipartFunctionalTest' id '7208c213-c7cd-4e7c-960c-ccdc79265d8d' date '22 February 2009' time '3:15:53 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.61' message 'http://code.google.com/p/seaside/issues/detail?id=339 Remove all (I think) dependencies from Seaside-(Squeak-)Test-Functional and Seaside-(Squeak-)WebTools on Seaside-(Squeak-)Flow WebTools should now be useable on platforms without continuations. I had to add a dependency from the Development packages on Flow because the WalkbackErrorHandler just won''t work without a Continuation.' id '6f476bea-7a26-44c8-9092-876830a98fec' date '21 February 2009' time '4:08:14 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.60' message 'Replace senders of "aRenderer context actionUrl" with "aRenderer actionUrl"' id 'ecee6a2d-dcc8-4bd9-9dec-49c19b316743' date '21 February 2009' time '10:45:52 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.59' message 'Fix behaviour description in functional tests after solving http://code.google.com/p/seaside/issues/detail?id=324' id '08eeb03c-e60a-4bc3-baaf-b20eed9df854' date '20 February 2009' time '3:07:06 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.58' message 'Fix http://code.google.com/p/seaside/issues/detail?id=310 Store the root component in the Session property dictionary rather than in the RenderLoopContinuation. This means we no longer need #inNewRenderLoopShow: and #inNewRenderLoopCall:. Instead you can just do "self session presenter show:" This has the additional benefit of making sure the old root component still gets snapshotted.' id 'd5342efc-dd23-43fb-8cf6-96be00f303bf' date '20 February 2009' time '12:13:04 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.57' message 'http://code.google.com/p/seaside/issues/detail?id=215 Move #filterWith:during:, #authenticateWith:during:, and #isolate: on Component into the Seaside-Flow package. And move a Functional test that was using #isolate: into Seaside-Tests-Flow-Functional' id 'ecb99e29-aeff-2e46-b9d2-5cdf746f0c1b' date '9 February 2009' time '5:30:07 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.56' message 'add a (hacky) test for signaling an error during rendering ( currently broken - see http://code.google.com/p/seaside/issues/detail?id=340 )' id '7f2d4041-7246-0f4c-a464-e8b47a8f633c' date '8 February 2009' time '10:41:36 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.55' message 'correct spelling... the plural of codec should be codecs (a codex is something else)' id '485040ac-1819-4915-b216-d1f13ec33c6e' date '7 February 2009' time '8:34:24 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.54' message '- WACode refactoring so that it can potientially work on streams and so that it does not depend on semaphores - WAServerAdaptor cleanup (for details see http://lists.squeakfoundation.org/pipermail/seaside-dev/2009-February/002778.html)' id '19542aa6-aba5-4839-80e9-e42667030f1a' date '7 February 2009' time '1:13:19 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.53' message '- fixed some compatibility issues with ANSI streams' id 'a8eee8a4-fcc0-44b8-9529-c2e38944dc0d' date '4 February 2009' time '11:38:36 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.52' message 'break some circular dependencies' id 'd7ef9d78-c7aa-4a91-a1cf-7788de29774a' date '1 February 2009' time '10:13:40 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.51' message '- removed unnecessary calls to #call: - removed tests that test flow functionality' id '6cd6f955-98b7-44cc-8088-4a92aea229c3' date '24 January 2009' time '9:28:52 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.50' message 'http://code.google.com/p/seaside/issues/detail?id=164 Put test for platform #garbageCollect method in Seaside-Tests-Functional ' id 'fde2c2e8-7b6d-462a-8ffb-a82b9af8db74' date '23 January 2009' time '8:13:31 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.49' message 'remove tests in WAErrorFunctionalTest which returned nil and Object. This behaviour is no longer possible with the response refactoring.' id 'effa43b1-7171-46b8-8824-3aeaa8fd6913' date '23 January 2009' time '4:39:09 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.48' message '- don''t do a redirect for adding cookies' id '0e88af6b-15c7-4b1a-99ef-18667dfff254' date '22 January 2009' time '10:49:59 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-jf.47' message 'As debated at the Konstanz sprint and touched upon in http://code.google.com/p/seaside/issues/detail?id=221, move Platform methods to instance side and implement WASqueakPlatform as a subclass of WAPlatform. This allows us to provide default implementations where possible, helps document which methods are required, and means that we have a class as our global instead of the un-namespace "SeasidePlatformSupport". In case it is useful, the refactoring code was: "The refactoring:" WASqueakPlatform class selectors do: [ :ea | (ORSwapMethodRefactoring swapMethod: ea in: WASqueakPlatform class) execute ] "The renaming:" (ORSourceRegexRefactoring new replace: ''SeasidePlatformSupport'' with: ''WAPlatform current''; yourself) execute' id '763f7779-83c4-4c86-8f1d-5805e8a744b7' date '22 January 2009' time '3:01:41 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.46' message 'fix cookie functional tests to work with rendering refactoring' id '4c540d74-8847-4259-a566-d19b5beb4c9c' date '21 January 2009' time '11:09:12 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.45' message 'In discussions with Lukas last night I realized that the error handler is holding onto the request context and this could be a problem with continuations. This adds a functional test that confirms whether error handling works properly after a call: (it currently doesn''t)' id 'b1511733-698a-49f2-ada2-8690fd5d8ce0' date '14 January 2009' time '12:20:41 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.44' message 'Lukas says javascript links need "url: ''#''" now...' id 'efdcc39d-ab7f-4031-aaea-31c50e7ba25c' date '12 January 2009' time '11:43:40 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.43' message '- removed deprecation functional test' id '93383106-c3e3-4e27-b62e-eb1a46b487ed' date '2 January 2009' time '2:27:09 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.42' message '- added WADeprecationFunctionalTest' id '3aa3c0e6-b154-46fa-92ac-b42d8657d17a' date '1 January 2009' time '7:49:29 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.41' message '- merged' id '1f8f6724-504b-4879-83ba-ce4076743576' date '1 January 2009' time '6:47:38 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.36' message '- better explanations' id 'a1bc4014-40a9-4c14-810d-cc5a8500eb82' date '1 January 2009' time '6:18:02 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-lr.40' message '- added slime rule to detect invalid or incomplete senders of #seasideDeprecatedApi:details: - fixed callers of #seasideDeprecatedApi:details:' id 'a915ec67-2b98-4811-8462-4071e91bbf66' date '30 December 2008' time '1:02:02 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.39' message '- removed WAHtmlFunctionalTest as it was calling deprecated functionality and there are serveral more specific fixtures that test the same functionality' id 'ff326549-cd70-4645-b17c-f283d6262112' date '27 December 2008' time '6:17:02 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.38' message '- removed WALinkSubmitFunctionalTest that only tests deprecated Javascript functionality' id '1481eeae-212c-4f7c-821e-fc946f41444f' date '27 December 2008' time '6:10:33 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.37' message '- removed unrelated and deprecated functionality tests from WADateTimeFunctionalTest' id '282d1b5b-a632-4db6-a176-155bf6405239' date '27 December 2008' time '6:08:10 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.36' message '- do not use deprecated javascript cruft anymore - added missing checkbox and radio button to WAInputElementContainer' id '4808fe31-6fb8-40a9-b007-e58caa95a18a' date '27 December 2008' time '5:43:36 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.35' message '- made WAAllTests URL handling more robust: * look at first element in the relative path instead of the last element in the path, some tests add stuff to the path * don''t do mixed String/Symbol equality comparison (class names)' id '81b48522-96fe-4215-b09a-f6de0f6cd5c6' date '7 December 2008' time '6:44:36 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.34' message '- made the functional tests restful - some formatting fixes while playing with WAExpiryFunctionalTest' id '7ca61bb5-15c5-4d3d-af85-e2d3c808ff0f' date '2 December 2008' time '8:44:38 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.33' message '- cleanup of method protocols - fixed inconsistencies' id '7f6059ac-f2f7-427d-af48-7e19e2be4631' date '29 November 2008' time '2:14:57 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jok.32' message 'update dependencies -- Seaside-Test-Core required due to references to WATestingFiles class.' id 'd8f9ccf1-e2b7-ad47-b0fb-ab1fd43edc99' date '28 November 2008' time '4:04:11 pm' author 'jok' ancestors ((name 'Seaside-Tests-Functional-lr.31' message '- fixes Issue 219: Why does WADecorationTask override #updateStates: ?' id '00cda7be-dda4-44b4-b6d3-047e2b9673d9' date '28 November 2008' time '4:41:15 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.30' message '- HTML validation' id 'f97cf6d8-ee79-4ce6-a007-a13678e5bd2c' date '14 November 2008' time '10:36:07 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.29' message '- fixed the comment for the deprecation error test' id '6f7bfc03-d6c4-4d8a-8858-84a50104232d' date '12 November 2008' time '8:12:13 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.28' message 'merged' id 'b2e2ccd2-8a63-4575-b022-4c1c95be6f1a' date '11 November 2008' time '11:38:05 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.27' message '- fixed unknown message send - fixed some slime complaints' id '66dde118-13e3-4d94-aea5-fabd00b5530d' date '11 November 2008' time '11:37:36 pm' author 'lr' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-pmm.27' message '- tests for key generator' id '10d4c11d-69f1-4919-9b46-2205591a4178' date '11 November 2008' time '11:12:11 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.26' message '- merged' id 'addaa945-c40f-4ff2-9bb4-9d8b365d263e' date '8 November 2008' time '1:55:02 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.25' message '- test for codec instead of server' id 'd83ad90a-20cd-447b-bf49-0a6cef9c1ff4' date '8 November 2008' time '1:30:50 pm' author 'pmm' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-jf.26' message 'http://code.google.com/p/seaside/issues/detail?id=227 Reintroduce previous ExceptionHandler refactorings but with a few changes to satisy complaints in this issue: + Most ErrorHandlers no longer catch Halts + The only one that does is WAHtmlHaltAndErrorHandler, which is in a Squeak-specific package, which removes the need for the platform #haltClass method. This handler can be used or subclassed in production + Code to resume WARequestContextNotFound was moved up to the top-level WAExceptionHandler so that stepping over #requestContext will work in a debugger, even when not using a DebugErrorHandler + The text in the functional tests was updated to indicate that the results are handler- (and occasionaly platform-) specific' id '1053f0fc-51e2-0644-88db-3cf2048a87fa' date '12 November 2008' time '1:43:44 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.25' message 'http://code.google.com/p/seaside/issues/detail?id=227 Apparently my exception handler refactoring broke many things in various ways. Revert everything back to the old error handler mechanism (adapted for changes to session and render loop).' id 'd382ecaf-ef6d-8a4a-a3ea-b055268f0df2' date '7 November 2008' time '11:06:12 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.24' message '- SLint fixes' id '5b514c7c-ab77-4b3c-b78e-879d508a02e9' date '5 November 2008' time '2:36:47 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.23' message '- merged' id '10586de2-d3fb-4f16-a836-907bf0a144f6' date '5 November 2008' time '2:30:43 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.19' message '- SLint fixes' id '701cb6c0-e599-4020-b0fd-5d0ba5ab04f0' date '5 November 2008' time '1:56:59 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-jf.22' message 'The goal of WARequestContext is to be a decoupling interface between request handlers and whatever wants the request handled. Rather than storing the server adaptor itself in the request context, it is therefore cleaner to make sure that the request context holds all information that needs to be exchanged. In fact, there is essentially no protocol common to all server adaptors that could be useful to a request handler and there were no users of WARequestContext>>server other than to get the codec. This series of commits therefore changes WARequestContext to hold the codec that was used to decode the request and stops storing the server adaptor on the context. If it turns out that people *do* want server-adaptor-specific information in their code, server adaptors could use custom subclasses of WARequestContext to provide it.' id 'd6879e34-feca-8647-93d4-9aa0b044f3e7' date '5 November 2008' time '10:27:19 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.21' message 'add functional test for WATrail' id 'f46631ac-35a4-0845-a33b-d2ed76dbdcb8' date '4 November 2008' time '11:56:55 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.20' message '- removed WARequestHandler>>#isFiltered, it is not used anywhere' id '593336b8-1865-48b1-bd77-518e6aacea28' date '4 November 2008' time '9:25:15 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.19' message 'Merge in the painterrenderer branch' id 'dbb79daa-0663-6d4d-8fd5-54d8e0d4066e' date '3 November 2008' time '10:22:35 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.18' message '- removed initializers of functional tests that registered themselves as applications' id '2383836c-71df-423e-9bc8-03f50d85bc7e' date '1 November 2008' time '6:16:37 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.17' message 'signal a discriptive error when the render phase fails to generate a response. This avoids seing the server adaptor''s default error response when a nil response is generated. #possibleCauses is implemented to explain that the user is probably doing a #call: from a render method. Also add a functional test to allow us to test the behaviour of calling from within a render method.' id 'caaddcd6-b5c3-2148-b416-ebad8b40e5bb' date '28 October 2008' time '10:21:02 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.16' message 'http://code.google.com/p/seaside/issues/detail?id=213 It was really annoying to have the Session automatically register itself in the Application. The caused weirdness when unregistering a session - the render phase would then cause the session to re-register itself under a new key. To fix this, WAApplication now registers the session when it is created and the session should not re-register itself. Added #keyFor:ifAbsent: and #urlFor:ifAbsent: as well as #keyFor: and #urlFor: which signal a WAUnregisteredHandlerError if the handler is not found. Change senders of #urlForRequestHandler:addHandlerField: and #ensureKeyForHandler: to use these new methods. The RenderLoopContinuations now catch this error and redirect to a new session. If you want to redirect somewhere else, you should call WARequestContext>>redirectTo: after unregistering the session. Also rename several methods on WARegistry to get a more consistent interface, both internally and with WADispatcher) and deprecate the old versions (plus changed senders).' id '76afe0bf-32e8-684a-aa40-b94623a07d9d' date '27 October 2008' time '5:45:21 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.15' message '- more valid HTML' id '99de9588-c0f6-4d28-98f8-c7e9e273d7a9' date '26 October 2008' time '11:46:40 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-jf.14' message 'http://code.google.com/p/seaside/issues/detail?id=209 Fix senders of deprecated #registerAsApplication:' id '4a9b99dd-288b-0444-b236-b5855cce65ad' date '26 October 2008' time '6:15:04 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.13' message '- updating package information' id '7402ab1e-69af-40f4-8060-33124bdfd56f' date '23 October 2008' time '10:10:20 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.12' message 'Added my best guess at package dependency information (please fill in descriptions)' id 'f10408f2-2ec9-364a-b46b-3e8caf99bf98' date '23 October 2008' time '12:37:36 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-jf.painterrenderer.3' message 'put #visiblePresentersDo: back for now implemented in terms of visitors... the code is too ugly for the few pluggable cases at the moment otherwise.' id '10922331-7d50-1c44-8a50-9d471ebfb5d4' date '22 October 2008' time '4:19:59 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.painterrenderer.2' message 'fix senders of #visiblePresentersDo: But see http://code.google.com/p/seaside/issues/detail?id=219' id 'eb5f133d-3aa6-4545-96c1-ee0bfb8b94ec' date '22 October 2008' time '1:57:36 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.painterrenderer.1' message 'change a test to use painter/component visitors' id 'c8a18671-9ab4-4b4b-b210-db90a7aa1fa3' date '22 October 2008' time '1:48:31 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.11' message 'merged' id 'd73324a9-7c2a-4794-9682-ae083c416b5f' date '19 October 2008' time '9:07:05 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.10' message 'remove dependency from Seaside-Tests-Functional package on Seaside-Examples package by having 3 functional tests use something other than WACounter for embedding and so on.' id '1764b691-04a0-6a42-94d5-838bc208bd73' date '18 October 2008' time '10:46:01 pm' author 'jf' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-lr.10' message 'merged' id '2e6962c1-0f76-4655-b945-722fb987f0c5' date '18 October 2008' time '9:15:04 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.8' message '- removes unused var' id '35b15eec-dd16-4721-b0fe-36451b457b69' date '18 October 2008' time '8:59:34 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.7' message 'changes to work with render loop refactoring' id '39e7bc1c-a9ae-b64b-ad67-8901c720beb2' date '18 October 2008' time '11:31:18 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.6' message 'add functional test to simulate what would happen if a user tried to get tricky and started submitting select list options to the wrong list callback. There is potential here, if the handling of these callbacks was ever changed, to introduce a security vulnerability where Seaside would naively load the requested object and pass it into the wrong callback.' id '5f12146a-7577-b741-a413-0c4c9a4cd815' date '8 October 2008' time '11:59:10 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.5' message 'fixed send to deprecated method #owner' id 'd7e75861-eaac-7a46-abae-78f88bb53018' date '7 October 2008' time '10:33:20 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.4' message 'http://code.google.com/p/seaside/issues/detail?id=175 Change sender of WASession>>expire to use #unregister. The behaviour is not quite the same, though. Unless you redirect immediately, the session just gets re-registered. This is kind of unfortunate but works for now in this case. Also add redirects after the other actions (clear cache, etc) that result in our session being unregistered, otherwise we see the same behavioural problem. Remove the session expiry seconds edit box, since that setting has no effect now.' id 'cd94de55-96f6-4b4c-b108-461e876600ca' date '7 October 2008' time '6:56:58 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-obi.3' message '- WAHTmlFunctionalTest set columns for Hello World TextBox' id '79246568-68b4-544e-9f58-2cc8f3adc606' date '6 October 2008' time '10:31:39 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.2' message 'Clean up WATestingFiles and adjust users of it.' id 'f9fffca6-0ebf-4d4e-8f04-a3231c2df18b' date '6 October 2008' time '5:36:30 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.1' message 'split up tests' id '81c5dfd2-fc60-9144-bb39-4d26d3e48173' date '6 October 2008' time '1:27:45 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.9' message '- merged' id '4769c44b-8f17-41ce-bd6a-9b0f44f365cb' date '18 October 2008' time '8:18:53 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.8' message '- SeasidePlatformSupport garbageCollect instead of Smalltalk garbageCollect' id '6d9801ef-6c30-45fe-bdd3-a52789226921' date '18 October 2008' time '6:21:25 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-jf.8' message 'http://code.google.com/p/seaside/issues/detail?id=100 Cleanup responding and redirecting methods on WASession. Most went to WARequestContext and were deprecated on WASession (a few were renamed on the way). A couple were deleted. See the issue for details.' id 'b55d16d0-0092-ae4e-b2a3-571d8ddf7c25' date '18 October 2008' time '6:17:24 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-lr.96' message '- do not use any longer #printOn: and #printContentOn: in JSObject, but use #javascriptOn: and #javascriptContentOn: - implementors of external libraries that implment or send any of these methods need to perform the renaming as well' id '212be911-3f14-4d88-ac15-834b010fcff6' date '24 December 2009' time '11:24:59 am' author 'lr' ancestors ((id 'ec58366b-7ecb-4e1b-95f3-a55c1d527fd7')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-obi.139' message '- fix http://code.google.com/p/seaside/issues/detail?id=617 - use scale method - update Reference System' id 'c5843c25-95f5-cd41-816d-9ee898b91d07' date '3 August 2011' time '8:47:10 pm' author 'obi' ancestors ((id '3e092777-1e87-4e47-89f7-8489b7f41388')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.142' message '- Issue 678: an iframe should be more like a pop up - move WAIframeTag >> #callback: from Scriptaculous to Canvas' id '204b190f-6ef9-416e-8817-f6099498ea68' date '23 August 2011' time '12:05:20 pm' author 'pmm' ancestors ((id 'c5843c25-95f5-cd41-816d-9ee898b91d07')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.147' message '- formatting nazis from the dark side of the moon' id 'f6f96a8a-52dc-4ad0-ba8d-6848b6b93e10' date '19 February 2012' time '11:32:53 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.146' message '- added functional test to WADateTable' id '83cca07b-a15d-4706-8ad7-789042d571c4' date '22 January 2012' time '9:50:06 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.145' message '- formatting nazis from outer space' id '9365205c-1101-4b7d-b14a-4aaa9b7602d4' date '22 January 2012' time '5:02:57 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.144' message '- set page title for functional tests' id '21631988-0f9d-4db9-b0ad-640990cfb7a2' date '28 September 2011' time '7:16:26 pm' author 'pmm' ancestors ((id '12209b2b-7d2b-47ff-828a-19153b5ae19c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.163' message '- render more request headers' id '4acf5476-8b01-4543-b08c-953d27829aab' date '12 November 2014' time '7:04:01 pm' author 'pmm' ancestors ((id '780ca820-425c-4489-9706-04d6266202fc')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file From e30d6522ed3ed5ad35cc33de383221f1efaa599c Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sat, 24 Aug 2019 13:56:25 +0200 Subject: [PATCH 02/33] Added an example for the sessioncookie protection filter (and fixed a bug) --- .../WASessionCookieProtectionFilter.class/README.md | 8 ++++---- .../instance/handleFiltered..st | 2 +- .../instance/privateSetBrowserSessionID..st | 6 +++--- .../instance/renderCookiesRequiredStatementOn..st | 3 +++ .../instance/respondCookiesRequired..st | 2 +- .../properties.json | 2 +- .../WASessionCookieProtectedSession.class/README.md | 0 .../instance/initializeFilters.st | 4 ++++ .../properties.json | 11 +++++++++++ .../WASessionProtectedCounter.class/README.md | 0 .../class/handlerName.st | 3 +++ .../class/initialize.st | 5 +++++ .../instance/renderContentOn..st | 4 ++++ .../WASessionProtectedCounter.class/properties.json | 11 +++++++++++ .../Seaside-Examples.package/monticello.meta/version | 1 - 15 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/renderCookiesRequiredStatementOn..st create mode 100644 repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md create mode 100644 repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st create mode 100644 repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json create mode 100644 repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md create mode 100644 repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/handlerName.st create mode 100644 repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/initialize.st create mode 100644 repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st create mode 100644 repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json delete mode 100644 repository/Seaside-Examples.package/monticello.meta/version diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md index 92f0ec880..42e45e17c 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/README.md @@ -1,7 +1,7 @@ -The session cookie protection filter ensures that the wrapped request handler only accepts requests from the same browser session. Do add this filter to a WASession for example to avoid session hijacking. - -This filter is specifically useful to protect session hijacking when using the (default) query field session tracking strategy. +The session cookie protection filter ensures that the wrapped request handler only accepts requests from the same browser session. This filter is specifically useful to protect session hijacking when using the (default) query field session tracking strategy. Because WAQueryFieldHandlerTrackingStrategy puts the Seaside session key in the url, a session can be easily hijacked by copying the url. This request filter prevents this by requiring a browser session cookie associated to the Seaside session. As a result, a copied Seaside url can only be used in the same browser session. -The use of this filter, in combination with WAQueryFieldHandlerTrackingStrategy, keeps the ability for a user to open multiple sessions of the same Seaside application in a single browser, while removing easy session hijacking. A malicious user that wants to hijack the session now needs both the url and the cookie. \ No newline at end of file +The use of this filter, in combination with WAQueryFieldHandlerTrackingStrategy, keeps the ability for a user to open multiple sessions of the same Seaside application in a single browser, while removing easy session hijacking. A malicious user that wants to hijack the session now needs both the url and the cookie. + +The appropriate use of this filter is to add it to the session in the `initializeFilters` method of your session class. Only in this way, the session is protected from the first rendered application page onwards. See WASessionCookieProtectedSession class as an example. \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st index 9c57250fa..5e72d9674 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st @@ -7,7 +7,7 @@ handleFiltered: aRequestContext ifNotNil: [ (self privateVerifyBrowserSession: aRequestContext) ifFalse: [ - "If we carry a redirected url field, we have tried setting a cookie, which failed. + "If we carry a redirected url field, we have tried setting a cookie, which failed. Stop here to avoid infinite redirect. In the other case, treat the request identical to when the session expired." (self requestContext request queryFields includesKey: 'cookiecheck') ifTrue:[ self respondCookiesRequired: aRequestContext ] diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st index 20a12441e..014e82600 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st @@ -1,7 +1,7 @@ private privateSetBrowserSessionID: aRequestContext "If there already is a browser session cookie, we reuse this one. - We can associate multiple session with a single browser session." + This means we can have multiple sessions open in a single browser, because they share the browser session id." (aRequestContext request cookieAt: self class browserSessionIDCookieKey) ifNotNil: [ :cookie | self privateBrowserSessionID: cookie value ] ifNil: [ @@ -11,9 +11,9 @@ privateSetBrowserSessionID: aRequestContext (aRequestContext newCookie path: '/'; key: self class browserSessionIDCookieKey; - secure: GRPlatform current isPharo not; + secure: false; value: self browserSessionID); redirectTo: (aRequestContext request url copy - addField: self application keyField value: self session key; + addField: self application trackingStrategy keyField value: self session key; addField: 'cookiecheck' value: nil; yourself) ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/renderCookiesRequiredStatementOn..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/renderCookiesRequiredStatementOn..st new file mode 100644 index 000000000..e8c591d55 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/renderCookiesRequiredStatementOn..st @@ -0,0 +1,3 @@ +processing +renderCookiesRequiredStatementOn: html + html text: 'Sorry, but this application requires cookies to be enabled' \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st index 407451721..42fccafb2 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/respondCookiesRequired..st @@ -7,7 +7,7 @@ respondCookiesRequired: aRequestContext root beHtml5; title: 'Cookies Required' ]; - render: [ :html | "html render: NPCookiesDisabledComponent new" ]. + render: [ :html | self renderCookiesRequiredStatementOn: html ]. aRequestContext respond: [ :response | response diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json index c27658654..4efe9a398 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "JohanBrichau 8/4/2019 07:29", + "commentStamp" : "JohanBrichau 8/24/2019 13:30", "super" : "WAAbstractProtectionFilter", "category" : "Seaside-Core-Filter", "classinstvars" : [ ], diff --git a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st new file mode 100644 index 000000000..a9db3840b --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st @@ -0,0 +1,4 @@ +initialization +initializeFilters + super initializeFilters. + self addFilter: WASessionCookieProtectionFilter new. \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json new file mode 100644 index 000000000..d8368b2d7 --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "WASession", + "category" : "Seaside-Examples", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "WASessionCookieProtectedSession", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/handlerName.st b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/handlerName.st new file mode 100644 index 000000000..09630bc28 --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/handlerName.st @@ -0,0 +1,3 @@ +accessing +handlerName + ^ 'examples/sessionprotected-counter' \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/initialize.st b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/initialize.st new file mode 100644 index 000000000..f0be43b5b --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/class/initialize.st @@ -0,0 +1,5 @@ +initialization +initialize + | app | + app := WAAdmin register: self asApplicationAt: self handlerName. + app sessionClass: WASessionCookieProtectedSession \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st new file mode 100644 index 000000000..0a166ec98 --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st @@ -0,0 +1,4 @@ +rendering +renderContentOn: html + super renderContentOn: html. + html paragraph: 'I am the Counter example using WASessionCookieProtectionFilter so you cannot copy/paste the url in another browser to hijack my session. See the class comment of WASessionCookieProtectionFilter for more information.' \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json new file mode 100644 index 000000000..fbe91378a --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "WACounter", + "category" : "Seaside-Examples-Misc", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "WASessionProtectedCounter", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Examples.package/monticello.meta/version b/repository/Seaside-Examples.package/monticello.meta/version deleted file mode 100644 index 7a881f5c4..000000000 --- a/repository/Seaside-Examples.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'Seaside-Examples-pmm.35' message 'Seaside-Examples should depend on JQuery - #893' id '6c746121-1215-0d00-9405-2d4704aeb9ca' date '8 September 2017' time '6:51:50.86828 pm' author 'pmm' ancestors ((name 'Seaside-Examples-pmm.34' message '- lint fixes' id '497cc867-68ca-4fe0-ae95-faf2c4de7fcf' date '25 August 2016' time '6:07:20.690733 pm' author 'pmm' ancestors ((name 'Seaside-Examples-pmm.33' message '- fix class comment' id 'ade67030-ffc9-4dae-89c4-713d567df91a' date '25 August 2016' time '3:38:54.868748 pm' author 'pmm' ancestors ((name 'Seaside-Examples-pmm.32' message '- lint fixes' id '9d4ec4b7-ebb2-4506-816d-5fc9f3b5a339' date '25 August 2016' time '10:40:56.819853 am' author 'pmm' ancestors ((name 'Seaside-Examples-JohanBrichau.31' message 'Renamed #example to #exampleComponent as the method name is too generic and the WAExampleBrowser breaks once the Seaside-Bootstrap project is loaded' id '3e98396e-f48f-4501-9d88-939b437073d6' date '24 October 2015' time '6:27:37.205911 pm' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-JohanBrichau.26' message 'Renamed #example to #exampleComponent as the method name is too generic and the WAExampleBrowser breaks once the Seaside-Bootstrap project is loaded' id '7e1ee0f5-f730-4c97-a254-dbecb51cc17d' date '24 October 2015' time '4:40:09.760808 pm' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-JohanBrichau.25' message 'Added traditional Seaside implementation of todo app' id '2d873362-3ab2-453c-95a8-89006bfd2bab' date '18 August 2014' time '9:46:59.670195 am' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-pmm.24' message '- Slime fixes, mostly recategorizations' id '872191b8-8a81-4a45-856f-b7f959170270' date '3 September 2012' time '4:39:09 pm' author 'pmm' ancestors ((name 'Seaside-Examples-lr.23' message '- fixed formatting of return message' id '55bd4265-5c72-44b6-b389-d6948809a25f' date '25 July 2011' time '8:20:12 pm' author 'lr' ancestors ((name 'Seaside-Examples-pmm.22' message '- lint fixes' id 'b7864378-398f-4c65-b4dd-29d438124a72' date '18 February 2011' time '11:15:54 pm' author 'pmm' ancestors ((name 'Seaside-Examples-pmm.21' message '- Issue 522: WAFileLibrary generated methods don''t have timestamps - http://code.google.com/p/seaside/issues/detail?id=522' id 'd37e6c7c-2e5f-484d-a0ca-e92eb7aad83a' date '12 February 2011' time '9:37:20 pm' author 'pmm' ancestors ((name 'Seaside-Examples-as.20' message 'Issue 639: merge WAHtmlCanvas and WARenderCanvas http://code.google.com/p/seaside/issues/detail?id=639' id '3188b2ac-181a-8844-bc31-018ba4be3ee3' date '6 February 2011' time '10:14:39 pm' author 'as' ancestors ((name 'Seaside-Examples-lr.19' message '- fixed the font-family in css' id '6347e351-827c-472b-91a4-1f5e0177c5a0' date '14 July 2010' time '10:12:49 am' author 'lr' ancestors ((name 'Seaside-Examples-jok.18' message '- http://code.google.com/p/seaside/issues/detail?id=555 - add #beginsWithSubCollection: and #endsWithSubCollection:' id '458e3d78-13a9-1f49-8f66-16ef6f5baab6' date '25 March 2010' time '11:15:03 am' author 'jok' ancestors ((name 'Seaside-Examples-lr.17' message '- added explicit repository url' id 'f22fb78e-4bb7-41e2-82cd-2727359536ef' date '17 February 2010' time '3:54:50 pm' author 'lr' ancestors ((name 'Seaside-Examples-jf.16' message 'change senders of #asSortedCollection to #sorted (now defined by Grease) where we don''t actually need to add items to the collection after it is sorted. (this turns out to be ALL senders of #asSortedCollection :) ).' id '2ddd3af9-f2f4-4b22-aa07-5f410f0224a2' date '15 February 2010' time '11:42:23 pm' author 'jf' ancestors ((name 'Seaside-Examples-jf.15' message 'Rename Seaside-Platform to Grease in order to help make clear that it is not Seaside-specific and can be used by other projects as a compatibility layer. This was spawned by discussions when I started porting Magritte to VAST using the Platform layer.' id '29a4ba77-93eb-440f-956b-9d01b70cd98d' date '30 September 2009' time '10:52 pm' author 'jf' ancestors ((name 'Seaside-Examples-jf.14' message 'Merge WAEntryPoint in WARequestHandler' id '42804c68-b800-4ce1-bb4b-a52baeb066dd' date '27 September 2009' time '10:06:28 pm' author 'jf' ancestors ((name 'Seaside-Examples-jf.13' message 'correctly identify Examples package dependency on Seaside-Canvas' id 'ac7333fa-cb6f-4760-83e1-b02187736e44' date '19 July 2009' time '7:42:53 pm' author 'jf' ancestors ((name 'Seaside-Examples-lr.12' message '- fixed various lint issues' id '517883f5-5838-4420-a521-c2fd98eb22f4' date '5 March 2009' time '9:17:41 pm' author 'lr' ancestors ((name 'Seaside-Examples-pmm.11' message '- remove literal caching' id '592737f3-9509-49d8-9911-9b0996a908cc' date '21 February 2009' time '10:27:31 am' author 'pmm' ancestors ((name 'Seaside-Examples-jf.10' message 'remove a class that got committed accidentally with an obsolete super' id 'e4581880-5f5d-47df-a450-1ec59daa9910' date '1 February 2009' time '8:42:50 pm' author 'jf' ancestors ((name 'Seaside-Examples-jf.9' message 'move a method on WAComponent into this package and fix an HTML validation problem with forms that didn''t have divs inside them' id '7480b71d-872b-41ab-88ad-a871159ccea8' date '11 January 2009' time '5:10:56 pm' author 'jf' ancestors ((name 'Seaside-Examples-lr.8' message '- do not use deprecated javascript cruft anymore' id '6996bdfc-3712-4c9b-8a35-dfb913baef23' date '27 December 2008' time '5:42:34 pm' author 'lr' ancestors ((name 'Seaside-Examples-lr.7' message '- cleanup of method protocols - fixed inconsistencies' id '08465a3f-df11-4d86-8c6c-540f67029892' date '29 November 2008' time '2:13:08 pm' author 'lr' ancestors ((name 'Seaside-Examples-jf.6' message 'http://code.google.com/p/seaside/issues/detail?id=209 Fix senders of deprecated #registerAsApplication:' id 'f8898059-b5f9-6d43-8a75-0a0b1555ea1a' date '26 October 2008' time '6:14:51 pm' author 'jf' ancestors ((name 'Seaside-Examples-lr.5' message '- updating package information' id '279ada08-4fc9-4b5c-9ab1-f6437bc03ca7' date '23 October 2008' time '10:07:50 pm' author 'lr' ancestors ((name 'Seaside-Examples-jf.4' message 'Added my best guess at package dependency information (please fill in descriptions)' id '9fdf7a75-3697-f142-8079-7f0a902c25f5' date '23 October 2008' time '12:35:25 pm' author 'jf' ancestors ((name 'Seaside-Examples-pmm.2' message '- fixed http://code.google.com/p/seaside/issues/detail?id=61' id '7b4fc1f3-e016-4283-b8df-bf5176e0bda0' date '24 April 2008' time '6:50:41 am' author 'pmm' ancestors ((name 'Seaside-Examples-pmm.1' message '- version bump at Operation STABILO 2007' id '1cc310b8-a28b-e046-954e-9119b6e9ffce' date '6 November 2007' time '9:31 pm' author 'pmm' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Examples-JohanBrichau.30' message 'add missing method' id '0d929a89-d432-4b44-aee0-bd412018d97c' date '21 August 2014' time '3:08:35.302676 pm' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-JohanBrichau.29' message 'Use delegated event handlers with Seaside passengers' id '458bd277-f31e-443b-95ad-b3b27a929ca3' date '18 August 2014' time '10:07:27.127883 am' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-JohanBrichau.28' message 'Combining ajax callbacks to reduce the amount of requests' id '8da50ca0-0e6c-451e-97e9-8385f6c2aaa5' date '18 August 2014' time '9:57:36.730499 am' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-JohanBrichau.27' message 'Added basic ajax callbacks' id '6eea4a5a-e229-424b-a3af-7729fe2380f7' date '18 August 2014' time '9:55:34.452721 am' author 'JohanBrichau' ancestors ((name 'Seaside-Examples-JohanBrichau.26' message 'corrected todo example' id 'af679c41-c2fe-4627-8881-fd3caf40ca7e' date '18 August 2014' time '9:48:55.361042 am' author 'JohanBrichau' ancestors ((id '2d873362-3ab2-453c-95a8-89006bfd2bab')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file From 29c9f3b16e9e1cf99e4e700cca996cfae15e6cf9 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sat, 24 Aug 2019 17:06:59 +0200 Subject: [PATCH 03/33] session-protection filter cookie: use 'sameSite:Strict' and use the 'secure' and 'path' properties already set by the standard cookie creation method. --- .../instance/privateSetBrowserSessionID..st | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st index 014e82600..a463ae8fb 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st @@ -9,9 +9,8 @@ privateSetBrowserSessionID: aRequestContext aRequestContext response addCookie: (aRequestContext newCookie - path: '/'; + sameSite: 'Strict'; key: self class browserSessionIDCookieKey; - secure: false; value: self browserSessionID); redirectTo: (aRequestContext request url copy addField: self application trackingStrategy keyField value: self session key; From 0624ce1911b88d359aa2bb749903a40ff2b601e6 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Sun, 25 Aug 2019 11:18:21 +0200 Subject: [PATCH 04/33] 1146 Fix WAComboResponse class comment Fixes #1146 --- .../Seaside-Core.package/WAComboResponse.class/README.md | 9 ++++----- .../WAComboResponse.class/properties.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/repository/Seaside-Core.package/WAComboResponse.class/README.md b/repository/Seaside-Core.package/WAComboResponse.class/README.md index 65e758b70..a829f2917 100644 --- a/repository/Seaside-Core.package/WAComboResponse.class/README.md +++ b/repository/Seaside-Core.package/WAComboResponse.class/README.md @@ -4,12 +4,11 @@ renderContentOn: aCanvas "Render the search page" self renderSearchLabelOn: aCanvas. - aCanvas flush. "flush before starting search to give immediate feedback" + self requestContext request flush. "flush before starting search to give immediate feedback" - self searchResultsDo:[:aResult| - self renderSearchResultOn: aCanvas. - aCanvas flush. "flush after each search result" - ]. + self searchResultsDo: [ :result | + self renderSearchResult: result on: aCanvas. + self requestContext request flush "flush after each search result" ] After a response has been flushed once, header modifications are no longer possible and will raise a WAIllegalStateException. diff --git a/repository/Seaside-Core.package/WAComboResponse.class/properties.json b/repository/Seaside-Core.package/WAComboResponse.class/properties.json index fcbcfe5b9..13d822eec 100644 --- a/repository/Seaside-Core.package/WAComboResponse.class/properties.json +++ b/repository/Seaside-Core.package/WAComboResponse.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "ar 8/4/2010 20:31", + "commentStamp" : "pmm 8/25/2019 11:14", "super" : "WAResponse", "category" : "Seaside-Core-HTTP", "classinstvars" : [ ], From 964bc77ae27f5172a7b31a2aaf87b55410acb62b Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 25 Aug 2019 11:54:14 +0200 Subject: [PATCH 05/33] Incorporate fixes for comments in PR 1148 and fix the functional test --- .../browserSessionIDCookieKey.st | 2 +- .../instance/browserSessionIDSize.st | 4 ++++ .../createBrowserSessionIDCookieFor..st | 7 +++++++ .../instance/handleFiltered..st | 8 ++++---- .../instance/privateBrowserSessionID..st | 3 --- .../instance/privateBrowserSessionIDSize.st | 4 ---- .../instance/privateSetBrowserSessionID..st | 18 ------------------ .../instance/privateVerifyBrowserSession..st | 5 ----- .../instance/setBrowserSessionIDFor..st | 14 ++++++++++++++ .../instance/verifyBrowserSessionIDFor..st | 5 +++++ .../instance/initialize.st | 4 ++++ .../instance/renderContentOn..st | 2 +- .../properties.json | 6 ++++-- .../protectorByBrowserSessionCookie.st | 7 +++++++ ...rotector.st => protectorByRemoteAddress.st} | 4 ++-- .../instance/renderActionsOn..st | 8 ++++++-- 16 files changed, 59 insertions(+), 42 deletions(-) rename repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/{class => instance}/browserSessionIDCookieKey.st (73%) create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDSize.st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/createBrowserSessionIDCookieFor..st delete mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st delete mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st delete mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st delete mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/verifyBrowserSessionIDFor..st create mode 100644 repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/initialize.st create mode 100644 repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByBrowserSessionCookie.st rename repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/{protector.st => protectorByRemoteAddress.st} (83%) diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDCookieKey.st similarity index 73% rename from repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st rename to repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDCookieKey.st index 821eb4e23..ff9d07537 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/class/browserSessionIDCookieKey.st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDCookieKey.st @@ -1,4 +1,4 @@ -private - constants +constants browserSessionIDCookieKey ^ 'seaside_browser_session' \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDSize.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDSize.st new file mode 100644 index 000000000..411d270f7 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/browserSessionIDSize.st @@ -0,0 +1,4 @@ +constants +browserSessionIDSize + + ^ 20 \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/createBrowserSessionIDCookieFor..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/createBrowserSessionIDCookieFor..st new file mode 100644 index 000000000..9617ca9fa --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/createBrowserSessionIDCookieFor..st @@ -0,0 +1,7 @@ +private +createBrowserSessionIDCookieFor: aRequestContext + "Override this to customize cookie properties that fit your application needs" + ^ aRequestContext newCookie + sameSite: 'Strict'; + key: self browserSessionIDCookieKey; + value: self browserSessionID \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st index 5e72d9674..81e6d0a29 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st @@ -3,13 +3,13 @@ handleFiltered: aRequestContext "If the browserSessionID instvar is nil, we are a newly created session and should set our browser session id. Otherwise, verify the browser session id for the current request." self browserSessionID - ifNil: [ self privateSetBrowserSessionID: aRequestContext ] + ifNil: [ self setBrowserSessionIDFor: aRequestContext ] ifNotNil: [ - (self privateVerifyBrowserSession: aRequestContext) + (self verifyBrowserSessionIDFor: aRequestContext) ifFalse: [ "If we carry a redirected url field, we have tried setting a cookie, which failed. Stop here to avoid infinite redirect. - In the other case, treat the request identical to when the session expired." + In the other case, respond with the forbidden status code" (self requestContext request queryFields includesKey: 'cookiecheck') ifTrue:[ self respondCookiesRequired: aRequestContext ] - ifFalse: [ aRequestContext registry handleExpired: aRequestContext ] ] ]. + ifFalse: [ aRequestContext responseGenerator forbidden; respond ] ] ]. super handleFiltered: aRequestContext \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st deleted file mode 100644 index 2461ce7cd..000000000 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionID..st +++ /dev/null @@ -1,3 +0,0 @@ -private -privateBrowserSessionID: aValue - browserSessionID := aValue \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st deleted file mode 100644 index e74595729..000000000 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateBrowserSessionIDSize.st +++ /dev/null @@ -1,4 +0,0 @@ -private -privateBrowserSessionIDSize - - ^ 20 \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st deleted file mode 100644 index a463ae8fb..000000000 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateSetBrowserSessionID..st +++ /dev/null @@ -1,18 +0,0 @@ -private -privateSetBrowserSessionID: aRequestContext - "If there already is a browser session cookie, we reuse this one. - This means we can have multiple sessions open in a single browser, because they share the browser session id." - (aRequestContext request cookieAt: self class browserSessionIDCookieKey) - ifNotNil: [ :cookie | self privateBrowserSessionID: cookie value ] - ifNil: [ - self privateBrowserSessionID: (WAKeyGenerator current keyOfLength: self privateBrowserSessionIDSize). - aRequestContext response - addCookie: - (aRequestContext newCookie - sameSite: 'Strict'; - key: self class browserSessionIDCookieKey; - value: self browserSessionID); - redirectTo: (aRequestContext request url copy - addField: self application trackingStrategy keyField value: self session key; - addField: 'cookiecheck' value: nil; - yourself) ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st deleted file mode 100644 index 6480f6784..000000000 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/privateVerifyBrowserSession..st +++ /dev/null @@ -1,5 +0,0 @@ -private -privateVerifyBrowserSession: requestContext - | cookie | - cookie := requestContext request cookieAt: self class browserSessionIDCookieKey. - ^ cookie notNil and: [ cookie value = self browserSessionID ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st new file mode 100644 index 000000000..788f34826 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st @@ -0,0 +1,14 @@ +private +setBrowserSessionIDFor: aRequestContext + "If there already is a browser session cookie, we reuse this one. + This means we can have multiple sessions open in a single browser, because they share the browser session id." + (aRequestContext request cookieAt: self browserSessionIDCookieKey) + ifNotNil: [ :cookie | browserSessionID := cookie value ] + ifNil: [ + browserSessionID := (WAKeyGenerator current keyOfLength: self browserSessionIDSize). + aRequestContext response + addCookie: (self createBrowserSessionIDCookieFor: aRequestContext); + redirectTo: (aRequestContext request url copy + addField: self application trackingStrategy keyField value: self session key; + addField: 'cookiecheck' value: nil; + yourself) ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/verifyBrowserSessionIDFor..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/verifyBrowserSessionIDFor..st new file mode 100644 index 000000000..a23c9449c --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/verifyBrowserSessionIDFor..st @@ -0,0 +1,5 @@ +private +verifyBrowserSessionIDFor: requestContext + | cookie | + cookie := requestContext request cookieAt: self browserSessionIDCookieKey. + ^ cookie notNil and: [ cookie value = self browserSessionID ] \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/initialize.st b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/initialize.st new file mode 100644 index 000000000..5aec317f5 --- /dev/null +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/initialize.st @@ -0,0 +1,4 @@ +initialization +initialize + super initialize. + counter := WACounter new \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st index 0a166ec98..c3b1b730d 100644 --- a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/instance/renderContentOn..st @@ -1,4 +1,4 @@ rendering renderContentOn: html - super renderContentOn: html. + counter renderOn: html. html paragraph: 'I am the Counter example using WASessionCookieProtectionFilter so you cannot copy/paste the url in another browser to hijack my session. See the class comment of WASessionCookieProtectionFilter for more information.' \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json index fbe91378a..ff5e95dd0 100644 --- a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json @@ -1,11 +1,13 @@ { "commentStamp" : "", - "super" : "WACounter", + "super" : "WAExampleComponent", "category" : "Seaside-Examples-Misc", "classinstvars" : [ ], "pools" : [ ], "classvars" : [ ], - "instvars" : [ ], + "instvars" : [ + "counter" + ], "name" : "WASessionProtectedCounter", "type" : "normal" } \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByBrowserSessionCookie.st b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByBrowserSessionCookie.st new file mode 100644 index 000000000..6b661248c --- /dev/null +++ b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByBrowserSessionCookie.st @@ -0,0 +1,7 @@ +actions +protectorByBrowserSessionCookie + | filter | + "We could use #filterWith:during: but that requires Flow." + filter := WASessionCookieProtectionFilter new. + self session addFilter: filter. + child inform: 'Open this page in a different browser by copying the complete URL. Seaside should reply with a forbidden message. Closing this dialog should remove the filter.' onAnswer: [ self session removeFilter: filter ] \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByRemoteAddress.st similarity index 83% rename from repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st rename to repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByRemoteAddress.st index a65dad185..e59d4a10e 100644 --- a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protector.st +++ b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/protectorByRemoteAddress.st @@ -1,7 +1,7 @@ actions -protector +protectorByRemoteAddress | filter | "We could use #filterWith:during: but that requires Flow." - filter := WAAbstractProtectionFilter new. + filter := WARemoteAddressProtectionFilter new. self session addFilter: filter. child inform: 'Open this page on a different computer by copying the complete URL to a machine with a different IP address. Seaside should reply with a forbidden message. Closing this dialog should remove the filter.' onAnswer: [ self session removeFilter: filter ] \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/renderActionsOn..st b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/renderActionsOn..st index 147a98ebd..1cacf8e35 100644 --- a/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/renderActionsOn..st +++ b/repository/Seaside-Tests-Functional.package/WAFilterFunctionalTest.class/instance/renderActionsOn..st @@ -7,7 +7,11 @@ renderActionsOn: html html text: ' (admin/seaside)'. html break. html anchor - callback: [ self protector ]; - with: 'Session Protector' ]. + callback: [ self protectorByRemoteAddress ]; + with: 'Session Protector by remote address'. + html break. + html anchor + callback: [ self protectorByBrowserSessionCookie ]; + with: 'Session Protector by session cookie' ]. html horizontalRule. html paragraph: self children \ No newline at end of file From 6969c38672d3077bc6fb1a1ac924353c2f02212c Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Sun, 25 Aug 2019 12:31:29 +0200 Subject: [PATCH 06/33] 1134 Replace #replaceAll:with: with #copyReplaceAll:with: Fixes #1134 --- .../class/addFileAt.relativeToRootDirectory..st | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repository/Seaside-Core.package/WAFileMetadataLibrary.class/class/addFileAt.relativeToRootDirectory..st b/repository/Seaside-Core.package/WAFileMetadataLibrary.class/class/addFileAt.relativeToRootDirectory..st index 31d749ee2..bbbeab922 100644 --- a/repository/Seaside-Core.package/WAFileMetadataLibrary.class/class/addFileAt.relativeToRootDirectory..st +++ b/repository/Seaside-Core.package/WAFileMetadataLibrary.class/class/addFileAt.relativeToRootDirectory..st @@ -6,8 +6,8 @@ addFileAt: aPath relativeToRootDirectory: relativeRootDirectory (relativeFilepath first = pathSeparator first) ifTrue: [ relativeFilepath := relativeFilepath allButFirst ]. - - relativeFilepath := relativeFilepath replaceAll: pathSeparator first with: $/. + + relativeFilepath := relativeFilepath copyReplaceAll: pathSeparator with: '/'. self addFileNamed: relativeFilepath contents: (GRPlatform current From 532d1df1b92ad14666cb9188e7ae36bb4fded8e0 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Sun, 25 Aug 2019 16:20:41 +0200 Subject: [PATCH 07/33] Fix class comment --- .../WAQueryFieldHandlerTrackingStrategy.class/README.md | 4 +++- .../WAQueryFieldHandlerTrackingStrategy.class/properties.json | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md index 55cc16ece..64f896476 100644 --- a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md +++ b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/README.md @@ -4,4 +4,6 @@ I track request handlers using a query field. This results in URLs looking like This is a very simple and robust approach. It is also very convenient for development. Just remove the _s and you have a new session. -However there are some drawbacks. The smallest is aesthetical, the URL in the address bar of the browser is less "clean". Second because the session id is part of the request URL it shows up in all kinds of places. For example server logs. Not only the log of the server running the application but also very web site visited from there because it shows up in the Referer HTTP header. The danger of this is that when somebody knows the session id of somebody else he can take over his session. Most of these problems can be mitigated by adding a WARemoteAddressProtectionFilter or WASessionCookieProtectionFilter to every session. The first one this creates new problems for users with changing IPs (eg. mobile devices). \ No newline at end of file +However there are some drawbacks. The smallest is aesthetical, the URL in the address bar of the browser is less "clean". Second because the session id is part of the request URL it shows up in all kinds of places. For example server logs. Not only the log of the server running the application but also very web site visited from there because it shows up in the Referer HTTP header. The danger of this is that when somebody knows the session id of somebody else he can take over his session. Most of these problems can be mitigated by adding a WARemoteAddressProtectionFilter or WASessionCookieProtectionFilter to every session. + +Mind that WARemoteAddressProtectionFilter creates new problems for users with changing IPs (eg. mobile devices) and WASessionCookieProtectionFilter requires cookies. \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json index a70da55c4..6816ad874 100644 --- a/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json +++ b/repository/Seaside-Core.package/WAQueryFieldHandlerTrackingStrategy.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "JohanBrichau 8/4/2019 07:31", + "commentStamp" : "JohanBrichau 8/25/2019 16:20", "super" : "WAHandlerTrackingStrategy", "category" : "Seaside-Core-RequestHandling", "classinstvars" : [ ], From e4bdb804b162b550881d116d3214b680e402c18c Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Mon, 26 Aug 2019 11:32:38 +0200 Subject: [PATCH 08/33] Set seasideVersion to 3.4.0 --- .../GRPlatform.extension/instance/seasideVersion.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/Seaside-Core.package/GRPlatform.extension/instance/seasideVersion.st b/repository/Seaside-Core.package/GRPlatform.extension/instance/seasideVersion.st index 7c4bf1475..0e693b448 100644 --- a/repository/Seaside-Core.package/GRPlatform.extension/instance/seasideVersion.st +++ b/repository/Seaside-Core.package/GRPlatform.extension/instance/seasideVersion.st @@ -2,5 +2,5 @@ seasideVersion "Answer the Seaside version" - ^ (GRVersion major: 3 minor: 3 revision: 0) + ^ (GRVersion major: 3 minor: 4 revision: 0) yourself \ No newline at end of file From c8080ed6dc334016d2ebd698454b2f4d8a87954e Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Mon, 26 Aug 2019 12:07:36 +0200 Subject: [PATCH 09/33] 1032 Fix WAScreenshot>>uiProcess problem in Squeak Fixes #1032 --- .../WAScreenshot.class/instance/uiProcess.st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/Seaside-Squeak-Tools-Web.package/WAScreenshot.class/instance/uiProcess.st b/repository/Seaside-Squeak-Tools-Web.package/WAScreenshot.class/instance/uiProcess.st index 07b637af9..530f88dc1 100644 --- a/repository/Seaside-Squeak-Tools-Web.package/WAScreenshot.class/instance/uiProcess.st +++ b/repository/Seaside-Squeak-Tools-Web.package/WAScreenshot.class/instance/uiProcess.st @@ -1,3 +1,3 @@ private uiProcess - ^ UIManager default uiProcess \ No newline at end of file + ^ Project current uiProcess \ No newline at end of file From 09d2eb30f9ec3d6a0ccc915576360a786f764638 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Sun, 25 Aug 2019 16:30:13 +0200 Subject: [PATCH 10/33] Do not parse result of Zinc URL parsing Fixes #1041 --- .../WADispatcher.class/instance/handlerAt..st | 3 +-- .../instance/handlerAt.ifAbsent..st | 12 +++++------- .../instance/handlerAt.with..st | 7 ------- .../instance/handlerAtAll..st | 4 ++++ .../WAUrl.class/instance/rawAddAllToPath..st | 5 +++++ .../WAUrl.class/instance/rawAddToPath..st | 5 +++++ .../instance/testRawAddAllToPath.st | 7 +++++++ .../instance/testRawAddToPath.st | 4 ++++ .../Seaside-Tests-Examples.package/.filetree | 5 +++-- .../GRPackage.extension/properties.json | 3 ++- .../instance/testDefaultCounterDirect.st | 2 +- .../properties.json | 19 ++++++++----------- .../monticello.meta/version | 1 - .../properties.json | 3 +-- .../README.md | 0 .../instance/renderContentOn..st | 11 +++++++++++ .../instance/renderExplanationOn..st | 3 +++ .../instance/runTest.st | 7 +++++++ .../instance/testPath.st | 11 +++++++++++ .../properties.json | 11 +++++++++++ .../monticello.meta/version | 1 - .../instance/testAllTests.st | 2 +- .../instance/requestUrlFor..st | 7 ++++--- 23 files changed, 94 insertions(+), 39 deletions(-) delete mode 100644 repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.with..st create mode 100644 repository/Seaside-Core.package/WADispatcher.class/instance/handlerAtAll..st create mode 100644 repository/Seaside-Core.package/WAUrl.class/instance/rawAddAllToPath..st create mode 100644 repository/Seaside-Core.package/WAUrl.class/instance/rawAddToPath..st create mode 100644 repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddAllToPath.st create mode 100644 repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddToPath.st delete mode 100644 repository/Seaside-Tests-Examples.package/monticello.meta/version create mode 100644 repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/README.md create mode 100644 repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderContentOn..st create mode 100644 repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderExplanationOn..st create mode 100644 repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/runTest.st create mode 100644 repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/testPath.st create mode 100644 repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/properties.json delete mode 100644 repository/Seaside-Tests-Functional.package/monticello.meta/version diff --git a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt..st b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt..st index 1e11e9675..c405f8b30 100644 --- a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt..st +++ b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt..st @@ -2,5 +2,4 @@ accessing handlerAt: aString ^ self handlerAt: aString - with: [ :dispatcher :token | - dispatcher handlers at: token ] \ No newline at end of file + ifAbsent: [ WAError signal: 'Handler not found.' ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.ifAbsent..st b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.ifAbsent..st index 537ccd517..308004806 100644 --- a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.ifAbsent..st +++ b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.ifAbsent..st @@ -1,9 +1,7 @@ accessing handlerAt: aString ifAbsent: aBlock - ^ self - handlerAt: (aString - ifNil: [ ^ aBlock value ]) - with: [ :dispatcher :token | - dispatcher handlers - at: token - ifAbsent: [ ^ aBlock value ] ] \ No newline at end of file + aString isNil + ifTrue: [ ^ aBlock value ]. + ^ self handlers + at: aString + ifAbsent: aBlock \ No newline at end of file diff --git a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.with..st b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.with..st deleted file mode 100644 index 0b5a5cc62..000000000 --- a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAt.with..st +++ /dev/null @@ -1,7 +0,0 @@ -accessing -handlerAt: aString with: aBlock - | dispatcher | - dispatcher := self. - GRPlatform subStringsIn: aString splitBy: $/ do: [ :token | - dispatcher := aBlock value: dispatcher value: token ]. - ^ dispatcher \ No newline at end of file diff --git a/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAtAll..st b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAtAll..st new file mode 100644 index 000000000..dd8fa6945 --- /dev/null +++ b/repository/Seaside-Core.package/WADispatcher.class/instance/handlerAtAll..st @@ -0,0 +1,4 @@ +accessing +handlerAtAll: aCollectionOfStrings + ^ aCollectionOfStrings inject: self into: [ :handler :element | + handler handlerAt: element ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAUrl.class/instance/rawAddAllToPath..st b/repository/Seaside-Core.package/WAUrl.class/instance/rawAddAllToPath..st new file mode 100644 index 000000000..8130514c1 --- /dev/null +++ b/repository/Seaside-Core.package/WAUrl.class/instance/rawAddAllToPath..st @@ -0,0 +1,5 @@ +adding +rawAddAllToPath: aCollectionOfStrings + "Add a collection of strings to the path. If an element contains $/ it is not split into multiple elements." + + aCollectionOfStrings do: [ :each | self rawAddToPath: each ] \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAUrl.class/instance/rawAddToPath..st b/repository/Seaside-Core.package/WAUrl.class/instance/rawAddToPath..st new file mode 100644 index 000000000..5e8ab677d --- /dev/null +++ b/repository/Seaside-Core.package/WAUrl.class/instance/rawAddToPath..st @@ -0,0 +1,5 @@ +adding +rawAddToPath: aString + "Adds the argument as a path element. If the argument contains $/ it is not split into multiple elements." + + self path add: aString \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddAllToPath.st b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddAllToPath.st new file mode 100644 index 000000000..2c64ec2ca --- /dev/null +++ b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddAllToPath.st @@ -0,0 +1,7 @@ +tests-adding +testRawAddAllToPath + url rawAddAllToPath: #('files/WAStandardFiles' 'seaside.jpg' ). + self assert: url path size = 2. + self assert: url path first = 'files/WAStandardFiles'. + self assert: url path last = 'seaside.jpg'. + self assert: url greaseString = '/files%2FWAStandardFiles/seaside.jpg' \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddToPath.st b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddToPath.st new file mode 100644 index 000000000..625ab188b --- /dev/null +++ b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testRawAddToPath.st @@ -0,0 +1,4 @@ +tests-adding +testRawAddToPath + url rawAddToPath: 'a/b'. + self assert: url greaseString = '/a%2Fb' \ No newline at end of file diff --git a/repository/Seaside-Tests-Examples.package/.filetree b/repository/Seaside-Tests-Examples.package/.filetree index 8998102c2..57a679737 100644 --- a/repository/Seaside-Tests-Examples.package/.filetree +++ b/repository/Seaside-Tests-Examples.package/.filetree @@ -1,4 +1,5 @@ { - "noMethodMetaData" : true, "separateMethodMetaAndSource" : false, - "useCypressPropertiesFile" : true } + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/Seaside-Tests-Examples.package/GRPackage.extension/properties.json b/repository/Seaside-Tests-Examples.package/GRPackage.extension/properties.json index dd2faaf08..ae522a7e0 100644 --- a/repository/Seaside-Tests-Examples.package/GRPackage.extension/properties.json +++ b/repository/Seaside-Tests-Examples.package/GRPackage.extension/properties.json @@ -1,2 +1,3 @@ { - "name" : "GRPackage" } + "name" : "GRPackage" +} \ No newline at end of file diff --git a/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/instance/testDefaultCounterDirect.st b/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/instance/testDefaultCounterDirect.st index bfebb6a90..e65307d0a 100644 --- a/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/instance/testDefaultCounterDirect.st +++ b/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/instance/testDefaultCounterDirect.st @@ -1,7 +1,7 @@ tests testDefaultCounterDirect | app | - app := self defaultDispatcher handlerAt: 'examples/counter'. + app := self defaultDispatcher handlerAtAll: #('examples' 'counter'). self assert: app class == WAApplication. self assert: app isApplication. self deny: app isDispatcher. diff --git a/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/properties.json b/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/properties.json index fb5b65dd1..8c278d7d2 100644 --- a/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/properties.json +++ b/repository/Seaside-Tests-Examples.package/WAExamplesDefaultHandlersTest.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Seaside-Tests-Examples", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "WAExamplesDefaultHandlersTest", - "pools" : [ - ], "super" : "WAEnvironmentDefaultHandlersTest", - "type" : "normal" } + "category" : "Seaside-Tests-Examples", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "WAExamplesDefaultHandlersTest", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Tests-Examples.package/monticello.meta/version b/repository/Seaside-Tests-Examples.package/monticello.meta/version deleted file mode 100644 index 215cd74de..000000000 --- a/repository/Seaside-Tests-Examples.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'Seaside-Tests-Examples-pmm.11' message 'Issue 749: Wrong handling of urls encoded in UTF8 http://code.google.com/p/seaside/issues/detail?id=749' id '7f0f7f66-15d6-473b-ba74-67a0a0e8d2b4' date '8 September 2013' time '4:30:50 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Examples-pmm.10' message '- remove deprecated methods and classes' id '1ca87268-bd15-40f3-9d17-2b759542f1dc' date '2 August 2011' time '9:10:46 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Examples-lr.9' message '- renamed all #testing protocols in TestCase classes with test methods to #tests or #tests-*, as discussed in the mailing list: #testing is for predicate methods, not unit tests. I''ve been moving them to #tests or #tests-* gradually but it might be good to do a sweeping change if others agree with me.' id '9026dab6-7efc-4d8a-a551-6a5ce07e9053' date '30 March 2010' time '9:00:35 am' author 'lr' ancestors ((name 'Seaside-Tests-Examples-lr.8' message '- added explicit repository url' id 'ba2fe204-6cc8-4cb1-9a2c-864a773b428f' date '17 February 2010' time '3:50:09 pm' author 'lr' ancestors ((name 'Seaside-Tests-Examples-lr.7' message '- do not use any longer #printOn: and #printContentOn: in JSObject, but use #javascriptOn: and #javascriptContentOn: - implementors of external libraries that implment or send any of these methods need to perform the renaming as well' id '094d15a3-4fbe-40ed-b139-2a537c50007a' date '24 December 2009' time '11:24:50 am' author 'lr' ancestors ((name 'Seaside-Tests-Examples-jf.6' message 'Without #baseUrl, #basePath seems pretty silly. So deprecate that too ("handler url pathString" will get it for you)' id '07f73776-932f-47d3-8d82-25dbd6925a97' date '3 November 2009' time '1:41:35 am' author 'jf' ancestors ((name 'Seaside-Tests-Examples-jf.5' message 'Rename Seaside-Platform to Grease in order to help make clear that it is not Seaside-specific and can be used by other projects as a compatibility layer. This was spawned by discussions when I started porting Magritte to VAST using the Platform layer.' id '6cc73d63-1b39-4d1b-a753-4f5e39031127' date '30 September 2009' time '10:54:46 pm' author 'jf' ancestors ((name 'Seaside-Tests-Examples-pmm.4' message '- Issue 448: remove name from WAEntryPoint - http://code.google.com/p/seaside/issues/detail?id=448' id '946fe9b6-868b-4530-ab9e-92ab495fd767' date '5 September 2009' time '3:20:46 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Examples-jok.3' message 'Change dependency to Seaside-Tests-Environment' id '26af7f0b-a380-b745-95a6-6b369f00426e' date '21 July 2009' time '10:59:55 am' author 'jok' ancestors ((name 'Seaside-Tests-Examples-jf.2' message 'forgot to define a package method' id '621426c3-e5cf-46d1-aa68-ffd95fe12bb0' date '19 July 2009' time '7:42:09 pm' author 'jf' ancestors ((name 'Seaside-Tests-Examples-jf.1' message 'Move tests for the registration of default handlers into the tests for the packages that actually define the handlers. This may not ultimately be the correct solution if we move to a declaritive mechanism of defining these things and have them loaded by a single package but it is correct for the current behaviour and gets these long-failing tests passing. Note that Seaside-Tests-Examples is a new package.' id 'a28c0371-d8f4-443d-94cb-2ca16e14a8e2' date '19 July 2009' time '12:06:48 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Seaside-Tests-Examples.package/properties.json b/repository/Seaside-Tests-Examples.package/properties.json index f037444a7..6f31cf5a2 100644 --- a/repository/Seaside-Tests-Examples.package/properties.json +++ b/repository/Seaside-Tests-Examples.package/properties.json @@ -1,2 +1 @@ -{ - } +{ } \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/README.md b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderContentOn..st b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderContentOn..st new file mode 100644 index 000000000..e0331b41d --- /dev/null +++ b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderContentOn..st @@ -0,0 +1,11 @@ +rendering +renderContentOn: html + | url anchor | + self renderExplanationOn: html. + + url := self requestContext request url. + anchor := html anchor. + anchor url rawAddToPath: self testPath. + anchor + callback: [ self runTest ]; + with: 'Run Test' \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderExplanationOn..st b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderExplanationOn..st new file mode 100644 index 000000000..7fa19f6c7 --- /dev/null +++ b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/renderExplanationOn..st @@ -0,0 +1,3 @@ +rendering +renderExplanationOn: html + html paragraph: 'This tests whether url encoding works. Just click on "Run Test"'. \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/runTest.st b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/runTest.st new file mode 100644 index 000000000..225bbec2c --- /dev/null +++ b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/runTest.st @@ -0,0 +1,7 @@ +actions +runTest + | success | + success := self requestContext request url path last = self testPath. + success + ifTrue: [ self inform: 'Success!' onAnswer: [ "ignore" ] ] + ifFalse: [ self inform: 'Failed!' onAnswer: [ "ignore" ] ]. \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/testPath.st b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/testPath.st new file mode 100644 index 000000000..f0efcfa4f --- /dev/null +++ b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/instance/testPath.st @@ -0,0 +1,11 @@ +private +testPath + "answers 'tests/functional/WAUrlDecodingFunctionalTest'" + | url path | + url := self requestContext request url. + "this method is also called in #runTest where the path is already added, we don't want this" + path := url path first: (self application url path size + 1). + ^ String streamContents: [ :stream | + path + do: [ :each | stream nextPutAll: each ] + separatedBy: [ stream nextPut: $/ ] ] \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/properties.json b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/properties.json new file mode 100644 index 000000000..c5ced6629 --- /dev/null +++ b/repository/Seaside-Tests-Functional.package/WAUrlDecodingFunctionalTest.class/properties.json @@ -0,0 +1,11 @@ +{ + "commentStamp" : "", + "super" : "WAFunctionalTest", + "category" : "Seaside-Tests-Functional", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "WAUrlDecodingFunctionalTest", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Tests-Functional.package/monticello.meta/version b/repository/Seaside-Tests-Functional.package/monticello.meta/version deleted file mode 100644 index 565a0b7b5..000000000 --- a/repository/Seaside-Tests-Functional.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'Seaside-Tests-Functional-pmm.172' message '- add functional test for deprecation' id 'f4757c31-2032-0d00-a684-b59c0707b477' date '13 September 2018' time '12:49:07.821321 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.171' message '- found 20ms in WALotsaLinksFunctionalTest' id '962e5b52-0e96-4be9-a161-8b60d8e3a5f4' date '26 August 2016' time '10:09:21.620084 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.170' message '- direct rendering for numbers' id '81fdfefe-7bff-4989-b1c4-0c8f93e9b554' date '26 August 2016' time '8:57:34.97452 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.169' message 'Support inline CSS and JavaScript #839 - https://github.com/SeasideSt/Seaside/issues/839' id '5128a2c9-6e19-416e-ba8f-da355a400df2' date '21 August 2016' time '2:50:08.922968 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-JohanBrichau.168' message 'correction: datalist options should use the value attribute rather than nested text' id '9f3d948f-4670-4187-bfef-dc6f3e14294b' date '6 December 2015' time '11:31:35.18541 am' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-Functional-JohanBrichau.167' message 'Fix incomplete functional test for html5 datalist. Thanks to Hilaire for spotting.' id 'f7295892-03d6-4d1d-b391-88cd9ae1c355' date '6 December 2015' time '10:21:27.104394 am' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-Functional-pmm.166' message '- formatting - bug references' id 'cf5f6627-cc91-47a9-8eb6-be7f4e1ef657' date '14 July 2015' time '12:20:05.460422 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.165' message '- empty merge commit' id '1ca7e0ce-49ee-466f-a025-c00d8ed5499f' date '12 July 2015' time '10:35:35 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.164' message '#820 Configurations should not hold on to classes' id '94487524-8d17-4a8d-9fb9-d63dbb9384ea' date '12 July 2015' time '10:11:38 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.162' message '- lint fixes' id '780ca820-425c-4489-9706-04d6266202fc' date '19 August 2014' time '11:22:23 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.161' message 'Issue 763: Add support for srcset on img and source tag' id 'fd7b2ca1-9b59-466e-9613-cdf0d80b51c1' date '17 August 2014' time '8:23:47 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.160' message '- lint fixes' id '034ebe18-46b2-4f41-8e95-4e3e8b2afbff' date '16 August 2014' time '5:00 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.159' message '- fix tiger size' id '7108ebf0-7f70-4e4a-97d2-71e2d038e829' date '1 February 2014' time '5:38:31 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.158' message '- fix tiger URL' id '10293eae-f555-4f1e-ad6f-ed1199a0b93b' date '1 February 2014' time '5:35:47 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.157' message '- fine tune performance colors' id '9839ce1c-0e1f-400d-9253-8518337e5570' date '1 February 2014' time '5:27:21 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.156' message '- Slime' id '71fe90b1-6f24-4f2c-ab94-bbc087472724' date '14 September 2013' time '5:19:33 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.155' message '- Slime' id 'ba61b3b7-dd64-416c-9d11-06e0bb9d50d6' date '14 September 2013' time '5:05:42 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-JohanBrichau.154' message 'Moved Seaside-HTML5 to Seaside-Canvas and Seaside-Core' id 'fc89528c-d228-40e8-85e9-c508a1cf0168' date '12 September 2013' time '2:18:11.422 pm' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-Functional-pmm.153' message 'Issue 749: Wrong handling of urls encoded in UTF8 http://code.google.com/p/seaside/issues/detail?id=749' id '7158f325-52c1-414a-8645-ff150ba6ffa1' date '8 September 2013' time '4:31:04 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.152' message '- Slime fixes, mostly recategorizations' id '3a22cae5-b0c9-4c33-8c70-d2f0c19dd72e' date '3 September 2012' time '4:40 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.151' message '- formatting Nazis from outer space' id '6dd445c3-a8a3-4947-838a-7f94342848c3' date '1 September 2012' time '5:23:48 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.150' message '- formatting Nazis from outer space' id '0ccb6362-bb2c-4e9f-8d67-1746f6cfc78b' date '1 September 2012' time '11:30:38 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.149' message '- merged' id '77632866-52dc-41e5-bfbf-73ec28eca698' date '5 May 2012' time '6:51 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.148' message '- Issue 727: walkback only works for exceptions in callback phase - http://code.google.com/p/seaside/issues/detail?id=727 - add way to fix rendering error - add post test' id '058b9798-ce33-458f-bf08-39455922cf68' date '5 May 2012' time '6:50:18 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.143' message '- merge with trunk' id '12209b2b-7d2b-47ff-828a-19153b5ae19c' date '23 August 2011' time '12:19:17 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.141' message '- Issue 592: investigate tracking sessions by SSL session id - add functional test for SSL session id' id 'd8c61fd0-369f-42aa-a961-d050b37fef03' date '14 August 2011' time '12:46:38 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.140' message '- merge with 3.0' id 'ac750e43-21c8-4f47-886a-95e29d0d65a4' date '6 August 2011' time '8:18:12 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.139' message '- remove deprecated methods and classes' id 'e3caff97-3d57-46a5-8886-7e7242acab53' date '2 August 2011' time '9:11:16 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.138' message '- fixed formatting of return message' id '3e092777-1e87-4e47-89f7-8489b7f41388' date '25 July 2011' time '8:21:17 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.137' message '- fixed spacing in blocks' id '50c65b26-bfd3-467d-b691-86c5d5fe3af8' date '25 July 2011' time '7:23:41 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.136' message '- Seaside-Tests-Functional-pmm.135 with new UUID' id 'fbb91f67-3e67-4be9-90f6-65c3b4927538' date '23 July 2011' time '8:26:07 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.133' message '- lint fixes' id '591168b7-3a73-4e42-97cb-e44c61269314' date '19 February 2011' time '11:09:58 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.132' message '- lint fixes' id '486a4808-e1a5-4df6-8292-e7a668cab3dc' date '18 February 2011' time '11:18:01 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.131' message '- lint fixes' id 'dc46a20a-21c4-4a22-a0f5-2f7931236b9a' date '16 February 2011' time '10:38:05 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.130' message '- formatting' id '66f735c6-8163-4fc3-8a42-0fcd190af343' date '8 February 2011' time '9:52:51 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-as.129' message 'Issue 639: merge WAHtmlCanvas and WARenderCanvas http://code.google.com/p/seaside/issues/detail?id=639' id '2268fa96-1f04-e841-91e7-172bf204a6e7' date '6 February 2011' time '10:17:59 pm' author 'as' ancestors ((name 'Seaside-Tests-Functional-pmm.128' message '- move keygen to HTML 5' id 'd27495e8-f5d4-44c3-afea-344d87c0cb65' date '2 February 2011' time '8:01:17 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.127' message '- move ruby to HTML 5' id '8b136ced-92eb-4920-81b2-a0faed623f6e' date '2 February 2011' time '7:55:54 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.126' message '- Issue 356: Add functional test for WAValidationDecoration - http://code.google.com/p/seaside/issues/detail?id=356' id 'bdbe5782-df57-494d-8e1c-8aad5865fa6e' date '19 December 2010' time '5:39:16 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.125' message '- Chrome has sometimes missing Content-Type on uploads' id 'ef8124e0-3440-40ea-b841-ed042c05ae89' date '31 October 2010' time '2:06:03 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.124' message '- don''t test character by character rendering for null codec' id '2dee6780-ab7f-41d9-b86d-a98b682b0a07' date '24 August 2010' time '6:58:45 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.123' message '- fixed bug with #with: causing date and time selectors appear twice (thanks to the annonymous reporter in the comments of the Seaside Book)' id '23f58081-124d-4605-81a3-d674c8c01cbf' date '2 August 2010' time '6:50:28 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.122' message 'add explicit dependency on Widgets' id '03bcb787-98c7-47c7-b78f-3ffb0014a83b' date '24 June 2010' time '11:22:53 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-obi.121' message '- fix comment' id 'a663fef8-12f3-564a-9ab3-8ecbb2b08ec7' date '13 June 2010' time '9:08:24 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-YM.120' message 'Fix redirection in expiry tests' id 'b50f16fb-eede-4218-a7f1-89b53a4f83b7' date '22 May 2010' time '11:47:48 pm' author 'YM' ancestors ((name 'Seaside-Tests-Functional-obi.119' message '- adjust some performance test values - add & to better test text rendering performance' id '60e6f2eb-f6e0-bd45-a20e-5e5c153086a7' date '21 May 2010' time '9:05:01 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.118' message 'fix typo' id '489fcc39-a550-45e2-95c0-83239d9d6b48' date '22 February 2010' time '12:18:36 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.117' message '- added explicit repository url' id '2dcf3a12-20b6-4622-88a0-1acc2366d411' date '17 February 2010' time '3:51:06 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.116' message 'Properly fix http://code.google.com/p/seaside/issues/detail?id=544 I introduce a GROrderedMultiMap which specifically allows duplicate keys (GRSmallDictionary no longer does). This is used to implement WARequestFields, which is used throughtout for storing GET and POST fields. #at: will return the first matching field and #allAt: will return all matching values. Various renamings, fixes to callbacks, and to unit and functional tests. I also had to fix the Swazoo and Comanche server adaptors to correctly create WARequestFields instances for the POST fields and to correctly include the raw POST body in all cases (but it seems to be a ByteArray in Swazoo''s case and a ByteString or String for Comanche... seems not ideal)' id '2185bf15-e04e-48a8-a6d7-767fa0304e41' date '15 February 2010' time '9:33:11 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.115' message 'Bring WAUrl terminology in line with RFC 3986 (I got distracted on this while trying to work on fixing multiple fields with the same key). Leave old methods there marked as deprecated.' id '463bd778-6554-4eef-a505-d350e24f79e8' date '15 February 2010' time '2:52:53 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.114' message 'Let''s set a good example by properly namespacing our extensions to GRPlatform. Also tidy up and remove unused methods.' id 'ace0827e-ec89-4fd1-92a2-27edd9679fb7' date '9 February 2010' time '1:45:41 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.113' message 'http://code.google.com/p/seaside/issues/detail?id=405 Start storing the query fields in the Request URL and adjust accessors so that #queryFields returns those, #postFields returns the POST fields, and #fields returns a merge of the two. This is the simplest, least invasive implementation of this I could come up with. I still think we need to put some serious thought into how field merging and so on works.' id '8c2113ed-a3d6-482f-830d-16098712225b' date '31 January 2010' time '12:31:45 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.112' message 'http://code.google.com/p/seaside/issues/detail?id=488 Revert Seaside-Tests-Functional-dkh.92 (or at least some of it)' id '98a2ae41-1adc-4bfc-8625-c56e30d17acf' date '26 January 2010' time '2:00:15 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.111' message '- fixed some slime issues' id 'a30a2e68-3c71-4da9-b5d9-b406a317a74e' date '25 January 2010' time '11:41:21 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.110' message '- fixed various bugs in the radio button implementation - made radio buttons backward compatible - fixed some formatting issues' id '3e69ef59-e23a-48c0-b7a3-051663517b9b' date '25 January 2010' time '11:18:47 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.109' message '- fixed formatting - fixed custom selection (requires explicit registration)' id 'f1ea9ba5-9f84-4109-810e-cd0c02a578a4' date '23 January 2010' time '2:06:52 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-obi.108' message '- add custom list rendering test' id '4629c1b4-e245-1d4e-a302-f71b3c2d258b' date '19 January 2010' time '11:21:11 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.107' message 'Tidy up naming and URLs for the various functional test suites. Hopefully this will make them easier to find for non-developers.' id '865ea112-0d73-40c6-b8ca-da94a511f119' date '11 January 2010' time '1:15:34 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-obi.106' message '- use renamed method' id '1ceb6630-f382-5843-87c7-ea8d4edb0b4e' date '1 January 2010' time '10:04:08 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.105' message '- simplify nested list rendering code' id '5040e91c-ad54-054e-bd8e-902b1977b11c' date '1 January 2010' time '9:49:25 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.104' message '- enable #selected: for radio group' id 'de186e0d-6cf1-9041-ac9a-2011b6718a80' date '31 December 2009' time '9:56:04 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.103' message '- use #value: instead of #callbackValue: for radio button' id '3cd63db3-d8fd-c042-8de4-d0453283f01d' date '31 December 2009' time '7:09:54 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.102' message '- use "callbackValue: each" instead of "value: (group valueFor: each)" for radio buttons ' id 'e586403c-1a7b-6a46-bad8-2aec69b70e19' date '31 December 2009' time '1:44:26 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.101' message '- get rid of WADispatchCallback - use new rendering technique for radio group' id 'd44d6c88-776c-5341-8cf6-d955c240d44d' date '30 December 2009' time '5:06:20 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.100' message '- fix issues 374: Select- and multi-select-list-items 279: Select List without #callbacks: http://code.google.com/p/seaside/issues/detail?id=374 http://code.google.com/p/seaside/issues/detail?id=279 - add nested multi selection test - change nested rendering code' id 'a58560b7-7de4-4544-a7b1-dea94301aa75' date '30 December 2009' time '2:53:17 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-Issue374-obi.99' message '- cleanup' id '2889c116-63e0-3243-ac14-f9ceb75e29aa' date '30 December 2009' time '1:37:58 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-Issue374-obi.98' message '- add nested multi selection test - change nested rendering code' id '21c3a062-a7b4-cb45-be63-424638d6177a' date '30 December 2009' time '11:08:07 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.97' message 'merge' id '106197ff-6c55-4237-afba-d728838c171b' date '29 December 2009' time '5:00:15 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.96' message '- move Task stuff into Component package - no longer need special Flow configuration settings - Make parameter to onAnswer: blocks optional - Add #call:onAnswer: which does a #show:onAnswer: and then sends a render notification; rewrite #call: to use #call:onAnswer: - Make as few of the functional tests as possible depend on Flow' id '7ca49241-e9a4-4e7f-9e13-96c5a2ee4b78' date '29 December 2009' time '4:07:22 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.95' message '- http://code.google.com/p/seaside/issues/detail?id=507 - Issue 507: WAUrlEncodingFunctionalTest Parameter encoding fails - http://code.google.com/p/seaside/issues/detail?id=508 - Issue 508: WAUrlEncodingFunctionalTest instructions are incorrect' id 'ec58366b-7ecb-4e1b-95f3-a55c1d527fd7' date '5 December 2009' time '12:04:31 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-dkh.94' message '- update the comments with GemStone-specific info' id '438ce99d-10e3-4c76-ad3d-09c758aeedfd' date '23 November 2009' time '3:40 pm' author 'dkh' ancestors ((name 'Seaside-Tests-Functional-lr.93' message 'merged' id 'aec5175a-f796-4c2d-9e1a-9ead3d95243a' date '14 November 2009' time '6:14:26 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.92' message '- Issue 480: WAUploadFunctionalTest fails to load .txt file - http://code.google.com/p/seaside/issues/detail?id=480 - make WAFile more file WARequest' id '23ddc3d2-56f5-4d72-a813-65e50ea8e4e0' date '14 November 2009' time '4:52:11 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-dkh.92' message '- fix bug http://code.google.com/p/seaside/issues/detail?id=488' id '197e94d9-78c0-42e8-8d8b-7818c6c2016a' date '13 November 2009' time '3:48:48 pm' author 'dkh' ancestors ((name 'Seaside-Tests-Functional-jf.91' message 'Deprecate now-confusingly-named WARequestHandler>>baseUrl in favour of #url' id 'dd2eb6f7-df6f-40e1-b36f-08ff2d75ee54' date '3 November 2009' time '1:25:21 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.90' message 'Rename Seaside-Platform to Grease in order to help make clear that it is not Seaside-specific and can be used by other projects as a compatibility layer. This was spawned by discussions when I started porting Magritte to VAST using the Platform layer.' id 'fbd8690d-8ba0-4958-aa8c-c4f8c4d2ab88' date '30 September 2009' time '10:54:59 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.89' message '- formatting' id 'ffaf8d90-41cd-4d4f-9d56-8f0a592e0286' date '20 September 2009' time '11:35:48 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.88' message '- fix parameter functional test' id 'b9fa5f60-096d-4acd-bff4-b47efba00261' date '6 September 2009' time '2:31:25 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.87' message '- Issue 458: Need a functional test for WARequest>>body - http://code.google.com/p/seaside/issues/detail?id=458' id 'c52d761f-6c49-4a3b-a92a-75674fcc4867' date '6 September 2009' time '1:36:21 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.86' message '- add #nextIfPresentDo: to path consumer' id '1460c175-42a0-431e-805a-738e90475d90' date '1 September 2009' time '9:04:51 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.85' message '- Issue 440: provide access to unconsumed path element - http://code.google.com/p/seaside/issues/detail?id=440' id 'e7276469-c0cd-421f-a2b6-0cec661e8fe3' date '31 August 2009' time '3:27:23 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.84' message '- renamed the string ''Squeak'' in package names to ''Pharo'' (see Issue 433) ' id 'd160f203-bdb4-4269-9199-1aa5753cb6f6' date '30 August 2009' time '5:52:52 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.83' message '- added functional test for tailing slash' id '65d14aa3-9ce1-436e-b265-c3431945acbf' date '15 August 2009' time '11:15:38 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.82' message '- coding conventions' id 'c964c2e4-6f74-4b08-aeb9-1752089a4dd7' date '5 July 2009' time '1:28:41 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-obi.81' message '- extend WAInputFunctionalTest to test also the titles: functionality see http://code.google.com/p/seaside/issues/detail?id=375' id '528388d1-51b8-fc45-a0e1-33f232ca2abf' date '4 July 2009' time '9:23:16 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-lr.80' message '- fixes: Issue 363: WAPopupFunctionalTest issues - assign an answer handler that closes the window' id '24e139b6-f018-4451-9c8f-76988e321f36' date '29 June 2009' time '10:37:28 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.79' message '- fixed http://code.google.com/p/seaside/issues/detail?id=389 - image url was wrong' id 'd9543b0f-35b6-4980-98b8-4a2bc7758963' date '14 June 2009' time '1:13:34 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.78' message '- fixed categorization' id '83f01374-2e47-4d53-86fa-c6c43e6da70e' date '15 May 2009' time '6:31:36 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.77' message '- replace some users of #asString with platform independent #seasideString - fixed some Slime issue' id '1c3fff68-462d-4796-aa41-ebf47730b1be' date '26 April 2009' time '7:11:03 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-obi.76' message '- use inline rendering for performance tests' id 'a0f2f4d5-8857-9149-9098-1533751f63e7' date '13 March 2009' time '9:33:21 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.75' message '- show number of iterations' id 'b332e614-7e27-4245-a9eb-d305ec86dbae' date '12 March 2009' time '7:46:43 am' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.74' message '- use reference values for performance tests' id '28a4b49b-2206-cc4c-9499-8d9d885321c2' date '11 March 2009' time '9:33:21 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.73' message '- reordering performance tests' id '0313e27f-8eaa-8644-a550-7be76ff2ab96' date '11 March 2009' time '12:51 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.72' message '- use better timing for WAPerformanceFunctionalTest' id 'f7cc2371-187d-674c-9c9f-75b59fe28de6' date '10 March 2009' time '11:59:17 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.71' message '- added WAPerformanceFunctionalTest' id '4aef2e46-bfd1-7548-a918-2021e6b6650a' date '10 March 2009' time '9:43:29 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.70' message '- fixed misspelling at WALotsaLinksFunctionalTest' id '6e0e38fb-f17b-1d46-b99c-cafec82a94fd' date '10 March 2009' time '8:25:18 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.69' message '- removed unsent method' id '0a719e53-dffc-4c42-ae8b-06b85c8abd84' date '8 March 2009' time '7:30:31 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.68' message '- Removed test component for "closeThisPopup" from Functional Tests' id '7193a5e1-89ab-0d4b-984a-3daa92b52f89' date '8 March 2009' time '5:53:03 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-obi.67' message '- add test for "closeThisPopup" # see http://code.google.com/p/seaside/issues/detail?id=299' id 'bb0510c3-c6e1-1f46-ade7-c62cf12fc90d' date '8 March 2009' time '5:14:48 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-lr.66' message '- fixed various lint issues' id '00881d08-a3a1-4415-a335-640004077a65' date '5 March 2009' time '9:18:09 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.65' message 'Remove dependency of WAExceptionFilter on Session and move it into the Core package. Have it store its own configuration. Still no UI for actually configuring it but I''ll do that next. In the meantime, Applications added with WAAdmin will have a new named configuration added to the filter so that can be used to change the exception handler for *all* applications. You''ll need to clear your config cache and reload your applications after loading this.' id '5ac1dfcb-9849-4333-8c0d-92aae56f297e' date '4 March 2009' time '11:14:49 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.64' message '- fixed various slime/lint issues that went unnoticed so far because of a bug in the refactoring engine' id '7a565861-2d27-4bd8-bd3c-f204d7463e25' date '28 February 2009' time '11:19:55 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.63' message '- the input tests should also test hidden input fields' id '678b651d-709d-47df-a34d-da602c353b5a' date '22 February 2009' time '3:33:29 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.62' message '- added a file input to WAInputElementContainer to be able to tests its behavior in different scenarios - renamed WAGetInputFunctionalTest to WAInputGetFunctionalTest, WAInputFunctionalTest to WAInputPostFunctionalTest and WAMultipartInputFunctionalTest to WAInputPostMultipartFunctionalTest so that they show up in the functional next to each other - improved the explanation in WAInputGetFunctionalTest, WAInputPostFunctionalTest and WAInputPostMultipartFunctionalTest' id '7208c213-c7cd-4e7c-960c-ccdc79265d8d' date '22 February 2009' time '3:15:53 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.61' message 'http://code.google.com/p/seaside/issues/detail?id=339 Remove all (I think) dependencies from Seaside-(Squeak-)Test-Functional and Seaside-(Squeak-)WebTools on Seaside-(Squeak-)Flow WebTools should now be useable on platforms without continuations. I had to add a dependency from the Development packages on Flow because the WalkbackErrorHandler just won''t work without a Continuation.' id '6f476bea-7a26-44c8-9092-876830a98fec' date '21 February 2009' time '4:08:14 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.60' message 'Replace senders of "aRenderer context actionUrl" with "aRenderer actionUrl"' id 'ecee6a2d-dcc8-4bd9-9dec-49c19b316743' date '21 February 2009' time '10:45:52 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.59' message 'Fix behaviour description in functional tests after solving http://code.google.com/p/seaside/issues/detail?id=324' id '08eeb03c-e60a-4bc3-baaf-b20eed9df854' date '20 February 2009' time '3:07:06 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.58' message 'Fix http://code.google.com/p/seaside/issues/detail?id=310 Store the root component in the Session property dictionary rather than in the RenderLoopContinuation. This means we no longer need #inNewRenderLoopShow: and #inNewRenderLoopCall:. Instead you can just do "self session presenter show:" This has the additional benefit of making sure the old root component still gets snapshotted.' id 'd5342efc-dd23-43fb-8cf6-96be00f303bf' date '20 February 2009' time '12:13:04 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.57' message 'http://code.google.com/p/seaside/issues/detail?id=215 Move #filterWith:during:, #authenticateWith:during:, and #isolate: on Component into the Seaside-Flow package. And move a Functional test that was using #isolate: into Seaside-Tests-Flow-Functional' id 'ecb99e29-aeff-2e46-b9d2-5cdf746f0c1b' date '9 February 2009' time '5:30:07 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.56' message 'add a (hacky) test for signaling an error during rendering ( currently broken - see http://code.google.com/p/seaside/issues/detail?id=340 )' id '7f2d4041-7246-0f4c-a464-e8b47a8f633c' date '8 February 2009' time '10:41:36 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.55' message 'correct spelling... the plural of codec should be codecs (a codex is something else)' id '485040ac-1819-4915-b216-d1f13ec33c6e' date '7 February 2009' time '8:34:24 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.54' message '- WACode refactoring so that it can potientially work on streams and so that it does not depend on semaphores - WAServerAdaptor cleanup (for details see http://lists.squeakfoundation.org/pipermail/seaside-dev/2009-February/002778.html)' id '19542aa6-aba5-4839-80e9-e42667030f1a' date '7 February 2009' time '1:13:19 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.53' message '- fixed some compatibility issues with ANSI streams' id 'a8eee8a4-fcc0-44b8-9529-c2e38944dc0d' date '4 February 2009' time '11:38:36 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.52' message 'break some circular dependencies' id 'd7ef9d78-c7aa-4a91-a1cf-7788de29774a' date '1 February 2009' time '10:13:40 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.51' message '- removed unnecessary calls to #call: - removed tests that test flow functionality' id '6cd6f955-98b7-44cc-8088-4a92aea229c3' date '24 January 2009' time '9:28:52 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.50' message 'http://code.google.com/p/seaside/issues/detail?id=164 Put test for platform #garbageCollect method in Seaside-Tests-Functional ' id 'fde2c2e8-7b6d-462a-8ffb-a82b9af8db74' date '23 January 2009' time '8:13:31 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.49' message 'remove tests in WAErrorFunctionalTest which returned nil and Object. This behaviour is no longer possible with the response refactoring.' id 'effa43b1-7171-46b8-8824-3aeaa8fd6913' date '23 January 2009' time '4:39:09 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.48' message '- don''t do a redirect for adding cookies' id '0e88af6b-15c7-4b1a-99ef-18667dfff254' date '22 January 2009' time '10:49:59 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-jf.47' message 'As debated at the Konstanz sprint and touched upon in http://code.google.com/p/seaside/issues/detail?id=221, move Platform methods to instance side and implement WASqueakPlatform as a subclass of WAPlatform. This allows us to provide default implementations where possible, helps document which methods are required, and means that we have a class as our global instead of the un-namespace "SeasidePlatformSupport". In case it is useful, the refactoring code was: "The refactoring:" WASqueakPlatform class selectors do: [ :ea | (ORSwapMethodRefactoring swapMethod: ea in: WASqueakPlatform class) execute ] "The renaming:" (ORSourceRegexRefactoring new replace: ''SeasidePlatformSupport'' with: ''WAPlatform current''; yourself) execute' id '763f7779-83c4-4c86-8f1d-5805e8a744b7' date '22 January 2009' time '3:01:41 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.46' message 'fix cookie functional tests to work with rendering refactoring' id '4c540d74-8847-4259-a566-d19b5beb4c9c' date '21 January 2009' time '11:09:12 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.45' message 'In discussions with Lukas last night I realized that the error handler is holding onto the request context and this could be a problem with continuations. This adds a functional test that confirms whether error handling works properly after a call: (it currently doesn''t)' id 'b1511733-698a-49f2-ada2-8690fd5d8ce0' date '14 January 2009' time '12:20:41 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.44' message 'Lukas says javascript links need "url: ''#''" now...' id 'efdcc39d-ab7f-4031-aaea-31c50e7ba25c' date '12 January 2009' time '11:43:40 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.43' message '- removed deprecation functional test' id '93383106-c3e3-4e27-b62e-eb1a46b487ed' date '2 January 2009' time '2:27:09 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.42' message '- added WADeprecationFunctionalTest' id '3aa3c0e6-b154-46fa-92ac-b42d8657d17a' date '1 January 2009' time '7:49:29 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.41' message '- merged' id '1f8f6724-504b-4879-83ba-ce4076743576' date '1 January 2009' time '6:47:38 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.36' message '- better explanations' id 'a1bc4014-40a9-4c14-810d-cc5a8500eb82' date '1 January 2009' time '6:18:02 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-lr.40' message '- added slime rule to detect invalid or incomplete senders of #seasideDeprecatedApi:details: - fixed callers of #seasideDeprecatedApi:details:' id 'a915ec67-2b98-4811-8462-4071e91bbf66' date '30 December 2008' time '1:02:02 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.39' message '- removed WAHtmlFunctionalTest as it was calling deprecated functionality and there are serveral more specific fixtures that test the same functionality' id 'ff326549-cd70-4645-b17c-f283d6262112' date '27 December 2008' time '6:17:02 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.38' message '- removed WALinkSubmitFunctionalTest that only tests deprecated Javascript functionality' id '1481eeae-212c-4f7c-821e-fc946f41444f' date '27 December 2008' time '6:10:33 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.37' message '- removed unrelated and deprecated functionality tests from WADateTimeFunctionalTest' id '282d1b5b-a632-4db6-a176-155bf6405239' date '27 December 2008' time '6:08:10 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.36' message '- do not use deprecated javascript cruft anymore - added missing checkbox and radio button to WAInputElementContainer' id '4808fe31-6fb8-40a9-b007-e58caa95a18a' date '27 December 2008' time '5:43:36 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.35' message '- made WAAllTests URL handling more robust: * look at first element in the relative path instead of the last element in the path, some tests add stuff to the path * don''t do mixed String/Symbol equality comparison (class names)' id '81b48522-96fe-4215-b09a-f6de0f6cd5c6' date '7 December 2008' time '6:44:36 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.34' message '- made the functional tests restful - some formatting fixes while playing with WAExpiryFunctionalTest' id '7ca61bb5-15c5-4d3d-af85-e2d3c808ff0f' date '2 December 2008' time '8:44:38 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.33' message '- cleanup of method protocols - fixed inconsistencies' id '7f6059ac-f2f7-427d-af48-7e19e2be4631' date '29 November 2008' time '2:14:57 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jok.32' message 'update dependencies -- Seaside-Test-Core required due to references to WATestingFiles class.' id 'd8f9ccf1-e2b7-ad47-b0fb-ab1fd43edc99' date '28 November 2008' time '4:04:11 pm' author 'jok' ancestors ((name 'Seaside-Tests-Functional-lr.31' message '- fixes Issue 219: Why does WADecorationTask override #updateStates: ?' id '00cda7be-dda4-44b4-b6d3-047e2b9673d9' date '28 November 2008' time '4:41:15 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-pmm.30' message '- HTML validation' id 'f97cf6d8-ee79-4ce6-a007-a13678e5bd2c' date '14 November 2008' time '10:36:07 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-lr.29' message '- fixed the comment for the deprecation error test' id '6f7bfc03-d6c4-4d8a-8858-84a50104232d' date '12 November 2008' time '8:12:13 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.28' message 'merged' id 'b2e2ccd2-8a63-4575-b022-4c1c95be6f1a' date '11 November 2008' time '11:38:05 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.27' message '- fixed unknown message send - fixed some slime complaints' id '66dde118-13e3-4d94-aea5-fabd00b5530d' date '11 November 2008' time '11:37:36 pm' author 'lr' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-pmm.27' message '- tests for key generator' id '10d4c11d-69f1-4919-9b46-2205591a4178' date '11 November 2008' time '11:12:11 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.26' message '- merged' id 'addaa945-c40f-4ff2-9bb4-9d8b365d263e' date '8 November 2008' time '1:55:02 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.25' message '- test for codec instead of server' id 'd83ad90a-20cd-447b-bf49-0a6cef9c1ff4' date '8 November 2008' time '1:30:50 pm' author 'pmm' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-jf.26' message 'http://code.google.com/p/seaside/issues/detail?id=227 Reintroduce previous ExceptionHandler refactorings but with a few changes to satisy complaints in this issue: + Most ErrorHandlers no longer catch Halts + The only one that does is WAHtmlHaltAndErrorHandler, which is in a Squeak-specific package, which removes the need for the platform #haltClass method. This handler can be used or subclassed in production + Code to resume WARequestContextNotFound was moved up to the top-level WAExceptionHandler so that stepping over #requestContext will work in a debugger, even when not using a DebugErrorHandler + The text in the functional tests was updated to indicate that the results are handler- (and occasionaly platform-) specific' id '1053f0fc-51e2-0644-88db-3cf2048a87fa' date '12 November 2008' time '1:43:44 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.25' message 'http://code.google.com/p/seaside/issues/detail?id=227 Apparently my exception handler refactoring broke many things in various ways. Revert everything back to the old error handler mechanism (adapted for changes to session and render loop).' id 'd382ecaf-ef6d-8a4a-a3ea-b055268f0df2' date '7 November 2008' time '11:06:12 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.24' message '- SLint fixes' id '5b514c7c-ab77-4b3c-b78e-879d508a02e9' date '5 November 2008' time '2:36:47 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.23' message '- merged' id '10586de2-d3fb-4f16-a836-907bf0a144f6' date '5 November 2008' time '2:30:43 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.19' message '- SLint fixes' id '701cb6c0-e599-4020-b0fd-5d0ba5ab04f0' date '5 November 2008' time '1:56:59 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-jf.22' message 'The goal of WARequestContext is to be a decoupling interface between request handlers and whatever wants the request handled. Rather than storing the server adaptor itself in the request context, it is therefore cleaner to make sure that the request context holds all information that needs to be exchanged. In fact, there is essentially no protocol common to all server adaptors that could be useful to a request handler and there were no users of WARequestContext>>server other than to get the codec. This series of commits therefore changes WARequestContext to hold the codec that was used to decode the request and stops storing the server adaptor on the context. If it turns out that people *do* want server-adaptor-specific information in their code, server adaptors could use custom subclasses of WARequestContext to provide it.' id 'd6879e34-feca-8647-93d4-9aa0b044f3e7' date '5 November 2008' time '10:27:19 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.21' message 'add functional test for WATrail' id 'f46631ac-35a4-0845-a33b-d2ed76dbdcb8' date '4 November 2008' time '11:56:55 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.20' message '- removed WARequestHandler>>#isFiltered, it is not used anywhere' id '593336b8-1865-48b1-bd77-518e6aacea28' date '4 November 2008' time '9:25:15 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.19' message 'Merge in the painterrenderer branch' id 'dbb79daa-0663-6d4d-8fd5-54d8e0d4066e' date '3 November 2008' time '10:22:35 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.18' message '- removed initializers of functional tests that registered themselves as applications' id '2383836c-71df-423e-9bc8-03f50d85bc7e' date '1 November 2008' time '6:16:37 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.17' message 'signal a discriptive error when the render phase fails to generate a response. This avoids seing the server adaptor''s default error response when a nil response is generated. #possibleCauses is implemented to explain that the user is probably doing a #call: from a render method. Also add a functional test to allow us to test the behaviour of calling from within a render method.' id 'caaddcd6-b5c3-2148-b416-ebad8b40e5bb' date '28 October 2008' time '10:21:02 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.16' message 'http://code.google.com/p/seaside/issues/detail?id=213 It was really annoying to have the Session automatically register itself in the Application. The caused weirdness when unregistering a session - the render phase would then cause the session to re-register itself under a new key. To fix this, WAApplication now registers the session when it is created and the session should not re-register itself. Added #keyFor:ifAbsent: and #urlFor:ifAbsent: as well as #keyFor: and #urlFor: which signal a WAUnregisteredHandlerError if the handler is not found. Change senders of #urlForRequestHandler:addHandlerField: and #ensureKeyForHandler: to use these new methods. The RenderLoopContinuations now catch this error and redirect to a new session. If you want to redirect somewhere else, you should call WARequestContext>>redirectTo: after unregistering the session. Also rename several methods on WARegistry to get a more consistent interface, both internally and with WADispatcher) and deprecate the old versions (plus changed senders).' id '76afe0bf-32e8-684a-aa40-b94623a07d9d' date '27 October 2008' time '5:45:21 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-pmm.15' message '- more valid HTML' id '99de9588-c0f6-4d28-98f8-c7e9e273d7a9' date '26 October 2008' time '11:46:40 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-jf.14' message 'http://code.google.com/p/seaside/issues/detail?id=209 Fix senders of deprecated #registerAsApplication:' id '4a9b99dd-288b-0444-b236-b5855cce65ad' date '26 October 2008' time '6:15:04 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.13' message '- updating package information' id '7402ab1e-69af-40f4-8060-33124bdfd56f' date '23 October 2008' time '10:10:20 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.12' message 'Added my best guess at package dependency information (please fill in descriptions)' id 'f10408f2-2ec9-364a-b46b-3e8caf99bf98' date '23 October 2008' time '12:37:36 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-jf.painterrenderer.3' message 'put #visiblePresentersDo: back for now implemented in terms of visitors... the code is too ugly for the few pluggable cases at the moment otherwise.' id '10922331-7d50-1c44-8a50-9d471ebfb5d4' date '22 October 2008' time '4:19:59 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.painterrenderer.2' message 'fix senders of #visiblePresentersDo: But see http://code.google.com/p/seaside/issues/detail?id=219' id 'eb5f133d-3aa6-4545-96c1-ee0bfb8b94ec' date '22 October 2008' time '1:57:36 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.painterrenderer.1' message 'change a test to use painter/component visitors' id 'c8a18671-9ab4-4b4b-b210-db90a7aa1fa3' date '22 October 2008' time '1:48:31 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-lr.11' message 'merged' id 'd73324a9-7c2a-4794-9682-ae083c416b5f' date '19 October 2008' time '9:07:05 am' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.10' message 'remove dependency from Seaside-Tests-Functional package on Seaside-Examples package by having 3 functional tests use something other than WACounter for embedding and so on.' id '1764b691-04a0-6a42-94d5-838bc208bd73' date '18 October 2008' time '10:46:01 pm' author 'jf' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-lr.10' message 'merged' id '2e6962c1-0f76-4655-b945-722fb987f0c5' date '18 October 2008' time '9:15:04 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-lr.8' message '- removes unused var' id '35b15eec-dd16-4721-b0fe-36451b457b69' date '18 October 2008' time '8:59:34 pm' author 'lr' ancestors ((name 'Seaside-Tests-Functional-jf.7' message 'changes to work with render loop refactoring' id '39e7bc1c-a9ae-b64b-ad67-8901c720beb2' date '18 October 2008' time '11:31:18 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.6' message 'add functional test to simulate what would happen if a user tried to get tricky and started submitting select list options to the wrong list callback. There is potential here, if the handling of these callbacks was ever changed, to introduce a security vulnerability where Seaside would naively load the requested object and pass it into the wrong callback.' id '5f12146a-7577-b741-a413-0c4c9a4cd815' date '8 October 2008' time '11:59:10 am' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.5' message 'fixed send to deprecated method #owner' id 'd7e75861-eaac-7a46-abae-78f88bb53018' date '7 October 2008' time '10:33:20 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.4' message 'http://code.google.com/p/seaside/issues/detail?id=175 Change sender of WASession>>expire to use #unregister. The behaviour is not quite the same, though. Unless you redirect immediately, the session just gets re-registered. This is kind of unfortunate but works for now in this case. Also add redirects after the other actions (clear cache, etc) that result in our session being unregistered, otherwise we see the same behavioural problem. Remove the session expiry seconds edit box, since that setting has no effect now.' id 'cd94de55-96f6-4b4c-b108-461e876600ca' date '7 October 2008' time '6:56:58 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-obi.3' message '- WAHTmlFunctionalTest set columns for Hello World TextBox' id '79246568-68b4-544e-9f58-2cc8f3adc606' date '6 October 2008' time '10:31:39 pm' author 'obi' ancestors ((name 'Seaside-Tests-Functional-jf.2' message 'Clean up WATestingFiles and adjust users of it.' id 'f9fffca6-0ebf-4d4e-8f04-a3231c2df18b' date '6 October 2008' time '5:36:30 pm' author 'jf' ancestors ((name 'Seaside-Tests-Functional-jf.1' message 'split up tests' id '81c5dfd2-fc60-9144-bb39-4d26d3e48173' date '6 October 2008' time '1:27:45 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.9' message '- merged' id '4769c44b-8f17-41ce-bd6a-9b0f44f365cb' date '18 October 2008' time '8:18:53 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.8' message '- SeasidePlatformSupport garbageCollect instead of Smalltalk garbageCollect' id '6d9801ef-6c30-45fe-bdd3-a52789226921' date '18 October 2008' time '6:21:25 pm' author 'pmm' ancestors () stepChildren ())(name 'Seaside-Tests-Functional-jf.8' message 'http://code.google.com/p/seaside/issues/detail?id=100 Cleanup responding and redirecting methods on WASession. Most went to WARequestContext and were deprecated on WASession (a few were renamed on the way). A couple were deleted. See the issue for details.' id 'b55d16d0-0092-ae4e-b2a3-571d8ddf7c25' date '18 October 2008' time '6:17:24 pm' author 'jf' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-lr.96' message '- do not use any longer #printOn: and #printContentOn: in JSObject, but use #javascriptOn: and #javascriptContentOn: - implementors of external libraries that implment or send any of these methods need to perform the renaming as well' id '212be911-3f14-4d88-ac15-834b010fcff6' date '24 December 2009' time '11:24:59 am' author 'lr' ancestors ((id 'ec58366b-7ecb-4e1b-95f3-a55c1d527fd7')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-obi.139' message '- fix http://code.google.com/p/seaside/issues/detail?id=617 - use scale method - update Reference System' id 'c5843c25-95f5-cd41-816d-9ee898b91d07' date '3 August 2011' time '8:47:10 pm' author 'obi' ancestors ((id '3e092777-1e87-4e47-89f7-8489b7f41388')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.142' message '- Issue 678: an iframe should be more like a pop up - move WAIframeTag >> #callback: from Scriptaculous to Canvas' id '204b190f-6ef9-416e-8817-f6099498ea68' date '23 August 2011' time '12:05:20 pm' author 'pmm' ancestors ((id 'c5843c25-95f5-cd41-816d-9ee898b91d07')) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.147' message '- formatting nazis from the dark side of the moon' id 'f6f96a8a-52dc-4ad0-ba8d-6848b6b93e10' date '19 February 2012' time '11:32:53 am' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.146' message '- added functional test to WADateTable' id '83cca07b-a15d-4706-8ad7-789042d571c4' date '22 January 2012' time '9:50:06 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.145' message '- formatting nazis from outer space' id '9365205c-1101-4b7d-b14a-4aaa9b7602d4' date '22 January 2012' time '5:02:57 pm' author 'pmm' ancestors ((name 'Seaside-Tests-Functional-pmm.144' message '- set page title for functional tests' id '21631988-0f9d-4db9-b0ad-640990cfb7a2' date '28 September 2011' time '7:16:26 pm' author 'pmm' ancestors ((id '12209b2b-7d2b-47ff-828a-19153b5ae19c')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-Tests-Functional-pmm.163' message '- render more request headers' id '4acf5476-8b01-4543-b08c-953d27829aab' date '12 November 2014' time '7:04:01 pm' author 'pmm' ancestors ((id '780ca820-425c-4489-9706-04d6266202fc')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Seaside-Tests-Pharo-Functional.package/WAPharoFunctionalTestsDefaultHandlersTest.class/instance/testAllTests.st b/repository/Seaside-Tests-Pharo-Functional.package/WAPharoFunctionalTestsDefaultHandlersTest.class/instance/testAllTests.st index a1032bde4..afcc976f8 100644 --- a/repository/Seaside-Tests-Pharo-Functional.package/WAPharoFunctionalTestsDefaultHandlersTest.class/instance/testAllTests.st +++ b/repository/Seaside-Tests-Pharo-Functional.package/WAPharoFunctionalTestsDefaultHandlersTest.class/instance/testAllTests.st @@ -1,7 +1,7 @@ tests testAllTests | app | - app := self defaultDispatcher handlerAt: 'tests/functional'. + app := self defaultDispatcher handlerAtAll: #('tests' 'functional'). self assert: app class == WAApplication. self assert: app isApplication. self deny: app isDispatcher. diff --git a/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st b/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st index f83232ed3..6c3a656f8 100644 --- a/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st +++ b/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st @@ -2,7 +2,7 @@ converting requestUrlFor: aZincRequest | zincUrl seasideUrl | zincUrl := aZincRequest url. - (seasideUrl := WAUrl new) + seasideUrl := WAUrl new scheme: zincUrl scheme greaseString; host: zincUrl host; port: zincUrl port; @@ -11,9 +11,10 @@ requestUrlFor: aZincRequest zincUrl isDirectoryPath ifTrue: [ "last path segment is $/ or #/" zincUrl pathSegments - allButLast do: [ :each | seasideUrl addToPath: each ]. + "GemStone/S currently does not support #allButLastDo:" + allButLast do: [ :each | seasideUrl rawAddToPath: each ]. seasideUrl slash: true ] - ifFalse: [ seasideUrl addAllToPath: zincUrl pathSegments ] ]. + ifFalse: [ seasideUrl rawAddAllToPath: zincUrl pathSegments ] ]. zincUrl queryDo: [ :key :value | seasideUrl addField: key value: value ]. ^ seasideUrl \ No newline at end of file From 94acdde5921d66dde3f9300aa0ae83f8aa92a8d4 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Tue, 27 Aug 2019 09:13:14 +0200 Subject: [PATCH 11/33] Remove code duplication and fix code for retrieving value in forwarded header -or- the remoteAddress when reelying on the origin ip in the protection filter and the tracking strategy --- .../instance/remoteAddressFromRequest..st | 13 ++++--------- .../WARequest.class/instance/forwarded.st | 3 +++ .../instance/remoteAddressFromRequest..st | 8 -------- .../instance/sessionIdFromContext..st | 2 +- 4 files changed, 8 insertions(+), 18 deletions(-) create mode 100644 repository/Seaside-Core.package/WARequest.class/instance/forwarded.st delete mode 100644 repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/remoteAddressFromRequest..st diff --git a/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st index 107a58a56..e6ff2aeee 100644 --- a/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st +++ b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st @@ -1,11 +1,6 @@ private remoteAddressFromRequest: aRequest - remoteAddress ifNil: [ - remoteAddress := aRequest - headerAt: 'x-forwarded-for' - ifAbsent: [ - aRequest - headerAt: 'forwarded-for' - ifAbsent: [ - aRequest remoteAddress ] ] ]. - ^ aRequest remoteAddress \ No newline at end of file + | result | + result := aRequest forwarded ifNil:[ aRequest remoteAddress ]. + remoteAddress ifNil:[ remoteAddress := result ]. + ^ result \ No newline at end of file diff --git a/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st b/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st new file mode 100644 index 000000000..a469de0ad --- /dev/null +++ b/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st @@ -0,0 +1,3 @@ +accessing-headers +forwarded + ^ self headerAt: 'forwarded' ifAbsent:[ self headerAt: 'x-forwarded-for' ] \ No newline at end of file diff --git a/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/remoteAddressFromRequest..st b/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/remoteAddressFromRequest..st deleted file mode 100644 index c75188490..000000000 --- a/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/remoteAddressFromRequest..st +++ /dev/null @@ -1,8 +0,0 @@ -private -remoteAddressFromRequest: aRequest - ^ aRequest - headerAt: 'x-forwarded-for' - ifAbsent: [ - aRequest - headerAt: 'forwarded-for' - ifAbsent: [ aRequest remoteAddress ] ] \ No newline at end of file diff --git a/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st b/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st index a5957c568..0f5a963d0 100644 --- a/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st +++ b/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st @@ -1,3 +1,3 @@ private sessionIdFromContext: aRequestContext - ^ self remoteAddressFromRequest: aRequestContext request \ No newline at end of file + ^ aRequestContext request forwarded ifNil:[ aRequestContext request remoteAddress ] \ No newline at end of file From 8bcc37d906b43cb232ba0896035a1506d6315aec Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Mon, 26 Aug 2019 14:43:00 +0200 Subject: [PATCH 12/33] 1157 validate percent values are hex Fixes #1157 --- .../WAUrl.class/class/decodePercent..st | 6 +++--- .../WAUrl.class/class/readHexFrom.errorDetail..st | 10 ++++++++++ .../WAUrlTest.class/instance/testDecodePercent.st | 10 ++++++++++ .../WAUrlTest.class/instance/testInvalidSyntax.st | 6 ++++++ 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 repository/Seaside-Core.package/WAUrl.class/class/readHexFrom.errorDetail..st create mode 100644 repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testDecodePercent.st diff --git a/repository/Seaside-Core.package/WAUrl.class/class/decodePercent..st b/repository/Seaside-Core.package/WAUrl.class/class/decodePercent..st index 275df2bf3..306f6f153 100644 --- a/repository/Seaside-Core.package/WAUrl.class/class/decodePercent..st +++ b/repository/Seaside-Core.package/WAUrl.class/class/decodePercent..st @@ -12,8 +12,8 @@ decodePercent: aString char = $% ifTrue: [ | firstByte secondByte | - firstByte := input atEnd ifTrue: [ WAInvalidUrlSyntaxError signal: aString ] ifFalse: [ input next asUppercase digitValue ]. - secondByte := input atEnd ifTrue: [ WAInvalidUrlSyntaxError signal: aString ] ifFalse: [ input next asUppercase digitValue ]. - Character codePoint:firstByte * 16 + secondByte ] + firstByte := self readHexFrom: input errorDetail: aString. + secondByte := self readHexFrom: input errorDetail: aString. + Character codePoint: firstByte * 16 + secondByte ] ifFalse: [ char ] ]) ]. ^ output contents \ No newline at end of file diff --git a/repository/Seaside-Core.package/WAUrl.class/class/readHexFrom.errorDetail..st b/repository/Seaside-Core.package/WAUrl.class/class/readHexFrom.errorDetail..st new file mode 100644 index 000000000..82f7a68e6 --- /dev/null +++ b/repository/Seaside-Core.package/WAUrl.class/class/readHexFrom.errorDetail..st @@ -0,0 +1,10 @@ +private +readHexFrom: aStream errorDetail: aString + | hexChar | + aStream atEnd ifTrue: [ + WAInvalidUrlSyntaxError signal: aString ]. + hexChar := aStream next. + ((hexChar between: $0 and: $9) + or: [ (hexChar between: $a and: $f) + or: [ hexChar between: $A and: $F ] ]) ifFalse: [ WAInvalidUrlSyntaxError signal: aString ]. + ^ hexChar digitValue \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testDecodePercent.st b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testDecodePercent.st new file mode 100644 index 000000000..a8f7e3705 --- /dev/null +++ b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testDecodePercent.st @@ -0,0 +1,10 @@ +testing-parsing +testDecodePercent + "regression test for https://github.com/SeasideSt/Seaside/issues/1157" + | element | + url := WAUrl absolute: 'http://www.seaside.st/%21%2a%7A'. + element := url path first. + self assert: element equals: (String + with: (Character codePoint: 16r21) + with: (Character codePoint: 16r2a) + with: (Character codePoint: 16r7A)) \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testInvalidSyntax.st b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testInvalidSyntax.st index 52ec6cfe4..4a81270af 100644 --- a/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testInvalidSyntax.st +++ b/repository/Seaside-Tests-Core.package/WAUrlTest.class/instance/testInvalidSyntax.st @@ -7,4 +7,10 @@ testInvalidSyntax The result is undefined if there the receiver has no future sequence values." self should: [ WAUrl decodePercent: 'abc%' ] + raise: WAInvalidUrlSyntaxError. + + "0xZZ is invalid hex + https://github.com/SeasideSt/Seaside/issues/1157" + self + should: [ WAUrl decodePercent: '%ZZ' ] raise: WAInvalidUrlSyntaxError \ No newline at end of file From b9b2a751517fff8a2a2507736d4d120e3fa9644d Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Mon, 26 Aug 2019 11:23:21 +0200 Subject: [PATCH 13/33] Clean up protection filters --- .../instance/cookieCheckUrlFor..st | 6 ++++++ .../instance/handleFiltered..st | 19 +++++++++---------- .../instance/hasBrowserSessionID.st | 3 +++ .../instance/newBrowserSessionID.st | 3 +++ .../instance/setBrowserSessionIDFor..st | 7 ++----- .../README.md | 1 + .../instance/initializeFilters.st | 2 +- .../properties.json | 2 +- .../WASessionProtectedCounter.class/README.md | 1 + .../properties.json | 2 +- .../instance/addKey.toUrl..st | 2 +- 11 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/cookieCheckUrlFor..st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/hasBrowserSessionID.st create mode 100644 repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/newBrowserSessionID.st diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/cookieCheckUrlFor..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/cookieCheckUrlFor..st new file mode 100644 index 000000000..0aa906639 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/cookieCheckUrlFor..st @@ -0,0 +1,6 @@ +private +cookieCheckUrlFor: aRequestContext + ^ aRequestContext request url copy + addField: self application trackingStrategy keyField value: self session key; + addField: 'cookiecheck'; + yourself \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st index 81e6d0a29..2173bd7c4 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/handleFiltered..st @@ -2,14 +2,13 @@ processing handleFiltered: aRequestContext "If the browserSessionID instvar is nil, we are a newly created session and should set our browser session id. Otherwise, verify the browser session id for the current request." - self browserSessionID - ifNil: [ self setBrowserSessionIDFor: aRequestContext ] - ifNotNil: [ - (self verifyBrowserSessionIDFor: aRequestContext) - ifFalse: [ - "If we carry a redirected url field, we have tried setting a cookie, which failed. Stop here to avoid infinite redirect. - In the other case, respond with the forbidden status code" - (self requestContext request queryFields includesKey: 'cookiecheck') - ifTrue:[ self respondCookiesRequired: aRequestContext ] - ifFalse: [ aRequestContext responseGenerator forbidden; respond ] ] ]. + self hasBrowserSessionID + ifFalse: [ self setBrowserSessionIDFor: aRequestContext ] + ifTrue: [ + (self verifyBrowserSessionIDFor: aRequestContext) ifFalse: [ + "If we carry a redirected url field, we have tried setting a cookie, which failed. Stop here to avoid infinite redirect. + In the other case, respond with the forbidden status code" + (self requestContext request queryFields includesKey: 'cookiecheck') + ifTrue: [ self respondCookiesRequired: aRequestContext ] + ifFalse: [ aRequestContext responseGenerator forbidden; respond ] ] ]. super handleFiltered: aRequestContext \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/hasBrowserSessionID.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/hasBrowserSessionID.st new file mode 100644 index 000000000..9e9330d81 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/hasBrowserSessionID.st @@ -0,0 +1,3 @@ +private +hasBrowserSessionID + ^ self browserSessionID notNil \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/newBrowserSessionID.st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/newBrowserSessionID.st new file mode 100644 index 000000000..2907cd385 --- /dev/null +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/newBrowserSessionID.st @@ -0,0 +1,3 @@ +private +newBrowserSessionID + ^ WAKeyGenerator current keyOfLength: self browserSessionIDSize \ No newline at end of file diff --git a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st index 788f34826..c6238ac1b 100644 --- a/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st +++ b/repository/Seaside-Core.package/WASessionCookieProtectionFilter.class/instance/setBrowserSessionIDFor..st @@ -5,10 +5,7 @@ setBrowserSessionIDFor: aRequestContext (aRequestContext request cookieAt: self browserSessionIDCookieKey) ifNotNil: [ :cookie | browserSessionID := cookie value ] ifNil: [ - browserSessionID := (WAKeyGenerator current keyOfLength: self browserSessionIDSize). + browserSessionID := self newBrowserSessionID. aRequestContext response addCookie: (self createBrowserSessionIDCookieFor: aRequestContext); - redirectTo: (aRequestContext request url copy - addField: self application trackingStrategy keyField value: self session key; - addField: 'cookiecheck' value: nil; - yourself) ] \ No newline at end of file + redirectTo: (self cookieCheckUrlFor: aRequestContext) ] \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md index e69de29bb..230276a0c 100644 --- a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md +++ b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/README.md @@ -0,0 +1 @@ +I am a session with a WASessionCookieProtectionFilter. \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st index a9db3840b..0980d7aaa 100644 --- a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st +++ b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/instance/initializeFilters.st @@ -1,4 +1,4 @@ initialization initializeFilters super initializeFilters. - self addFilter: WASessionCookieProtectionFilter new. \ No newline at end of file + self addFilter: WASessionCookieProtectionFilter new \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json index d8368b2d7..87f13f31f 100644 --- a/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json +++ b/repository/Seaside-Examples.package/WASessionCookieProtectedSession.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "", + "commentStamp" : "pmm 8/27/2019 11:57", "super" : "WASession", "category" : "Seaside-Examples", "classinstvars" : [ ], diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md index e69de29bb..2953671d6 100644 --- a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/README.md @@ -0,0 +1 @@ +A counter that is protected by WASessionCookieProtectionFilter. \ No newline at end of file diff --git a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json index ff5e95dd0..9e8e74cd4 100644 --- a/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json +++ b/repository/Seaside-Examples.package/WASessionProtectedCounter.class/properties.json @@ -1,5 +1,5 @@ { - "commentStamp" : "", + "commentStamp" : "pmm 8/27/2019 11:55", "super" : "WAExampleComponent", "category" : "Seaside-Examples-Misc", "classinstvars" : [ ], diff --git a/repository/Seaside-Session.package/WACookieForBrowserIPForCrawlerTrackingStrategy.class/instance/addKey.toUrl..st b/repository/Seaside-Session.package/WACookieForBrowserIPForCrawlerTrackingStrategy.class/instance/addKey.toUrl..st index cb3e2149f..2a20c23ee 100644 --- a/repository/Seaside-Session.package/WACookieForBrowserIPForCrawlerTrackingStrategy.class/instance/addKey.toUrl..st +++ b/repository/Seaside-Session.package/WACookieForBrowserIPForCrawlerTrackingStrategy.class/instance/addKey.toUrl..st @@ -1,4 +1,4 @@ public addKey: aString toUrl: aUrl - ^ (self strategyFor: WACurrentRequestContext value) + ^ (self strategyFor: self requestContext) addKey: aString toUrl: aUrl \ No newline at end of file From afe273ef63df3d0d40a8c754ddfaf2721691cc2a Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Tue, 27 Aug 2019 15:26:09 +0200 Subject: [PATCH 14/33] Also test on Squeak 5.2 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index a8a0e2d28..5ec8494f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ aliases: matrix: allow_failures: - smalltalk: Squeak-trunk + - smalltalk: Squeak-5.2 - smalltalk: Squeak-5.1 include: From 9694d025b19399d916585e5a4954889e837af147 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Tue, 27 Aug 2019 15:31:23 +0200 Subject: [PATCH 15/33] Added the WARequest>>forwardedFor accessor to return the value of the For identifier in a forwarded header and use that as the identifier in the WARemoteAddressProtectionFilter and WAIPSessionTrackingStrategy --- .../instance/remoteAddressFromRequest..st | 2 +- .../WARequest.class/instance/forwarded.st | 2 +- .../WARequest.class/instance/forwardedFor.st | 13 +++++++++++++ .../instance/sessionIdFromContext..st | 2 +- .../WARequestTest.class/instance/testForwarded.st | 9 +++++++++ .../instance/testForwardedFor.st | 13 +++++++++++++ 6 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 repository/Seaside-Core.package/WARequest.class/instance/forwardedFor.st create mode 100644 repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwarded.st create mode 100644 repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwardedFor.st diff --git a/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st index e6ff2aeee..260749d36 100644 --- a/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st +++ b/repository/Seaside-Core.package/WARemoteAddressProtectionFilter.class/instance/remoteAddressFromRequest..st @@ -1,6 +1,6 @@ private remoteAddressFromRequest: aRequest | result | - result := aRequest forwarded ifNil:[ aRequest remoteAddress ]. + result := aRequest forwardedFor ifNil:[ aRequest remoteAddress ]. remoteAddress ifNil:[ remoteAddress := result ]. ^ result \ No newline at end of file diff --git a/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st b/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st index a469de0ad..bb7cca990 100644 --- a/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st +++ b/repository/Seaside-Core.package/WARequest.class/instance/forwarded.st @@ -1,3 +1,3 @@ accessing-headers forwarded - ^ self headerAt: 'forwarded' ifAbsent:[ self headerAt: 'x-forwarded-for' ] \ No newline at end of file + ^ self headerAt: 'forwarded' \ No newline at end of file diff --git a/repository/Seaside-Core.package/WARequest.class/instance/forwardedFor.st b/repository/Seaside-Core.package/WARequest.class/instance/forwardedFor.st new file mode 100644 index 000000000..51e1c540c --- /dev/null +++ b/repository/Seaside-Core.package/WARequest.class/instance/forwardedFor.st @@ -0,0 +1,13 @@ +accessing +forwardedFor + "Returns the value of the first occurrence of the For directive in a forwarded header, if it exists. Returns nil otherwise." + | startOfFirstForDirective endOfFirstForDirective | + ^ self forwarded ifNotNil:[ :forwarded | + startOfFirstForDirective := forwarded indexOfSubCollection:'for=' startingAt: 1. + startOfFirstForDirective = 0 ifTrue:[ startOfFirstForDirective := forwarded indexOfSubCollection:'For=' startingAt: 1 ]. + startOfFirstForDirective ~= 0 + ifTrue:[ + endOfFirstForDirective := (forwarded indexOfAnyOf: ';,' startingAt: startOfFirstForDirective) - 1. + endOfFirstForDirective = -1 ifTrue:[ endOfFirstForDirective := forwarded size ]. + forwarded copyFrom: startOfFirstForDirective + 4 to: endOfFirstForDirective ] + ifFalse: [ nil ] ] \ No newline at end of file diff --git a/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st b/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st index 0f5a963d0..aeeb131d8 100644 --- a/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st +++ b/repository/Seaside-Session.package/WAIPSessionTrackingStrategy.class/instance/sessionIdFromContext..st @@ -1,3 +1,3 @@ private sessionIdFromContext: aRequestContext - ^ aRequestContext request forwarded ifNil:[ aRequestContext request remoteAddress ] \ No newline at end of file + ^ aRequestContext request forwardedFor ifNil:[ aRequestContext request remoteAddress ] \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwarded.st b/repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwarded.st new file mode 100644 index 000000000..deb6ef4db --- /dev/null +++ b/repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwarded.st @@ -0,0 +1,9 @@ +tests +testForwarded + | request headers | + request := WARequest method: 'GET' uri: '/foo?bar=1'. + headers := Dictionary new. + headers at: 'forwarded' put: 'For="[2001:db8:cafe::17]:4711"'. + request setHeaders: headers. + + self assert: request forwarded = 'For="[2001:db8:cafe::17]:4711"' \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwardedFor.st b/repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwardedFor.st new file mode 100644 index 000000000..4d1507bcb --- /dev/null +++ b/repository/Seaside-Tests-Core.package/WARequestTest.class/instance/testForwardedFor.st @@ -0,0 +1,13 @@ +tests +testForwardedFor + | request headers | + request := WARequest method: 'GET' uri: '/foo?bar=1'. + headers := Dictionary new. + request setHeaders: headers. + + headers at: 'forwarded' put: 'For="[2001:db8:cafe::17]:4711"'. + self assert: request forwardedFor equals: '"[2001:db8:cafe::17]:4711"'. + headers at: 'forwarded' put: 'for=192.0.2.60;proto=http;by=203.0.113.43'. + self assert: request forwardedFor equals: '192.0.2.60'. + headers at: 'forwarded' put: 'for=192.0.2.43, for=198.51.100.17'. + self assert: request forwardedFor equals: '192.0.2.43' \ No newline at end of file From 950ca090daf9a6bb5612e3c62cff76ee7ee23451 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Tue, 27 Aug 2019 16:48:33 +0200 Subject: [PATCH 16/33] Revert allowing Squeak 5.2 failures My previous commit was not good. We already test on Squeak 5.2, the tests are green and it is even in the badges. --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5ec8494f6..a8a0e2d28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,6 @@ aliases: matrix: allow_failures: - smalltalk: Squeak-trunk - - smalltalk: Squeak-5.2 - smalltalk: Squeak-5.1 include: From c01b6e3d4699a6a10fc84a91731c86724ca0964a Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Tue, 27 Aug 2019 17:11:24 +0200 Subject: [PATCH 17/33] Fix bug in WAExternalFileLibrary crashing when trying to list a directory when it's forbidden. Add documentation to the class. --- .../Seaside-FileSystem.package/.filetree | 5 +++-- .../GRPackage.extension/properties.json | 3 ++- .../GRPlatform.extension/properties.json | 3 ++- .../WAExternalFileLibrary.class/README.md | 12 ++++++++++++ .../class/description.st | 2 +- .../instance/processContext..st | 11 +++++++---- .../instance/respondForbiddenListingFor..st | 6 ++++++ .../properties.json | 19 ++++++++----------- .../properties.json | 19 ++++++++----------- .../monticello.meta/version | 1 - .../properties.json | 3 +-- 11 files changed, 50 insertions(+), 34 deletions(-) create mode 100644 repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/respondForbiddenListingFor..st delete mode 100644 repository/Seaside-FileSystem.package/monticello.meta/version diff --git a/repository/Seaside-FileSystem.package/.filetree b/repository/Seaside-FileSystem.package/.filetree index 8998102c2..57a679737 100644 --- a/repository/Seaside-FileSystem.package/.filetree +++ b/repository/Seaside-FileSystem.package/.filetree @@ -1,4 +1,5 @@ { - "noMethodMetaData" : true, "separateMethodMetaAndSource" : false, - "useCypressPropertiesFile" : true } + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/GRPackage.extension/properties.json b/repository/Seaside-FileSystem.package/GRPackage.extension/properties.json index dd2faaf08..ae522a7e0 100644 --- a/repository/Seaside-FileSystem.package/GRPackage.extension/properties.json +++ b/repository/Seaside-FileSystem.package/GRPackage.extension/properties.json @@ -1,2 +1,3 @@ { - "name" : "GRPackage" } + "name" : "GRPackage" +} \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/GRPlatform.extension/properties.json b/repository/Seaside-FileSystem.package/GRPlatform.extension/properties.json index 315ae0ef4..b9c3efa28 100644 --- a/repository/Seaside-FileSystem.package/GRPlatform.extension/properties.json +++ b/repository/Seaside-FileSystem.package/GRPlatform.extension/properties.json @@ -1,2 +1,3 @@ { - "name" : "GRPlatform" } + "name" : "GRPlatform" +} \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/README.md b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/README.md index e69de29bb..74c7581c0 100644 --- a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/README.md +++ b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/README.md @@ -0,0 +1,12 @@ +I can be used to serve files directly from disk rather than having to load them into methods using a WAFileLibrary. + + It has two options: +- list file directories or not (defaults to false). +- the directory to serve (defaults to the image directory). + + Usage: +|app| +app := WAAdmin register: WAExternalFileLibrary at: 'myfilesondisk'. +app + preferenceAt: #listing put: true; + preferenceAt: #directory put: '/' \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/class/description.st b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/class/description.st index 33b7e8e06..d0cd053e6 100644 --- a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/class/description.st +++ b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/class/description.st @@ -1,3 +1,3 @@ accessing description - ^ 'File Directory' \ No newline at end of file + ^ 'External File Directory' \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/processContext..st b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/processContext..st index 6f7db3fb8..ffc622637 100644 --- a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/processContext..st +++ b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/processContext..st @@ -2,8 +2,11 @@ handling processContext: aRequestContext | filename | filename := self filenameForConsumer: aRequestContext consumer. - (self listing and: [ GRPlatform current isDirectory: filename ]) - ifTrue: [ self - processDirectory: filename - context: aRequestContext ] + (GRPlatform current isDirectory: filename) + ifTrue:[ + self listing + ifTrue:[ self + processDirectory: filename + context: aRequestContext ] + ifFalse:[ self respondForbiddenListingFor: aRequestContext ] ] ifFalse: [ self processFile: filename context: aRequestContext ] \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/respondForbiddenListingFor..st b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/respondForbiddenListingFor..st new file mode 100644 index 000000000..adddfbbdc --- /dev/null +++ b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/instance/respondForbiddenListingFor..st @@ -0,0 +1,6 @@ +handling +respondForbiddenListingFor: aRequestContext + aRequestContext respond: [ :response | + response + forbidden; + nextPutAll: 'Listing not allowed' ] \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/properties.json b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/properties.json index c7030b524..566ad5471 100644 --- a/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/properties.json +++ b/repository/Seaside-FileSystem.package/WAExternalFileLibrary.class/properties.json @@ -1,14 +1,11 @@ { + "commentStamp" : "JohanBrichau 8/27/2019 17:02", + "super" : "WARequestHandler", "category" : "Seaside-FileSystem", - "classinstvars" : [ - ], - "classvars" : [ - ], - "commentStamp" : "", - "instvars" : [ - ], + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], "name" : "WAExternalFileLibrary", - "pools" : [ - ], - "super" : "WARequestHandler", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/WAExternalFileLibraryConfiguration.class/properties.json b/repository/Seaside-FileSystem.package/WAExternalFileLibraryConfiguration.class/properties.json index 1070b0ac7..41ee10125 100644 --- a/repository/Seaside-FileSystem.package/WAExternalFileLibraryConfiguration.class/properties.json +++ b/repository/Seaside-FileSystem.package/WAExternalFileLibraryConfiguration.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Seaside-FileSystem", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "WAExternalFileLibraryConfiguration", - "pools" : [ - ], "super" : "WASystemConfiguration", - "type" : "normal" } + "category" : "Seaside-FileSystem", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "WAExternalFileLibraryConfiguration", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/monticello.meta/version b/repository/Seaside-FileSystem.package/monticello.meta/version deleted file mode 100644 index b3ccecfa2..000000000 --- a/repository/Seaside-FileSystem.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'Seaside-FileSystem-pmm.31' message '- lint fixes' id '9250844b-a57b-42a4-a636-25f854a6848d' date '25 August 2016' time '10:41:17.7032 am' author 'pmm' ancestors ((name 'Seaside-FileSystem-JohanBrichau.30' message 'Moved platform-specific methods to Pharo package' id 'c8457504-922b-4d20-a5cf-05a65b18ddaf' date '23 July 2015' time '4:10:21.178467 pm' author 'JohanBrichau' ancestors ((name 'Seaside-FileSystem-JohanBrichau.29' message 'fix use of deprecated message in 3.1 (and removed in 3.2)' id '635620b8-2bfe-4dc5-a10f-273dfb4a8af6' date '5 October 2014' time '1:51:46.800882 pm' author 'JohanBrichau' ancestors ((name 'Seaside-FileSystem-JohanBrichau.28' message 'Removed dependency on Sport' id '4a4b9b0c-abbc-4b0b-882c-c4f483680b17' date '28 September 2014' time '1:33:52.529356 pm' author 'JohanBrichau' ancestors ((name 'Seaside-FileSystem-JohanBrichau.27' message 'WARenderCanvas does not exist in Seaside 3.1: changed to use WAHtmlCanvas' id '7a9e40ac-5d5b-4cec-a2d8-89211fd9ce76' date '20 October 2013' time '12:46:28.338 pm' author 'JohanBrichau' ancestors ((name 'Seaside-FileSystem-pmm.26' message '- lint fixes' id 'ee34791f-43e5-4bc2-8e11-488714e24f2f' date '19 February 2011' time '11:07:41 am' author 'pmm' ancestors ((name 'Seaside-FileSystem-pmm.25' message '- FUCK YOU RB!' id 'b1d0622c-509e-49b5-bf9e-8283172b5427' date '1 November 2010' time '10:15:18 pm' author 'pmm' ancestors ((name 'Seaside-FileSystem-pmm.24' message '- Issue 606: WAKomEncoded fails serving CSS files from WAExternalFileLibrary - http://code.google.com/p/seaside/issues/detail?id=606' id 'eef2a50b-2b13-4f8e-a3af-3d008e6fcd9d' date '28 October 2010' time '6:14:01 pm' author 'pmm' ancestors ((name 'Seaside-FileSystem-lr.23' message 'merged' id 'c271ccac-41ca-4f99-b702-ff780762cd52' date '16 February 2010' time '8:34:39 pm' author 'lr' ancestors ((name 'Seaside-FileSystem-lr.22' message '- set package url' id '288f9f08-9842-4772-bfb0-14fd751eef7b' date '10 February 2010' time '11:33:58 am' author 'lr' ancestors ((name 'Seaside-FileSystem-jf.21' message 'http://code.google.com/p/seaside/issues/detail?id=405 Start storing the query fields in the Request URL and adjust accessors so that #queryFields returns those, #postFields returns the POST fields, and #fields returns a merge of the two. This is the simplest, least invasive implementation of this I could come up with. I still think we need to put some serious thought into how field merging and so on works.' id 'fea8e194-bc45-4680-b3c6-82052c75cf1b' date '31 January 2010' time '12:32:41 am' author 'jf' ancestors ((name 'Seaside-FileSystem-lr.20' message '- fixed package description' id '9dce6999-ee57-437b-b8b5-e2f725aa38ef' date '25 October 2009' time '11:36:51 am' author 'lr' ancestors ((name 'Seaside-FileSystem-obi.19' message '- package is LGPL' id 'fffccd71-34e0-0a4a-9dbb-53a38b9f5c69' date '8 October 2009' time '8:34:02 am' author 'obi' ancestors ((name 'Seaside-FileSystem-obi.18' message '- add (LGPL) to package description' id '94164484-2dd3-e047-b66b-afe9b5609e50' date '6 October 2009' time '5:30:18 pm' author 'obi' ancestors ((name 'Seaside-FileSystem-jf.17' message 'Update to use Grease' id '632a3bc9-4c9c-4dc2-99c3-f0df5eff467a' date '30 September 2009' time '10:41:34 pm' author 'jf' ancestors ((name 'Seaside-FileSystem-jf.16' message 'merge' id '06d82680-a5f7-49e3-96bf-3204e2ca3e29' date '30 September 2009' time '1:59:55 am' author 'jf' ancestors ((name 'Seaside-FileSystem-jf.15' message 'Merge WAEntryPoint in WARequestHandler' id '0d5d6f36-a1b0-44ec-ae5f-3ef9264f54b8' date '27 September 2009' time '10:06:46 pm' author 'jf' ancestors ((name 'Seaside-FileSystem-pmm.14' message '- Issue 440: provide access to unconsumed path element - http://code.google.com/p/seaside/issues/detail?id=440' id 'f310679d-cb53-430c-9a4c-c36388cc0880' date '31 August 2009' time '2:47 pm' author 'pmm' ancestors ((name 'Seaside-FileSystem-pmm.13' message '- added comment' id '2cc79a8b-11c5-4237-8737-49d45998e67d' date '18 July 2009' time '4:12:29 pm' author 'pmm' ancestors ((name 'Seaside-FileSystem-lr.10' message '- Added WARequestContext>>#respond: and use it whenever possible: self requestContext respond: [ :response | response contentType: WAMimeType textPlain; nextPutAll: ''Hello World'' ] - This change reduces the code size (no temps need to be declared anymore) in most cases and simplifies request handling significantly. Credits go to Julian.' id '66db219a-4325-4372-9701-baec6d271f76' date '20 May 2009' time '8:41:57 pm' author 'lr' ancestors ((name 'Seaside-FileSystem-lr.9' message 'merged' id '39bff0a0-9920-449c-83c8-98590038e2f1' date '21 February 2009' time '11:54:36 am' author 'lr' ancestors ((name 'Seaside-FileSystem-lr.8' message '- added package description' id '8d0b49ec-0ce6-4c42-89c2-bccc393832c5' date '21 February 2009' time '11:54:22 am' author 'lr' ancestors ((name 'Seaside-FileSystem-lr.7' message '- renamed #responseFactory to #responseGenerator - renamed WAResponseFactory to WAResponseGenerator - commented WAResponseGenerator, WAHtmlResponseGenerator' id '9ac6545d-f57b-4744-aa08-4ee11a87d59e' date '20 February 2009' time '11:18:24 am' author 'lr' ancestors ((name 'Seaside-FileSystem-jf.6' message 'Rename WAHtmlBuilder to WABuilder, make some very minor HTML-specificities in the class more generic, and update users.' id 'eccb571e-db0f-4bbd-b666-801ccb9135f2' date '15 February 2009' time '9:43:32 pm' author 'jf' ancestors ((name 'Seaside-FileSystem-lr.5' message '- made it work with the response refactoring' id 'b8c129c1-e487-4254-9cd6-8b02d8c95b03' date '3 February 2009' time '9:03:48 pm' author 'lr' ancestors ((name 'Seaside-FileSystem-jf.4' message 'cleanup some method categories' id 'e6ee69ce-9897-4b82-89b6-b31670ed3e23' date '30 January 2009' time '5:15:04 pm' author 'jf' ancestors ((name 'Seaside-FileSystem-jf.3' message 'Commit changes to a few packages to work with new WAPlatform. They weren''t committed by the commit script because they did not have entries on WAPackge. I''ve fixed that but did not add descriptions and am not 100% certain of the dependencies.' id '7fb85bcc-373f-44c3-af1f-6a822a671bbe' date '22 January 2009' time '3:26:21 am' author 'jf' ancestors ((name 'Seaside-FileSystem-pmm.2' message '- updates for latest Seaside' id '4966c1a9-3736-494f-902d-bbd7b3b5ca39' date '5 November 2008' time '1:50:54 pm' author 'pmm' ancestors ((name 'Seaside-FileSystem-pmm.1' message '- version bump after renaming - working with latest 2.9' id 'ac4c8161-f563-4a32-b526-397a24145267' date '18 October 2008' time '12:30:59 pm' author 'pmm' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-FileSystem-pmm.8' message '- merged' id 'f3cfbc5e-fd0a-4938-805b-fa4dae496274' date '20 February 2009' time '12:04:43 pm' author 'pmm' ancestors ((name 'Seaside-FileSystem-pmm.7' message '- asString comments' id '605b16c2-d65c-4eb4-92d5-e9d40bcf8b3d' date '20 February 2009' time '12:04:12 pm' author 'pmm' ancestors ((id 'eccb571e-db0f-4bbd-b666-801ccb9135f2')) stepChildren ())(id '9ac6545d-f57b-4744-aa08-4ee11a87d59e')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-FileSystem-pmm.15' message '- Issue 448: remove name from WAEntryPoint - http://code.google.com/p/seaside/issues/detail?id=448' id 'ae1825ca-c5cf-46f5-a24f-0ca252b86306' date '5 September 2009' time '3:18:15 pm' author 'pmm' ancestors ((id 'f310679d-cb53-430c-9a4c-c36388cc0880')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'Seaside-FileSystem-jf.22' message 'Bring WAUrl terminology in line with RFC 3986 (I got distracted on this while trying to work on fixing multiple fields with the same key). Leave old methods there marked as deprecated.' id 'eae73e29-09e4-4cd7-b1f7-56b443d9cdbf' date '15 February 2010' time '2:51:15 am' author 'jf' ancestors ((id 'fea8e194-bc45-4680-b3c6-82052c75cf1b')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Seaside-FileSystem.package/properties.json b/repository/Seaside-FileSystem.package/properties.json index f037444a7..6f31cf5a2 100644 --- a/repository/Seaside-FileSystem.package/properties.json +++ b/repository/Seaside-FileSystem.package/properties.json @@ -1,2 +1 @@ -{ - } +{ } \ No newline at end of file From 78d465878c7ce2839e368efecb4d615b6c6fb005 Mon Sep 17 00:00:00 2001 From: Johan Brichau Date: Tue, 27 Aug 2019 18:11:19 +0200 Subject: [PATCH 18/33] Change application/x-javascript by application/javascript in WAFileLibrary --- .../class/defaultMimeTypes.st | 2 +- .../WAMimeType.class/instance/isBinary.st | 4 ++-- .../instance/testHandleFileRequest.st | 2 +- .../instance/testMimeType.st | 2 +- .../instance/testMimeType.st | 2 +- .../instance/testIsBinary.st | 2 +- .../instance/jsbootstrapJs.st | 2 +- .../.filetree | 5 +++-- .../GRPackage.extension/properties.json | 3 ++- .../instance/testMimetypeForRequest.st | 2 +- .../properties.json | 19 +++++++++---------- .../monticello.meta/version | 2 -- .../properties.json | 3 +-- 13 files changed, 24 insertions(+), 26 deletions(-) delete mode 100644 repository/Seaside-Tests-FileSystem.package/monticello.meta/version diff --git a/repository/Seaside-Core.package/WAAbstractFileLibrary.class/class/defaultMimeTypes.st b/repository/Seaside-Core.package/WAAbstractFileLibrary.class/class/defaultMimeTypes.st index 7b80ab550..a6042b3e3 100644 --- a/repository/Seaside-Core.package/WAAbstractFileLibrary.class/class/defaultMimeTypes.st +++ b/repository/Seaside-Core.package/WAAbstractFileLibrary.class/class/defaultMimeTypes.st @@ -160,7 +160,7 @@ defaultMimeTypes 'jpe' 'image/jpeg' 'jpeg' 'image/jpeg' 'jpg' 'image/jpeg' - 'js' 'application/x-javascript' + 'js' 'application/javascript' 'kar' 'audio/midi' 'key' 'application/pgp-keys' 'kil' 'application/x-killustrator' diff --git a/repository/Seaside-Core.package/WAMimeType.class/instance/isBinary.st b/repository/Seaside-Core.package/WAMimeType.class/instance/isBinary.st index 2ec242fb4..612e2ca7e 100644 --- a/repository/Seaside-Core.package/WAMimeType.class/instance/isBinary.st +++ b/repository/Seaside-Core.package/WAMimeType.class/instance/isBinary.st @@ -8,7 +8,7 @@ isBinary self sub = 'json' ifTrue: [ ^ false ] ] ifFalse: [ ^ true ]. GRPlatform subStringsIn: self sub splitBy: $+ do: [ :each | - "application/x-javascript and application/xml are text" - (#('x-javascript' 'xml') includes: each) + "application/javascript and application/xml are text" + (#('javascript' 'xml') includes: each) ifTrue: [ ^ false ] ]. ^ true \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAFileHandlerTest.class/instance/testHandleFileRequest.st b/repository/Seaside-Tests-Core.package/WAFileHandlerTest.class/instance/testHandleFileRequest.st index 2d16bb7eb..dcdccdcff 100644 --- a/repository/Seaside-Tests-Core.package/WAFileHandlerTest.class/instance/testHandleFileRequest.st +++ b/repository/Seaside-Tests-Core.package/WAFileHandlerTest.class/instance/testHandleFileRequest.st @@ -6,5 +6,5 @@ testHandleFileRequest response := self responseAfter: [ handler handle: self requestContext ]. self assert: response status = 200. self assert: response contentType main = 'application'. - self assert: response contentType sub = 'x-javascript'. + self assert: response contentType sub = 'javascript'. self assert: response contents = WATestingFiles new sampleJs \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAFileLibraryTest.class/instance/testMimeType.st b/repository/Seaside-Tests-Core.package/WAFileLibraryTest.class/instance/testMimeType.st index edffa9495..e70c6ed74 100644 --- a/repository/Seaside-Tests-Core.package/WAFileLibraryTest.class/instance/testMimeType.st +++ b/repository/Seaside-Tests-Core.package/WAFileLibraryTest.class/instance/testMimeType.st @@ -2,7 +2,7 @@ tests testMimeType | library | library := WATestingFiles default. - self assert: (library mimetypeForFile: 'main.js') = 'application/x-javascript' seasideMimeType. + self assert: (library mimetypeForFile: 'main.js') = 'application/javascript' seasideMimeType. self assert: (library mimetypeForFile: 'style2.css') = WAMimeType textCss. self assert: (library mimetypeForFile: 'image.jpg') = WAMimeType imageJpeg. self assert: (library mimetypeForFile: 'index') = WAMimeType applicationOctetStream \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAFileMetadataLibraryTest.class/instance/testMimeType.st b/repository/Seaside-Tests-Core.package/WAFileMetadataLibraryTest.class/instance/testMimeType.st index 78530637c..4ce4d583e 100644 --- a/repository/Seaside-Tests-Core.package/WAFileMetadataLibraryTest.class/instance/testMimeType.st +++ b/repository/Seaside-Tests-Core.package/WAFileMetadataLibraryTest.class/instance/testMimeType.st @@ -3,4 +3,4 @@ testMimeType | library | library := WATestingMetadataFileLibrary default. self assert: (library mimetypeOf: #imgglyphiconshalflingsPng) = WAMimeType imagePng. - self assert: (library mimetypeOf: #jsbootstrapJs) = 'application/x-javascript' seasideMimeType \ No newline at end of file + self assert: (library mimetypeOf: #jsbootstrapJs) = 'application/javascript' seasideMimeType \ No newline at end of file diff --git a/repository/Seaside-Tests-Core.package/WAMimeTypeTest.class/instance/testIsBinary.st b/repository/Seaside-Tests-Core.package/WAMimeTypeTest.class/instance/testIsBinary.st index d07c07e5d..37d08d92c 100644 --- a/repository/Seaside-Tests-Core.package/WAMimeTypeTest.class/instance/testIsBinary.st +++ b/repository/Seaside-Tests-Core.package/WAMimeTypeTest.class/instance/testIsBinary.st @@ -1,7 +1,7 @@ tests testIsBinary | notBinary binary | - notBinary := #('text/plain' 'text/bar' 'application/x-javascript' 'application/xhml+xml' 'application/xml'). + notBinary := #('text/plain' 'text/bar' 'application/javascript' 'application/xhml+xml' 'application/xml'). notBinary do: [ :each | | mimeType | mimeType := WAMimeType fromString: each. diff --git a/repository/Seaside-Tests-Core.package/WATestingMetadataFileLibrary.class/instance/jsbootstrapJs.st b/repository/Seaside-Tests-Core.package/WATestingMetadataFileLibrary.class/instance/jsbootstrapJs.st index a788b7214..04c28dc0c 100644 --- a/repository/Seaside-Tests-Core.package/WATestingMetadataFileLibrary.class/instance/jsbootstrapJs.st +++ b/repository/Seaside-Tests-Core.package/WATestingMetadataFileLibrary.class/instance/jsbootstrapJs.st @@ -2,6 +2,6 @@ uploaded metadata jsbootstrapJs ^ WAFileLibraryResource filepath: 'js/bootstrap.js' - mimeType: (WAMimeType main: 'application' sub: 'x-javascript') + mimeType: (WAMimeType main: 'application' sub: 'javascript') cacheDuration: (Duration days: 0 hours: 0 minutes: 30 seconds: 0) contents: (GRDelayedSend receiver: self selector: #jsbootstrapJsContent) \ No newline at end of file diff --git a/repository/Seaside-Tests-FileSystem.package/.filetree b/repository/Seaside-Tests-FileSystem.package/.filetree index 8998102c2..57a679737 100644 --- a/repository/Seaside-Tests-FileSystem.package/.filetree +++ b/repository/Seaside-Tests-FileSystem.package/.filetree @@ -1,4 +1,5 @@ { - "noMethodMetaData" : true, "separateMethodMetaAndSource" : false, - "useCypressPropertiesFile" : true } + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/Seaside-Tests-FileSystem.package/GRPackage.extension/properties.json b/repository/Seaside-Tests-FileSystem.package/GRPackage.extension/properties.json index dd2faaf08..ae522a7e0 100644 --- a/repository/Seaside-Tests-FileSystem.package/GRPackage.extension/properties.json +++ b/repository/Seaside-Tests-FileSystem.package/GRPackage.extension/properties.json @@ -1,2 +1,3 @@ { - "name" : "GRPackage" } + "name" : "GRPackage" +} \ No newline at end of file diff --git a/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/instance/testMimetypeForRequest.st b/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/instance/testMimetypeForRequest.st index 4e85710a9..71b54b75f 100644 --- a/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/instance/testMimetypeForRequest.st +++ b/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/instance/testMimetypeForRequest.st @@ -14,4 +14,4 @@ testMimetypeForRequest self assert: (fileSystem mimetypeForRequest: request) = 'application/octet-stream' seasideMimeType. request := self requestWithUrl: '/culture/pictures/cleopatra.js'. - self assert: (fileSystem mimetypeForRequest: request) = 'application/x-javascript' seasideMimeType \ No newline at end of file + self assert: (fileSystem mimetypeForRequest: request) = 'application/javascript' seasideMimeType \ No newline at end of file diff --git a/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/properties.json b/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/properties.json index 50ee84b38..36435e50c 100644 --- a/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/properties.json +++ b/repository/Seaside-Tests-FileSystem.package/WAExternalFileLibraryTest.class/properties.json @@ -1,14 +1,13 @@ { - "category" : "Seaside-Tests-FileSystem", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "TestCase", + "category" : "Seaside-Tests-FileSystem", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ - "fileSystem" ], + "fileSystem" + ], "name" : "WAExternalFileLibraryTest", - "pools" : [ - ], - "super" : "TestCase", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Seaside-Tests-FileSystem.package/monticello.meta/version b/repository/Seaside-Tests-FileSystem.package/monticello.meta/version deleted file mode 100644 index 7dd4260c0..000000000 --- a/repository/Seaside-Tests-FileSystem.package/monticello.meta/version +++ /dev/null @@ -1,2 +0,0 @@ -(name 'Seaside-Tests-FileSystem-pmm.18' message '- lint fixes' id 'f2e4712b-089f-46a2-95b1-7c04e92627a2' date '25 August 2016' time '11:56:49.470261 am' author 'pmm' ancestors ((name 'Seaside-Tests-FileSystem-pmm.17' message '- lint fixes' id '2aaf62c4-5d33-4a88-95f5-fd7e417f7f61' date '25 August 2016' time '10:45:09.098006 am' author 'pmm' ancestors ((name 'Seaside-Tests-FileSystem-JohanBrichau.16' message 'Tests for platform-specific methods included on GRPlatform' id '69d015b1-84f0-4ae9-8baa-9ee58f0886cf' date '8 November 2014' time '10:55:57.009695 am' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-FileSystem-JohanBrichau.15' message 'Removed dependency on Sport (tests might need some more cleanup)' id '787bd999-d18d-44a6-8972-d9ab6c77afbe' date '28 September 2014' time '1:35:58.773198 pm' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-FileSystem-JohanBrichau.14' message 'Fixing tests for Seaside3.1' id 'dd39cba8-efa5-47e8-96f9-b7725b33acde' date '13 September 2013' time '10:31:12.098 am' author 'JohanBrichau' ancestors ((name 'Seaside-Tests-FileSystem-lr.13' message '- set package url' id '5b5baee4-7a0e-4cdd-aa60-1f7bb125971e' date '10 February 2010' time '11:35:21 am' author 'lr' ancestors ((name 'Seaside-Tests-FileSystem-lr.12' message '- fixed package description' id '828d6d9d-eb86-49a7-978c-f034756e56ec' date '25 October 2009' time '11:37:07 am' author 'lr' ancestors ((name 'Seaside-Tests-FileSystem-obi.11' message '- package is LGPL' id 'c24b4c72-bedf-c542-aeb3-38a70ccca504' date '8 October 2009' time '8:33:20 am' author 'obi' ancestors ((name 'Seaside-Tests-FileSystem-obi.10' message '- add (LGPL) to package description' id '3e12ace5-b44d-1a43-aacf-ba3800183e94' date '6 October 2009' time '5:29:41 pm' author 'obi' ancestors ((name 'Seaside-Tests-FileSystem-jf.9' message 'Update to use Grease' id 'da9f7580-e5a5-4aff-bb3a-91f8eb74a335' date '30 September 2009' time '10:42:27 pm' author 'jf' ancestors ((name 'Seaside-Tests-FileSystem-pmm.8' message '- fixed test' id '02f2de25-e252-41d1-8583-e3235e73ba9a' date '5 September 2009' time '4:03:16 pm' author 'pmm' ancestors ((name 'Seaside-Tests-FileSystem-pmm.7' message '- add package information' id '75f2f54d-84af-4c95-b711-934b97ae0fa8' date '5 September 2009' time '3:53:17 pm' author 'pmm' ancestors ((name 'Seaside-Tests-FileSystem-NickAger.6' message 'completed changes to WAExternalFileLibraryTest for issue 235 (http://code.google.com/p/seaside/issues/detail?id=235) - however untested - updated to allow philippe to check Library path modifications' id '7998420d-b117-d946-ae4a-5c93c6710336' date '5 September 2009' time '2:45:37 pm' author 'NickAger' ancestors ((name 'Seaside-Tests-FileSystem-NickAger.5' message 'started working on: Issue 235: WAExternalFileLibraryTest>>testPathForRequest fails on windows http://code.google.com/p/seaside/issues/detail?id=235 .. but didn''t complete...' id '956f7b8d-19a9-754a-8f20-b32d401c7ccf' date '4 September 2009' time '7:19:51 pm' author 'NickAger' ancestors ((name 'Seaside-Tests-FileSystem-lr.4' message '- fixed a problem in the tests introduced by the latest WAHttpVersion refactoring' id 'a6b4c15b-560c-437b-a0ed-dfa4dcc027e6' date '2 August 2009' time '12:51:28 pm' author 'lr' ancestors ((name 'Seaside-Tests-FileSystem-pmm.3' message '- updated tests' id 'c23abe9e-8486-4bd3-aa0a-7a8e9046085e' date '18 July 2009' time '10:18:16 am' author 'pmm' ancestors ((name 'Seaside-Tests-FileSystem-mls.2' message '- Added a package comment' id 'b297982a-1ede-4d21-b5e5-b1f482ac717b' date '4 June 2009' time '9:53:43 am' author 'mls' ancestors ((name 'Seaside-Tests-FileSystem-pmm.1' message '- version bump after renaming -- working with latest 2.9' id 'd238ee2d-40b1-400d-912a-4346df0939c7' date '18 October 2008' time '12:31:25 pm' author 'pmm' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Seaside-Tests-FileSystem.package/properties.json b/repository/Seaside-Tests-FileSystem.package/properties.json index f037444a7..6f31cf5a2 100644 --- a/repository/Seaside-Tests-FileSystem.package/properties.json +++ b/repository/Seaside-Tests-FileSystem.package/properties.json @@ -1,2 +1 @@ -{ - } +{ } \ No newline at end of file From bc2acb73af3d21c60472e8fa747627044e8eb890 Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Wed, 28 Aug 2019 09:32:31 +0200 Subject: [PATCH 19/33] 1142 Avoid 'nil' scheme with Zinc Closes #1142 --- .../ZnZincServerAdaptor.class/instance/requestUrlFor..st | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st b/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st index 6c3a656f8..b8eaca364 100644 --- a/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st +++ b/repository/Zinc-Seaside.package/ZnZincServerAdaptor.class/instance/requestUrlFor..st @@ -3,7 +3,7 @@ requestUrlFor: aZincRequest | zincUrl seasideUrl | zincUrl := aZincRequest url. seasideUrl := WAUrl new - scheme: zincUrl scheme greaseString; + scheme: zincUrl schemeOrDefault greaseString; host: zincUrl host; port: zincUrl port; fragment: zincUrl fragment. From e6e0ebbc4cf3932792a665f6bd01e4445fa5358d Mon Sep 17 00:00:00 2001 From: Philippe Marschall Date: Wed, 28 Aug 2019 09:51:48 +0200 Subject: [PATCH 20/33] 1168 Remove #fixCallbackTemps Fixes #1168 --- .../JQAjax.class/instance/callback..st | 2 +- .../monticello.meta/version | Bin 37310 -> 0 bytes .../JSAjaxCallback.class/instance/block..st | 3 +- .../PTAjax.class/instance/callback..st | 2 +- .../instance/triggerPassenger..st | 1 - .../monticello.meta/version | 1 - .../.filetree | 5 +- .../GRPackage.extension/properties.json | 3 +- .../SUAccordion.class/properties.json | 19 +++--- .../SUCarousel.class/properties.json | 19 +++--- .../SUComponentLibrary.class/properties.json | 19 +++--- .../SUDatePicker.class/properties.json | 19 +++--- .../SUDateTimePicker.class/properties.json | 19 +++--- .../properties.json | 19 +++--- .../properties.json | 19 +++--- .../SULightbox.class/properties.json | 19 +++--- .../SUNavigation.class/properties.json | 19 +++--- .../properties.json | 19 +++--- .../SUNavigationItem.class/properties.json | 19 +++--- .../SURenderableItem.class/properties.json | 19 +++--- .../SUSplitter.class/properties.json | 19 +++--- .../SUSplitterItem.class/properties.json | 19 +++--- .../SUTabPanel.class/properties.json | 19 +++--- .../SUTieredList.class/properties.json | 19 +++--- .../SUTitlePane.class/properties.json | 19 +++--- .../SUTreeReport.class/properties.json | 19 +++--- .../SUTreeReportColumn.class/properties.json | 19 +++--- .../SUVerticalCarousel.class/properties.json | 19 +++--- .../SUVerticalSplitter.class/properties.json | 19 +++--- .../instance/componentBlock..st | 2 +- .../SUWindow.class/properties.json | 19 +++--- .../WAComponent.extension/properties.json | 3 +- .../monticello.meta/version | 63 ------------------ .../properties.json | 3 +- .../instance/triggerAutocompleter..st | 1 - .../instance/triggerSliderCallback..st | 1 - .../instance/triggerSortable.callback..st | 1 - .../instance/triggerTree.callback..st | 1 - .../monticello.meta/version | 1 - .../SUDialogTest.class/instance/answer..st | 1 - .../monticello.meta/version | 1 - .../WACheckboxTag.class/instance/callback..st | 2 +- .../instance/onTrue.onFalse..st | 1 - .../WACollectionTag.class/instance/labels..st | 2 +- .../WADatalistTag.class/instance/values..st | 2 +- .../WAListTag.class/instance/callback..st | 2 +- .../WASelectTag.class/instance/enabled..st | 2 +- .../WASelectTag.class/instance/titles..st | 2 +- .../WAActionCallback.class/instance/block..st | 2 +- .../WAValueCallback.class/instance/block..st | 2 +- .../README.md | 0 .../class/isVisible.st | 7 -- .../instance/group.st | 3 - .../instance/initialize.st | 22 ------ .../instance/name.st | 3 - .../instance/rationale.st | 3 - .../instance/selectors.st | 3 - .../properties.json | 11 --- .../Seaside-Tests-Flow.package/.filetree | 5 +- .../GRPackage.extension/properties.json | 3 +- .../properties.json | 19 +++--- .../WAComponentCallTest.class/properties.json | 19 +++--- .../properties.json | 19 +++--- .../properties.json | 19 +++--- .../properties.json | 19 +++--- .../properties.json | 19 +++--- .../properties.json | 19 +++--- .../instance/goAnchors.st | 2 +- .../properties.json | 19 +++--- .../WAFlowPlatformTest.class/properties.json | 19 +++--- .../properties.json | 19 +++--- .../monticello.meta/categories.st | 1 + .../monticello.meta/version | 1 - .../properties.json | 3 +- .../Seaside-Tests-Slime.package/.filetree | 5 +- .../GRPackage.extension/properties.json | 3 +- .../instance/testFixCallbackTempsMissing.st | 12 ---- .../WASlimeTest.class/properties.json | 19 +++--- .../monticello.meta/version | 1 - .../properties.json | 3 +- 80 files changed, 316 insertions(+), 514 deletions(-) delete mode 100644 repository/JQuery-Core.package/monticello.meta/version delete mode 100644 repository/Prototype-Core.package/monticello.meta/version delete mode 100644 repository/Scriptaculous-Components.package/monticello.meta/version delete mode 100644 repository/Scriptaculous-Core.package/monticello.meta/version delete mode 100644 repository/Scriptaculous-Tests-Components.package/monticello.meta/version delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/README.md delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/class/isVisible.st delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/instance/group.st delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/instance/initialize.st delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/instance/name.st delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/instance/rationale.st delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/instance/selectors.st delete mode 100644 repository/Seaside-Pharo-Slime.package/WAFixCallbackTempsMissingRule.class/properties.json delete mode 100644 repository/Seaside-Tests-Flow.package/monticello.meta/version delete mode 100644 repository/Seaside-Tests-Slime.package/WASlimeTest.class/instance/testFixCallbackTempsMissing.st delete mode 100644 repository/Seaside-Tests-Slime.package/monticello.meta/version diff --git a/repository/JQuery-Core.package/JQAjax.class/instance/callback..st b/repository/JQuery-Core.package/JQAjax.class/instance/callback..st index cc2b75b12..2b3536ac5 100644 --- a/repository/JQuery-Core.package/JQAjax.class/instance/callback..st +++ b/repository/JQuery-Core.package/JQAjax.class/instance/callback..st @@ -3,4 +3,4 @@ callback: aBlock "Register aBlock as a primary callback of the receiver. It is only possible to have a single primary callback registered per instance. The primary callback must generate a response." self enableCallbacks. - callback := aBlock fixCallbackTemps \ No newline at end of file + callback := aBlock \ No newline at end of file diff --git a/repository/JQuery-Core.package/monticello.meta/version b/repository/JQuery-Core.package/monticello.meta/version deleted file mode 100644 index 045af19e445a8bf56b650c6b578b62fe97213d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37310 zcmeI5X>T0av8Ly1f6#x(OI?7JM_J5$DUUV7R!g>o?pC*?whR~^<7DPZvRcKeaxJ20 z%#WWZ&dHT5N@T(40qz)(+Y(vJStH(fH1->zrn zh1yO0C_Hv9^=6~adD$20Np9i|k+&XPXuTnpD zbFE`9Wt$4m`|9ZZK!zU#>_-xX!C}MaYr5g@Hrn~)+jp00KL2i3ZfDDdT3-kK@UxT? zV$M?RS5X?V_}%dHu*%##)gCLK#96JrK74-~XVW;IWNDTq>F7A!WA%q8ZsLdeU>;{x z<-Gp+>{s>q*|Uva&(wVOPyJ!Gz4+6ts`O&&l*bzks>;(kQ)PG0g3(3e$M&MdQ!knZ981rOqHMIU!&!grd=6jB3UQD7oi+yJ_D!=> zDALl4vM6&oC}@Ue`&xy-eZtZhkF>q8mTE8cd^T5@lf?Mx%`# zj_GUTH+CXS2g7!q`HXvIj6rh}^TJn&3fx?UnHz;Qe=C*mW(osWrD={SXou=2w};9) zC(|$zjt=#1cl_K#;RUV{q6{kgi z>xTfLn?P>dX*9{BIPt@O)yW$IgI;h*-@SPvjy1Wnr)=eatM(H#NCuzvd`&Z3l2o$hj&TLUG*K0fo z)^n{dm!CjBjWbg97VNcKov#&cheOvOJ9GBDZsV|Qa`t>L48uAJ-Mq>o3`UW;Md}A` zSXEh?XCda1HEhma?7Y;)dWT~l%@{153|Dc>a4mg6U*gkR9%V#?uLgAmhHflU7lV8^@f7rFNrO zMXvIT*e&w3sFNhkO3k@zcIOMzNv3f$3B26PF+KyJIvnEHOoQ>L!4L?z&bzsQd*f1{ zI+x3hJ&q;u#QAbP`=RN@KTZSIEKy%QtI#F(rlq#v?DpOH6m2eEXIe@K^ z3*%`tc1!ngxOU`YEU@7QY3E8i8}*4>f=N&Yv^u}M{a$`tEf>efTW6uUSlprQZoM$C z0z=@40TN4Rp+3#dEzUDPwHK-gqc|wa*wtB#`Oy3)*Llf>@~bqea?KHKx9mn}(akfT z#^BrW$-BoqzXO(TzSH$uUoZ5;4~EF%)n>EPP8vkhZxjf3vf6Df-fboDVsk7hXM9DF$nHxnF!1Go1w>BRri zr2JFgzcDHQ=A_cJ3}eo!n+4i)Bk-M@2VUlSy3Pcd1B|*&3j*gy4n`ZE<0!4I$Ovwy z@fb+lb7E|Nw{w<60rjL`ofMlj*r^-)loVc?C2{5Yf$US7f{o%zxoJ><&k4dovF$!Z z`)7ntN~YeJX}IT%hVa34&h_?`|GnNU7xMr1+MKR1-;PA_kC%&gyAl#+GbMbN7({*y zfwEjYUtX@}daI}Q@RfxkYGQYY>#*rQW=@4k;bu{p=&US@tTzH60l1M!7e3};3=WDTAWLqy~d8~4OXGx=3Qw1dG}@WPrc+c^tvr12=BJ=QFGUl z$cOBy-8jX*M|qLE%JVh0BuQc*uZqJiUJPZr3oUo8n{Gy2JH=oQt;zj1P?oVflCFaV zXF{7LzV~v2Cp+(NU(&$9#_OhqpVeNRxoMfUHCi5Fw9nm0S!>y_R-g)Z5SOqFwTbph|~T&PWB87lCb zIXsOgE|-;lVi&K7qb!fb^P~mPC&8i>p%+4@0N?7Y$cngQhPf7u+ZYaLx!eAS^ZtT=@kbErM#DuC_stgYLXEL9%d%Vv^VoleS?xJXj!kqH zJL4;Pf#t=8R4R7oo5`au-^K7W?4byhQfD2TrSl7*MiL}&O+^4|lpxH*-ejs!IfQ%e zCmpXF?O8d=5U_d&na45KvgUCx{mrg8X+~Mbsz?*ALsVtlj!0L)b7m8!RUHLcig)gB zhYze=wBc^I#rZS}r{N)x$-e_K#ZTGGuQ(@vwEX?*H#_cO0se3p3sw4nYDf)|4O2j1zITTs`Zz~_F+)O!L7`O}$tsEBroE*DyFPM=tu zZxRe!H75wewR&=spDzjJR^{x!>ACaEnqWj-KXuO5=VVc43uY}eM-X^b>}#U3NO;k# zs%6_l7t(`c=~q=+u{YKa!afZVB`)0}O5YO-k$liFg1)D1Rs>bd`Gvk_w-p!!) zFRXLr)&c*C3YD;?89+A3iU_0VC0@r&jB-oelBR+N<3pUAH^x8KLcccH=lNW1HqV|_ z%W`LyRs50U%pftlpW){=+x3pTGNGx=B`%_xDiH{5v%e=ykW8cdnuc!(Sr*B6o z`6Y|KyFrql^$rVR2c4UJo?SUtYQ0)< zKp1jkbL$aM1uOGH0VQjFwVpu}Zk7OUwYa`g*LHn9PlY<>KoDJEqQeAkI!_~4 zS5e{zMeKQ5XHFn#hM9xm8hhT9Soz^0u{Q=C-BM1!5h~Dz8GzyMg}!L{LL?anl(1dW;hZ16%7}xSgVy<3!iGw zAPfJ_ggSrJ3znX}X_odxQSahhQwWR^5rkDi0$Nn&u1Tbx#4OH{nXK$RjEs~7NoO2oc(Eg zIX9=44^YOAnWJp@4%s+~e>U40cVxNJ3zHRJlUtAr0FZi0G=p>IkGx8)0fFZ- z(JAzn>=@gL^X5Wuo8VFK4rTBg-`7i+I0$E$`Z1kqR&uRo-huQ+pf2 zBmsQkO{=^raH+6Fc}+evCuOZlk1NtsVS#`5Z6LBZ2(pX;ruD4wVPt)#2gQuhQwa}c z>So!AJ;iw#X_y3y7L3cD^BrC6X%1`iD)Y9*40pq+SPMfdMr+dAjyO%~FmXeWD)0{e zI*UEX(K-u@B!cAiu@TlW2HyVFN{yiGAcVwc54>aJ!auL(vyx-8*4)e)XX)D6t><>U zrRUeE-jwTm5Vt4}1ki~BA&tujNd;)HY{%=T`^OtXt2~@p`L&+pLpX|tk3IQt_RD(C zNnA_pPvYQO&NE3UGFm8=oVPEZJ7JzB&dDq19P5vHF~*C#Z&(u!JDdoK@9p}!xgCZs z?Y@>N{-O0P&# zOX8#1_z={C{;PDWh|9s!!4GKG72Q+hM^OG@-01{hQT93wQq3&n*f0M|H1O4wMLtBv zt|KWhhS>lJn?*9hFLBTqjMqQ^G~b=i7WN3_HG5riP|HGtp0fydmym6N_6Xy=L|~Kl zASfF~*qyf{c=T>&lkOEi3YHxlSZ?<)V0e{}5x5-iH8BB%mWoh00-J&rMaf!ZWQTi zJ3UMZLIOxy5{0BU5RY;o$**~&Jjlv~RZ(}xkUZ1A=}DCR@LeSVnvX&LV07nv|3IHr8W#werSNAeJoUqXZ?{O{&qblvPE}9c?IQko1en(iAo%CY^@V+7qQh6RYpvB(j7A z!{a>s*Da@9yvOFP>8qSdHS;z$%S-Jb&o-v|pNGM5y5QG6{$#AZn$K>-D z+c&6^W%2F5o-Y?$pqBg)P=FG`#KaaAn;goos*R7jH}*g3-_6c;cwW@_m>gmty4S_ox&t-ExIC%m=IE7bw-oP!565LN! z>W1irkwJTbt4cPa%28}Yby*a7pM{COwDR7#(%|c7MlSXk9{%TKyF3?_AQ*N%S1VFX z_Qt9%gcH=na&=5-fA;edo~PF2#g&|Wq1%cQ?K^tUAgrS*)S?ryXDGg7BEkW|Jdcjh zy(W?kfuqYUw>rVyf@4s%A&qQ>+DedPPd!i<(gd-E@re^)aR`$P}r1Tiw%5T3m?wzQS~yFY=R>}g**e&<~o_!RXFFSc);DPh>q)7X|8!mC|#ibmQ5_Koh7$y?GR!K^+mueF*6(y ze8Q}l8G+PX0T(AW3>0$@*Kj2~6mKRnD0i?8@T-Ib1kTcqD#Ej>lX|bjpG6K^TXqLo1wxJ=j5Z*SO?dGqeYS zK&*<8jROpi*~UnV1RkiPDKcTDJ9BI46Ab9%dN-dF>KQL9)Xn4e+)pK?-pFtYKQA&? zmOCm}7MUJu-lB4etySSCWsJ}5W)|EvGeDk5{|}hi80R&{(FlmdZwQ}1*Y);vOIn(< zZ=!1^e!8sdjc$BxSyFUSQ!r90XaL5GXaU;U#S%rO?|Dh8J6{V2pKLVQr}`etWn@FHrtY_ zDyjo8PgRgRjRNj6_rxP@8dGs0^$7_u#on2_t_(YZ$nXG)Hya}$Rf6Bz+C<8RW|%?C z@*Sx~OBo&+3wfltGe?BR!gY%XUaTrxwSfoW)*L%y2r6iX?JHscNpwGo!jI!g2F z$JVF+ZrV{Ch9~%NcD53_$Xrxw_M#%7a19b1$v7Se@>{ZNrJF?DMU~@7CHw#7r6S+J zzQ+%h7F?^v;_sKh^tqaGmWS}=;n8N`$B!O8{B6XMj~@L1M8ZT}sP#KUKd>mb7fYPp zhqD(8n5UnXoU@5zB$9Zu!*{XVWzJoS5j;Y)E`E^4h>C6Y2mz4_z(1_z`;$BcN9RsU2;3HztpG^GIM%+&&iqN0V zAlD@mu+>tShj4?Mm6Xs(3=DN1dE#}nKWF3C(9CtE z3}SfFzYbz$XhS^GL_tE_2uj3>H&UTjO&|)z&T7xE?Vu^72`Otp)Jn)E;`!92G=LJK ziuzko&lCg7Z||Uy;l*Q>)BOfL#2#c(=8EKxkg*~qmzb?xY@rD7zDtL~XF?Z~vY;Ni zHa?)SmR<@{s^Bc^91|0z8QFVMd{W3t#wDgQx9lwZ{-qCzLdQntezO>&j&DsC&>UV; z8NwDVN&!+fS@4cnX;;^c64iOG77#1s?Xf%Odiv;*<2uG8_UsB#o@DifM*)mT&_w`1 zir(;0&HHWgq5UDrNHficJtI z7>J!APbvzaO3YEtGtPN1$YJHT4>Q0drM7$&AKY(6hk&F_)ON&_oC9h10I%gV>mUTy zXHc3DNlaZBZ)RhcZia}3Y_!}0?2K7)J3UZV8KK{Fy-sxmfx!5gL=hvr4?2wExfMMvG;K!LU%1>yz#Sb+m1x*lbF$$L^2)LV=D3m%7pSlS) zBZ#3KRcEZ>d>TzqZ|!jZ=(7)y?ImLbKtZw`V|8u{u1O|>xs1Y!Q)xoB!J!q8DZjT8 ztmcBII?t(lC=u0Q5hLwU=jIol>&KLjA_SIB8m-wT9cHyn{XAfFiSLtifl{NfFor73Yk!)7z!6^KZDnW<{KMg!W zt#-MBw2|fa%OzqY0P6wSvSf@gS`yF8USF=-afc-oAY_8_aLiPo z=5FDULQADnMU^U?O(!hgH*UyF^wNjy^B7v3nUWVVZl+S;xwR3)EfsSin?+10h!0i; zR;xWZU+AKJ>>;cjP(zcyvpA} zX`i<+V6(;VX&5br3Ah^q~5JV z3V}+E+99@Sh{TY!u@ooFQkcw6bR@)=E$&bbd^I&)qF)j`Yz=Fe`p5}lkDNh@98LHy zs?*5u<|*ZoNYZGg(vBVbZ%cdn3&tUhBpMt-wfotlaDXD)WS+TQjau(!w;1EPyG9>k zYoT9cCybG@lgZGf(-VS@5P2lNnlg5{OMo1GAppoKtP;M~V&bk&sh^DK77ycGk|Bm` zXY;rl?Q>Kk6&_i}D|J0$ER1y&5lEpgsECH`6XLRa%S+~GCzX`cfLAE*!!RKL4vZi8H#~Vx1|6?Zt$|Zdn8Z8OP)+;E>lZz!JAg6;)ka5#3q{qP4@SCX*o$lQK|ICQ5rFc;!a^*zcAqD(#h#^zrazj1-eV z(S~kHTc0E@sXPd~9NfM!dNjcp2NCzWPVpE`m0WO>TXw7p6)Fg~&KVQbD1~K4Lf%^m z$z$8orh_U`)C{;a1?yI{O!o&$2q`W0vy?Ups*mgQPX9Z&M7UfjP#po@`^{ktwJcg_ zbqq$~X=yGj8Vao0IhowX+d^xFiq2#%hk$@ns%kTi2eLDtjyxJ_zc1IMc~Yyi?gve7 z!noT9>uKXLtTNn6D}cfb_i1GLJE`uaCFdmFBo3GVvvG?wE5dM#0lbjDMQak(c0)?~ ziuft*5J*yR@@tLsi=r@>GJH>IuTo*%@n1-A+QusV+(?2_u`(v??zbOf2-GAf+E8DP z(#;H9Z@!Grwvtdu$QhYjfuv2426nDV(8*Q5F#W+A!CYr1lu7XcMVgp>{K0!=R&9(aIg(Q09LSQ091Z#>%OFIvL{+(prBb&)pe!KO-#I1N?^0Z1RywS?zBVl2WMZ=7bm-<=u*g(hQW2j%5C`ksU;YfT<6@{#x! z72OtTKtoTIxW+Jd2Vvi!Krd8UA96Iup5A5_hzwit6I!!y5$qXbXlStGBkn z#?-o&zniz1h`1@we)5P@^up@gH&7PR8U_!_C6&Sp!`Z%(^ggee%x9kj$wJVe!n|^R zl3Xuofp2$3A<&$cOh3&`6~O7Vu^(@UTWHcrD@*x+3oUB&lP9N>t68^8l{6lN5HAn_ z+W5{qBd1T%AcTY@;K~x;84{^N;3C-0bR3JBu)`m>e(H^)0B1z02aw6qR;sg#ZyWM+ zpw>K6mfVtYxBQmrVI!GJOMwnvLb@3qMt)_t2Cj&<1tj-_j3^+287CB=v?+j`rnyk4 zX^hg%ZB$(_m>ZkJbsuB0uQOafoP9?x#=+!>#Eq2{!GdWj6ox5caM!xk4`=VyIrU?k z3)*K2t=Do2(~0wl11jrJf={rsB{9X3nioz_$FJw*y?opR86VEt4|{9Q!20^xv-ULn zuKiV)sco8e(6EhWZuA$W?<57Yl=`A)A`3^dK}iP|w22+ohDaVL&ikcf*{H`HTS?aC z9tpx|468ap(~Tq)5;qFa>1K#xm9wkyIVwRg7Eu0LC_0x#MaK$`W%2zWEk%S!e{cvJ zjqwrQ#_8F=Q>A|WjINXGCuG7PnI?H2xCx965uw$O!jrvz_ihVlzqES{L1W&kKaheK zN@lu6bJ{8bxy?6!ji|+Zpp~i#@wP&~F436O261(2vPVXj)JZl8!WwX8XnFhfe8|Wr z`BeAU6neYb6M7&_Lsub0;%~&#^yR{dvI?#x1=0&th_gv~VOm9<61UFhuIVbP*UuU=fmo)j zsLU*UB!`q!P!&s$Q&-b381)IMv_37K?LX>ZLW0W!)Ed&gZ7{`GjcK6#=(UN_Odo2o z=XfQP_GqVTH zm3@z9bj`gmy&pdJ*(01gfRY-u$F`kVY`tmAYPx+nXq%6*XvErQ@v?T)3}Eu7ASQ<_ z)MKhF)&}oLLlSD{#04yzzx?ohSE;>eUV1c>R@Q$Nv+%$FaCBr^v;6hw=x+o}bE(sF zUP`B%qvq8uZ!)1*Dj&G{v~bED?Jb3{>%KFXyrbFNs&`<>$6IM}G3s37Y|%b^VV&Fsi>fH47=5XSe9++h6|p^3`8ts8i?Y z=v56GG>J3`UPUlP%I8u~CKH1~W;8c3W>tDq%dQJ7CTAsP7g%h;EYZBMtk*|J?RJT@ zoq|9aJepNQUc&sDq>B-gHDj6Te}GrVb?8@tLHC% zeD`9q{k&~H1LQ0t7m(0UJ>YS3=zjU0?WfCE^THSFwM_ZPH-G=(&3CU}zIuN4{?(fw z|9oFtBF!sfYThDCD(m)ct1efPo8j*CEL=f z)cRATPQb9L^dXpl0$?#i|Q)mHp}Iz`Gh9Yk@j1rTZSP@I9g;Yl)g)p`Bs!8sJ>A2RxJFlVWY8On$`Ti*hDNix&JVS(YY zBhKntBaRb}xx`G8XZ!u7P2i6~`n|x}sQv$-ietzcjLIy( z&KQ6`yKNJAV_ZjX!0enu$`n+ov|9uJB_DzY4Y`@jKCRdxjdY=#^RO}qpf57I z$H&INc8Sj8V}4{<0{cy3<;~CdGI24O7w(BRKf0MD<%f?xw8OHKLYf2mFymmrQtvNi z>@yPu0ST!tn=sQu*xBP!shc0`RO9v054M ztQ_bX9(&PVVicCcB0-kL773EpJgo6uI1bz`1JilEMj9iw)&P2Gg@R$SE72+=l6qQFl(e@f&?=Ew_eCK^!+QFM`6awG)LW#nflHyBB+@x;<*-Rd7WSZyL!bbs-M(}gFqxB8hDsi9^8<;Jy zCz*y)6{%NP7rIg~Q7RskY$Y8$;9yXx63Vp`<-qRUO0p`XFb>EWN<-s8_-r?+%^5BY zVzr|rDrPrmJW!(Rh4HT`e%1-aKAtXfn)Xv{(vLFSKT2p$S{Ql{bsKW&#-TA*jOE-d zn)+?-jUB29<352rsp00)I7Q3%kue*}97y|@G%b{;mCz_MN@)mEkP@d!Ux_BlBZ(zx z$&Qq{W5pv;20YLM%2dV~j3(oGCR#V~PDUVS&l478!#$Z@4hs(jx*HGCGLTH(I15#f zzeAgX^AIO#tV)Z}c#WNZ-;k-n0_1!1f}AgjP&f~sy8!;FHFct;4gmsb+{*&*xMMs( zL$Wy!TnOonAC3X%sJO*>_Kb>-UI9f!YobB?scDC2+U7`OBwVZ{;|%_B%^p_fawWm z*c`iKd5StEMxt7Wlt)IIt{GG^k+(-h?v-(%d2B;F?r{ZhH*U*CQ%n0`9m41V6T|E> zZQFE8dl8pn2dpz4+>la2;MOq>1!A5j;fZM8+KRhI#dAvVLSs?*y+VZG4jSJ$BIrQF z@7UFgY94?UqOkVOBRgm-E%hWc;7&cnJv;@1YNdOO(`3>f%;X1Sp1EPbp)e2TD9OnN1i-ls+|PU$Dmzm@AFBe z9oE|I#*-6lCV=6<-5IXQ@jwaRY)6tWO^n^P( zYSInGTuJYsBl+l7DctaH;<;W^vDch(gnTI2qz#s!esp|pCW7`XPpB#IDhiLfQ;tvC zdq6~@NR?~!@Pw5-lBfeqLnA@ybDRf^18~YgD0~ti7%(@?GLuE~0ju3X@a`BESC2p8 z0mB;m(Lu=3Royla-E{6J{2&x-Zf0|maT1zd^rWfqj&K4sV4GG;F5TsLkU*SNs_1!; zyC)#^Xa^($Z#-rIM^4;mp5y~?F^8-v(1F}>1#D!H@n z+QoM)Hl2 zXdYcdi7Kr<6Qd_@^rj3dPaX*MaN8iCJQ!pP17+LQ0z7Gm=o8z3t3eGsI3oe#$DjtO zW1)~j7L{jCpyZ+ZT&0p;MMXf>KWnugE_PQsh8%#2{c%9a36`OnotGnQw;h2|;!E*u z7RY9cN?iFAg_C8ci6bSgMPF%i#|XiyM7#%FF?mkpU_rS~2AVa|tOWJ)BOsiqcekQ1 zj3@E05GZ#16vD+(4!$W+9g_gYS7#BG+9?-}4$VC3s4v7NH@9zv(TLE@?EtP(9uqeh zf15b()9rn09Zayb7U#?JCGBU75g$FNPE|;>pTwaqxga9}P?~|z8b|dd9{iLg6Hwgj) zsWX<2h?pAa%$D4PU)i(|7tp8z5jwh5*u`{tj_5MSt&pgPt)x|181`h)9aH39+!DXt ziw~3M%nXj!Nc}+VIjz4%|DuuIMvBJjs24NpTIs$;gKBCfI!KRRao^gL%b-5)q2VPV zm~`?SjH~I(C)F-3rA7-v@Qp22v{y7%P-nEBprd_GI4n>6-txJ)q32OA)p-_# zg8Rk`m_tu`z!e<|x#-Mmp99CEs+V$@WysdXG;MzSksFe&5x;bI*9KWO#OjDS^5|1} zwP8in^OjCBpCivk&YLc6N(*^-er^=ZNwFEvTJ0c8pNXKap zugP!_E(jJU@@@`}I4-R(@R1OcoNMmPd@u*?Q?byV5gtCMUmX%pm7!$4%;=F1#t;c!5%a~%2g;=UHz*=3I7RGzR} z$b)f^>iY#+Aap=HMT}#LQ%wD;lQI!2?HeK_kf@m+4nT*2l7w_NQ4E?lc`~aC>U)4$ z9?X^m+Obm;&Vx8m0_UDQFe{+vM-hOfkuPO5>(!Jkbsp`Gu>&teH+KNS*ylH#YInI3 z1vVioN*S9|J+diFayde9HF;K>?1%99%;R8;YC+1nh|LWNEzgU4E_w<+N>nfM#@9xu zW`1f?NKLBI2q~nP1(V&^hDo96t@om=w%;Ma{+_oBu`J)zrds&`h|+7RJOHr@i=-%W zG(TFaD^eFUbS6#SKEZ>cG5AtS#^|3(C{y#q-b}hP;VQ!nVvYy8_0i#-fDb<&eUbWq zf*@C~x>~=JCr^IMpPU$h%dy=IqZ)LjBgWt`JiI#*YQaa3o`c^O(Vc}?pfBqzr? z;9&|+Ce9hRk*+B6I9l^D(vPYlr~a-vmsVyiN2)17XuBZ!JY^Kwuq0fialr# zeL+VU?Fs`+V1)V+%eA#^AT1gvR*? zNzf8c^p#;RyOLP|Sd_*Y=oj%T5UhmH((G_bWeskH$FHOv1iOo6gUce^{xU9DZDvFcGHm$ofEWmYx!jh648V&oCP?|gylmie0g|0jyrlgZy zokU%k6rHK|)0MEt(TvXJ*8&wtZ}ywCal_iKI|hqwPwkK|ab%)uZ9604$B zyd}#>VHZ@IQ(9L_{}qZp>Hh`r1r(%Jk?}}^zCqI7YD(f}DBo zK|qaTuIVSpk?t@47>iYWcEAsCv0{(Y?<9O=7hI#n^XBPh#@-Vm` diff --git a/repository/Javascript-Core.package/JSAjaxCallback.class/instance/block..st b/repository/Javascript-Core.package/JSAjaxCallback.class/instance/block..st index 8589ba8aa..35a626973 100644 --- a/repository/Javascript-Core.package/JSAjaxCallback.class/instance/block..st +++ b/repository/Javascript-Core.package/JSAjaxCallback.class/instance/block..st @@ -1,4 +1,3 @@ accessing block: aZeroOrOneArgBlock - block := aZeroOrOneArgBlock isNil - ifFalse: [ aZeroOrOneArgBlock fixCallbackTemps ] \ No newline at end of file + block := aZeroOrOneArgBlock \ No newline at end of file diff --git a/repository/Prototype-Core.package/PTAjax.class/instance/callback..st b/repository/Prototype-Core.package/PTAjax.class/instance/callback..st index 63bb822eb..686ac96c0 100644 --- a/repository/Prototype-Core.package/PTAjax.class/instance/callback..st +++ b/repository/Prototype-Core.package/PTAjax.class/instance/callback..st @@ -6,4 +6,4 @@ callback: aBlock - SUEvaluator: aBlock expects one argument, which will be an instance of JSScript. - SUUpdater: aBlock expects one argument, which will be a renderer." - callback := aBlock fixCallbackTemps \ No newline at end of file + callback := aBlock \ No newline at end of file diff --git a/repository/Prototype-Core.package/PTAjax.class/instance/triggerPassenger..st b/repository/Prototype-Core.package/PTAjax.class/instance/triggerPassenger..st index 298bf1da5..1ba352784 100644 --- a/repository/Prototype-Core.package/PTAjax.class/instance/triggerPassenger..st +++ b/repository/Prototype-Core.package/PTAjax.class/instance/triggerPassenger..st @@ -1,6 +1,5 @@ triggers triggerPassenger: aBlock - aBlock fixCallbackTemps. self callback: [ :value | aBlock value: (self renderContext callbacks passengerAt: value) ] value: (JSStream on: 'arguments[0].id') \ No newline at end of file diff --git a/repository/Prototype-Core.package/monticello.meta/version b/repository/Prototype-Core.package/monticello.meta/version deleted file mode 100644 index cd4b12bc2..000000000 --- a/repository/Prototype-Core.package/monticello.meta/version +++ /dev/null @@ -1 +0,0 @@ -(name 'Prototype-Core-pmm.33' message 'Add Prototype script generator - fixes #1026' id 'ef4a6e49-5735-0d00-b105-b10402b3bc31' date '24 October 2018' time '10:48:27.630669 am' author 'pmm' ancestors ((name 'Prototype-Core-pmm.32' message 'use GRSmallDictionary2 - fixes #875' id 'fadcf64a-f731-0d00-93e3-bc6e0d1658fa' date '11 September 2018' time '12:01:21.614379 pm' author 'pmm' ancestors ((name 'Prototype-Core-pmm.31' message 'Add mapping to Prototype''s PeriodicalExecuter - fixes #925' id 'd9729e27-e331-0d00-8e83-cf7a08033da6' date '10 September 2018' time '11:59:49.271527 am' author 'pmm' ancestors ((name 'Prototype-Core-pmm.30' message 'Update bundled Prototype to 1.7.3 - fixes #1000' id '35a45bc0-cb31-0d00-9850-d9890bd00278' date '9 September 2018' time '8:04:32.592155 am' author 'pmm' ancestors ((name 'Prototype-Core-pmm.29' message '- lint fixes' id '7f757def-58fd-461d-b0e4-6e1e8e004566' date '19 August 2014' time '9:59:22 am' author 'pmm' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ()) \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/.filetree b/repository/Scriptaculous-Components.package/.filetree index 8998102c2..57a679737 100644 --- a/repository/Scriptaculous-Components.package/.filetree +++ b/repository/Scriptaculous-Components.package/.filetree @@ -1,4 +1,5 @@ { - "noMethodMetaData" : true, "separateMethodMetaAndSource" : false, - "useCypressPropertiesFile" : true } + "noMethodMetaData" : true, + "useCypressPropertiesFile" : true +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/GRPackage.extension/properties.json b/repository/Scriptaculous-Components.package/GRPackage.extension/properties.json index dd2faaf08..ae522a7e0 100644 --- a/repository/Scriptaculous-Components.package/GRPackage.extension/properties.json +++ b/repository/Scriptaculous-Components.package/GRPackage.extension/properties.json @@ -1,2 +1,3 @@ { - "name" : "GRPackage" } + "name" : "GRPackage" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUAccordion.class/properties.json b/repository/Scriptaculous-Components.package/SUAccordion.class/properties.json index 97a8d7c05..3a83b5ab4 100644 --- a/repository/Scriptaculous-Components.package/SUAccordion.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUAccordion.class/properties.json @@ -1,15 +1,14 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SUNavigation", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "visible", - "maxVisible" ], + "maxVisible" + ], "name" : "SUAccordion", - "pools" : [ - ], - "super" : "SUNavigation", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUCarousel.class/properties.json b/repository/Scriptaculous-Components.package/SUCarousel.class/properties.json index 99b1ee542..64cf24b87 100644 --- a/repository/Scriptaculous-Components.package/SUCarousel.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUCarousel.class/properties.json @@ -1,10 +1,10 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SUNavigation", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "elementExtent", "numVisible", @@ -13,9 +13,8 @@ "navMargin", "elementMargin", "animationSpeed", - "created" ], + "created" + ], "name" : "SUCarousel", - "pools" : [ - ], - "super" : "SUNavigation", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUComponentLibrary.class/properties.json b/repository/Scriptaculous-Components.package/SUComponentLibrary.class/properties.json index a7a91840e..5bcb5b0f8 100644 --- a/repository/Scriptaculous-Components.package/SUComponentLibrary.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUComponentLibrary.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Scriptaculous-Components-Libraries", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "SUComponentLibrary", - "pools" : [ - ], "super" : "WAFileLibrary", - "type" : "normal" } + "category" : "Scriptaculous-Components-Libraries", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SUComponentLibrary", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUDatePicker.class/properties.json b/repository/Scriptaculous-Components.package/SUDatePicker.class/properties.json index cd06c7cc5..c41d62d00 100644 --- a/repository/Scriptaculous-Components.package/SUDatePicker.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUDatePicker.class/properties.json @@ -1,19 +1,18 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAMiniCalendar", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "widgetId", "uid", "format", "origin", "containerId", - "open" ], + "open" + ], "name" : "SUDatePicker", - "pools" : [ - ], - "super" : "WAMiniCalendar", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUDateTimePicker.class/properties.json b/repository/Scriptaculous-Components.package/SUDateTimePicker.class/properties.json index 0320bd08d..859097051 100644 --- a/repository/Scriptaculous-Components.package/SUDateTimePicker.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUDateTimePicker.class/properties.json @@ -1,17 +1,16 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SUDatePicker", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "showSeconds", "hours", "minutes", - "seconds" ], + "seconds" + ], "name" : "SUDateTimePicker", - "pools" : [ - ], - "super" : "SUDatePicker", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUHorizontalCarousel.class/properties.json b/repository/Scriptaculous-Components.package/SUHorizontalCarousel.class/properties.json index 2c21429f1..7c98a8010 100644 --- a/repository/Scriptaculous-Components.package/SUHorizontalCarousel.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUHorizontalCarousel.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "SUHorizontalCarousel", - "pools" : [ - ], "super" : "SUCarousel", - "type" : "normal" } + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SUHorizontalCarousel", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUHorizontalSplitter.class/properties.json b/repository/Scriptaculous-Components.package/SUHorizontalSplitter.class/properties.json index e06d5871a..515a8107d 100644 --- a/repository/Scriptaculous-Components.package/SUHorizontalSplitter.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUHorizontalSplitter.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "SUHorizontalSplitter", - "pools" : [ - ], "super" : "SUSplitter", - "type" : "normal" } + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SUHorizontalSplitter", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SULightbox.class/properties.json b/repository/Scriptaculous-Components.package/SULightbox.class/properties.json index 37884d265..8c3a10e3d 100644 --- a/repository/Scriptaculous-Components.package/SULightbox.class/properties.json +++ b/repository/Scriptaculous-Components.package/SULightbox.class/properties.json @@ -1,14 +1,13 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WADecoration", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ - "delegate" ], + "delegate" + ], "name" : "SULightbox", - "pools" : [ - ], - "super" : "WADecoration", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUNavigation.class/properties.json b/repository/Scriptaculous-Components.package/SUNavigation.class/properties.json index af8a52892..0be37aeb1 100644 --- a/repository/Scriptaculous-Components.package/SUNavigation.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUNavigation.class/properties.json @@ -1,15 +1,14 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAComponent", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "items", - "uid" ], + "uid" + ], "name" : "SUNavigation", - "pools" : [ - ], - "super" : "WAComponent", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUNavigationCarousel.class/properties.json b/repository/Scriptaculous-Components.package/SUNavigationCarousel.class/properties.json index cc06cbbdc..f8c6e847b 100644 --- a/repository/Scriptaculous-Components.package/SUNavigationCarousel.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUNavigationCarousel.class/properties.json @@ -1,17 +1,16 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SUNavigation", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "selected", "elementHeight", "visibleElements", - "offset" ], + "offset" + ], "name" : "SUNavigationCarousel", - "pools" : [ - ], - "super" : "SUNavigation", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUNavigationItem.class/properties.json b/repository/Scriptaculous-Components.package/SUNavigationItem.class/properties.json index 8d71cf157..da682b995 100644 --- a/repository/Scriptaculous-Components.package/SUNavigationItem.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUNavigationItem.class/properties.json @@ -1,14 +1,13 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SURenderableItem", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ - "label" ], + "label" + ], "name" : "SUNavigationItem", - "pools" : [ - ], - "super" : "SURenderableItem", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SURenderableItem.class/properties.json b/repository/Scriptaculous-Components.package/SURenderableItem.class/properties.json index cdd79d655..adbe2223b 100644 --- a/repository/Scriptaculous-Components.package/SURenderableItem.class/properties.json +++ b/repository/Scriptaculous-Components.package/SURenderableItem.class/properties.json @@ -1,15 +1,14 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAObject", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "owner", - "body" ], + "body" + ], "name" : "SURenderableItem", - "pools" : [ - ], - "super" : "WAObject", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUSplitter.class/properties.json b/repository/Scriptaculous-Components.package/SUSplitter.class/properties.json index a7654551e..1ba6df0b8 100644 --- a/repository/Scriptaculous-Components.package/SUSplitter.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUSplitter.class/properties.json @@ -1,14 +1,13 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAComponent", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ - "items" ], + "items" + ], "name" : "SUSplitter", - "pools" : [ - ], - "super" : "WAComponent", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUSplitterItem.class/properties.json b/repository/Scriptaculous-Components.package/SUSplitterItem.class/properties.json index a4bf89c33..120eb9fcd 100644 --- a/repository/Scriptaculous-Components.package/SUSplitterItem.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUSplitterItem.class/properties.json @@ -1,15 +1,14 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SURenderableItem", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "min", - "size" ], + "size" + ], "name" : "SUSplitterItem", - "pools" : [ - ], - "super" : "SURenderableItem", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUTabPanel.class/properties.json b/repository/Scriptaculous-Components.package/SUTabPanel.class/properties.json index b7b2f541f..9ef2a30ad 100644 --- a/repository/Scriptaculous-Components.package/SUTabPanel.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUTabPanel.class/properties.json @@ -1,14 +1,13 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "SUNavigation", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ - "selected" ], + "selected" + ], "name" : "SUTabPanel", - "pools" : [ - ], - "super" : "SUNavigation", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUTieredList.class/properties.json b/repository/Scriptaculous-Components.package/SUTieredList.class/properties.json index 877da81cf..2cb051bb4 100644 --- a/repository/Scriptaculous-Components.package/SUTieredList.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUTieredList.class/properties.json @@ -1,17 +1,16 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAComponent", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "selectionPath", "childrenBlock", "labelBlock", - "uid" ], + "uid" + ], "name" : "SUTieredList", - "pools" : [ - ], - "super" : "WAComponent", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUTitlePane.class/properties.json b/repository/Scriptaculous-Components.package/SUTitlePane.class/properties.json index 32408ad81..3292276da 100644 --- a/repository/Scriptaculous-Components.package/SUTitlePane.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUTitlePane.class/properties.json @@ -1,19 +1,18 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAComponent", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "title", "body", "open", "uid", "loaded", - "alwaysRefresh" ], + "alwaysRefresh" + ], "name" : "SUTitlePane", - "pools" : [ - ], - "super" : "WAComponent", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUTreeReport.class/properties.json b/repository/Scriptaculous-Components.package/SUTreeReport.class/properties.json index 74e0f331b..b0cbaa6e6 100644 --- a/repository/Scriptaculous-Components.package/SUTreeReport.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUTreeReport.class/properties.json @@ -1,19 +1,18 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAComponent", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "uids", "roots", "columns", "expanded", "childrenBlock", - "expandableBlock" ], + "expandableBlock" + ], "name" : "SUTreeReport", - "pools" : [ - ], - "super" : "WAComponent", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUTreeReportColumn.class/properties.json b/repository/Scriptaculous-Components.package/SUTreeReportColumn.class/properties.json index e0c5d47b1..d88bb0725 100644 --- a/repository/Scriptaculous-Components.package/SUTreeReportColumn.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUTreeReportColumn.class/properties.json @@ -1,16 +1,15 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAObject", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "owner", "renderer", - "label" ], + "label" + ], "name" : "SUTreeReportColumn", - "pools" : [ - ], - "super" : "WAObject", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUVerticalCarousel.class/properties.json b/repository/Scriptaculous-Components.package/SUVerticalCarousel.class/properties.json index 84f4d0989..d54ca87d5 100644 --- a/repository/Scriptaculous-Components.package/SUVerticalCarousel.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUVerticalCarousel.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "SUVerticalCarousel", - "pools" : [ - ], "super" : "SUCarousel", - "type" : "normal" } + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SUVerticalCarousel", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUVerticalSplitter.class/properties.json b/repository/Scriptaculous-Components.package/SUVerticalSplitter.class/properties.json index d22c96f8b..2a82abca0 100644 --- a/repository/Scriptaculous-Components.package/SUVerticalSplitter.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUVerticalSplitter.class/properties.json @@ -1,14 +1,11 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", - "instvars" : [ - ], - "name" : "SUVerticalSplitter", - "pools" : [ - ], "super" : "SUSplitter", - "type" : "normal" } + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], + "instvars" : [ ], + "name" : "SUVerticalSplitter", + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUWindow.class/instance/componentBlock..st b/repository/Scriptaculous-Components.package/SUWindow.class/instance/componentBlock..st index a0b095bb3..a234e98da 100644 --- a/repository/Scriptaculous-Components.package/SUWindow.class/instance/componentBlock..st +++ b/repository/Scriptaculous-Components.package/SUWindow.class/instance/componentBlock..st @@ -1,3 +1,3 @@ accessing componentBlock: aBlock - componentBlock := aBlock fixCallbackTemps \ No newline at end of file + componentBlock := aBlock \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/SUWindow.class/properties.json b/repository/Scriptaculous-Components.package/SUWindow.class/properties.json index b8f1070c8..5f25320dd 100644 --- a/repository/Scriptaculous-Components.package/SUWindow.class/properties.json +++ b/repository/Scriptaculous-Components.package/SUWindow.class/properties.json @@ -1,10 +1,10 @@ { - "category" : "Scriptaculous-Components-Core", - "classinstvars" : [ - ], - "classvars" : [ - ], "commentStamp" : "", + "super" : "WAComponent", + "category" : "Scriptaculous-Components-Core", + "classinstvars" : [ ], + "pools" : [ ], + "classvars" : [ ], "instvars" : [ "title", "component", @@ -15,9 +15,8 @@ "origin", "properties", "collapsed", - "visible" ], + "visible" + ], "name" : "SUWindow", - "pools" : [ - ], - "super" : "WAComponent", - "type" : "normal" } + "type" : "normal" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/WAComponent.extension/properties.json b/repository/Scriptaculous-Components.package/WAComponent.extension/properties.json index a9120f76f..94b6f7e9d 100644 --- a/repository/Scriptaculous-Components.package/WAComponent.extension/properties.json +++ b/repository/Scriptaculous-Components.package/WAComponent.extension/properties.json @@ -1,2 +1,3 @@ { - "name" : "WAComponent" } + "name" : "WAComponent" +} \ No newline at end of file diff --git a/repository/Scriptaculous-Components.package/monticello.meta/version b/repository/Scriptaculous-Components.package/monticello.meta/version deleted file mode 100644 index 36e75d540..000000000 --- a/repository/Scriptaculous-Components.package/monticello.meta/version +++ /dev/null @@ -1,63 +0,0 @@ -(name 'Scriptaculous-Components-pmm.117' message 'subStrings: is deprecated in Pharo 5 #844 - https://github.com/SeasideSt/Seaside/issues/844 - remove all senders' id '43688765-ebb5-41d1-a732-8fdecd71d437' date '21 August 2016' time '4:59:09.581069 pm' author 'pmm' ancestors ((name 'Scriptaculous-Components-JohanBrichau.116' message 'Fix for issue https://github.com/SeasideSt/Seaside/issues/863' id '83570de8-7fde-4671-87dd-dfd6def70db0' date '31 March 2016' time '4:40:11.026033 pm' author 'JohanBrichau' ancestors ((name 'Scriptaculous-Components-JohanBrichau.115' message 'remove deprecation warning (pharo 5)' id '9270f770-770d-4619-b67c-448219de5b0b' date '20 March 2016' time '9:06:21.108415 pm' author 'JohanBrichau' ancestors ((name 'Scriptaculous-Components-pmm.114' message '- Slime fixes, mostly recategorizations' id '539095a7-8b94-4f6d-85dd-8e38f7e39575' date '3 September 2012' time '4:37:26 pm' author 'pmm' ancestors ((name 'Scriptaculous-Components-pmm.113' message '- formatting Nazis from outer space' id '28bb79a2-d1f1-441a-8a9f-e5fb27496e0c' date '1 September 2012' time '5:07:50 pm' author 'pmm' ancestors ((name 'Scriptaculous-Components-pmm.112' message '- formatting nazis from the dark side of the moon' id '55677d80-a914-4226-9f45-40222fa4e1aa' date '19 February 2012' time '11:31:55 am' author 'pmm' ancestors ((name 'Scriptaculous-Components-lr.111' message '- fixed formatting of return message' id '03d1dfc6-ad99-4c7d-b56a-b79a1afa7d12' date '25 July 2011' time '8:19:09 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-lr.110' message '- fixed spacing in blocks' id 'ce3fed74-54bf-4c8c-88cc-7e00b9e97221' date '25 July 2011' time '7:25 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-pmm.109' message '- fix RB damage, crap tool from the eighties, please chocke on a bucket of dicks' id 'c1d30608-2875-88b5-20ea-2ef7a46c1508' date '26 June 2011' time '2:34:14 pm' author 'pmm' ancestors ((name 'Scriptaculous-Components-pmm.108' message '- lint fixes' id '9b295ebf-00fa-499c-b0d0-4f4f341935ee' date '19 February 2011' time '11:05:14 am' author 'pmm' ancestors ((name 'Scriptaculous-Components-pmm.107' message '- lint fixes' id 'b2b28fa0-da74-40d3-a23e-e2dbf9b33c46' date '17 February 2011' time '7:48:55 am' author 'pmm' ancestors ((name 'Scriptaculous-Components-lr.106' message '- updated to Prototype 1.7 - updated to script.aculo.us 1.9' id '7a30330e-ab10-420c-b807-6bd1a90865e2' date '14 January 2011' time '8:48:27 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-obi.105' message '- use PTElement id: .. directly instead of script element id: .. as argument for method "onAfterFinish: ", otherwise the script is rendered twice' id 'b893c645-c0e2-b845-a144-65793fd6a744' date '29 May 2010' time '9:15:33 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-obi.104' message '- fix deprecated calls' id 'fc30f5dd-9b9a-c445-bcd4-dd0eed025979' date '23 May 2010' time '10:03:40 am' author 'obi' ancestors ((name 'Scriptaculous-Components-obi.103' message '- fix deprecated call' id '042b7ca8-080a-e14f-8376-3ac46cb9e5ba' date '23 May 2010' time '9:55:32 am' author 'obi' ancestors ((name 'Scriptaculous-Components-obi.102' message '- fix deprecated calls' id '6b468243-a6df-c24a-ad3b-c31bbfd494e2' date '22 May 2010' time '11:29 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-obi.101' message '- fix deprecated calls' id '348279f6-9605-a743-8126-54550e57a4bc' date '21 May 2010' time '8:23:25 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-mls.100' message '+ replaced several senders of #asString with #greaseString' id '4bbb5519-e8eb-4a4f-8e9b-23a4003a091b' date '14 May 2010' time '3:54:35 pm' author 'mls' ancestors ((name 'Scriptaculous-Components-lr.99' message '- added explicit repository url' id '79694dbf-5d38-4471-a489-9cebb8f38276' date '17 February 2010' time '4:03:14 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-obi.98' message '- improve SUWindow code' id '78663ced-dabb-784e-a0f4-5fe3ca240da6' date '26 January 2010' time '1:14:43 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-lr.97' message '- reverted to Scriptaculous-Components-jf.95 (#componentBlock: isn''t an initialize method, so you should still call #new not #basicNew #initializeTooltipWith: doesn''t seem to be an initialization method (since it''s not called from the class-side) but calling it will result in #initialize being called twice)' id '1f77935f-6de3-49b8-9bcc-04994b1b8018' date '26 January 2010' time '7:28:27 am' author 'lr' ancestors ((name 'Scriptaculous-Components-lr.96' message '- fixed some slime issues' id 'a40555b4-b34f-4b15-b853-cc724a7ac5a4' date '25 January 2010' time '11:39:47 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-jf.95' message 'merge' id 'c4c0c381-067a-427d-b881-80eca7bfb7cb' date '29 December 2009' time '5:10:57 pm' author 'jf' ancestors ((name 'Scriptaculous-Components-jf.94' message '- move Task stuff into Component package -- no longer need special Flow configuration settings -- Make parameter to onAnswer: blocks optional -- Add #call:onAnswer: which does a #show:onAnswer: and then sends a render notification; rewrite #call: to use #call:onAnswer: -- Make as few of the functional tests as possible depend on Flow' id '9d9a4ba2-b490-450c-9f05-d128a5fd6b99' date '29 December 2009' time '4:12:36 pm' author 'jf' ancestors ((name 'Scriptaculous-Components-dkh.92' message '- update dependencies based on loading experiences using ConfigurationOfSeaside30 ' id '091ec79e-89ab-4f52-86b2-12bb0ea43428' date '13 November 2009' time '2:49:06 pm' author 'dkh' ancestors ((name 'Scriptaculous-Components-jf.91' message 'Rename Seaside-Platform to Grease in order to help make clear that it is not Seaside-specific and can be used by other projects as a compatibility layer. This was spawned by discussions when I started porting Magritte to VAST using the Platform layer.' id 'e8863a7a-62dc-42a4-ae48-438b1107d923' date '30 September 2009' time '10:49:50 pm' author 'jf' ancestors ((name 'Scriptaculous-Components-jok.90' message 'Change dependency from Seaside-Component to Seaside-Widgets sinceSUDatePicker subclasses WAMiniCalendar. Seaside-Widgets is dependent on Seaside-Component, so everything comes back together correctly.' id '3b266fd4-b635-784d-b0bb-0350bc29bf65' date '17 September 2009' time '3:56:41 pm' author 'jok' ancestors ((name 'Scriptaculous-Components-obi.89' message '- use seasideString instead of asString' id '08dc8506-65c0-194e-8558-c63bee000375' date '16 September 2009' time '3:46:23 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-obi.88' message '- use findTokens: instead of subStrings:' id '82f1fb57-7e13-8a4d-8716-d63c55b7d127' date '9 September 2009' time '7:43:38 am' author 'obi' ancestors ((name 'Scriptaculous-Components-obi_.87' message '- fix DateTimePicker issue ' id 'df4b7a55-e834-9449-88fa-9a847cf67197' date '8 September 2009' time '11:35:21 pm' author 'obi#' ancestors ((name 'Scriptaculous-Components-lr.86' message '- according to Julian it is "anHtmlRoot" and "aUrl", so made that consistent across the complete codebase -- remove the #update*: methods from WAApplication' id '33c05a2f-28a9-4916-8a69-84867752e3da' date '8 September 2009' time '12:59:49 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-lr.85' message '- fixed typo: anHtmlRoot -> aHtmlRoot -- made #updateRoot: in WAApplication and WASession empty again, but make sure they get called' id '933452ec-485e-4777-b645-39d4dedbb388' date '8 September 2009' time '10:33:59 am' author 'lr' ancestors ((name 'Scriptaculous-Components-obi.84' message '- SUDateTimePicker cleanUp, - can''t test because triggerForm is broken !' id '91994721-6d70-1e42-b191-6b2ebf2d211e' date '6 September 2009' time '9:46:51 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-lr.83' message '- fixed by moving some code to Scriptaculous-Core - - Undeclared: #(#SUSortable) - Undeclared: #(#SUElement) -' id '86caf7a4-9118-49b1-82c5-a3b62d2d0e12' date '30 June 2009' time '7:56:26 am' author 'lr' ancestors ((name 'Scriptaculous-Components-lr.82' message '- use factory method, avoid direct class references' id '3b3a62a1-3a57-4775-8361-cd0899de85e5' date '29 June 2009' time '3:16:02 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-lr.81' message '- replace all senders of #asInteger with #seasideInteger' id '7b1b03e2-b74f-4fd4-9c99-39d7e2d9cd3c' date '14 April 2009' time '12:27:14 am' author 'lr' ancestors ((name 'Scriptaculous-Components-lr.80' message '- remove cruft' id '6bcf1c69-e886-4193-88e5-7834a889f12f' date '14 March 2009' time '9:40:42 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-jf.79' message 'Fix most of the initialization problems reported by Slime.' id '30d99bb6-d0cf-420e-84de-89fc83fd2012' date '13 March 2009' time '6:37:38 pm' author 'jf' ancestors ((name 'Scriptaculous-Components-lr.78' message '- fixed various slime/lint issues that went unnoticed so far because of a bug in the refactoring engine' id 'bd1c1e29-6b12-4a1e-bb3c-2140b1dffaa4' date '28 February 2009' time '11:18:14 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-pmm.77' message '- remove literal caching' id '8b6e1fca-d7b7-4087-a881-35a331d48ccc' date '21 February 2009' time '10:24:40 am' author 'pmm' ancestors ((name 'Scriptaculous-Components-obi.76' message '- use new scriptaculous factory (avoid deprecation warnings)' id '6eb4dfe0-4399-c141-9838-4cb69ab03526' date '11 February 2009' time '9:10:19 pm' author 'obi' ancestors ((name 'Scriptaculous-Components-jf.75' message 'move platform-specific part of Flow into a Platform method called #suspendCallbackDo: and resolve dependencies from other packages on WAContinuation to use it instead. - -There is one remaining test class in Seaside-Session that is still using WAContinuation directly (see http://code.google.com/p/seaside/issues/detail?id=309)' id 'ddf1e95f-e8ca-4d67-879d-c03b8d8f4aa5' date '27 January 2009' time '1:30:19 pm' author 'jf' ancestors ((name 'Scriptaculous-Components-lr.74' message '- simplifiying some lint stuff' id '06ffb286-10b0-4ff5-b3e0-befcbb388a36' date '25 January 2009' time '4:17:09 pm' author 'lr' ancestors ((name 'Scriptaculous-Components-jf.73' message 'Move load script functionality from yucky implementation on RequestContext/RenderPhaseContinuation to HtmlDocument. - -This removed the need for yucky #rememberLoadScripts: method as well. - -I also fixed the two users of PrettyPrintedDocument (WAHalo and JQAllTests) so they work correctly. - -One RSS test is now failing because it was using HtmlDocument for XML and there is now Html-specific behaviour (scripts) on there. I think this finally requires introduction of a WADocument class. I''ll look at this next. - -There''s also one other issue remaining: the