No problem - The simplest illustration of the problem is probably to
execute the following on a Pier 2 image (no need to download the image
I've prepared):
createSimplestPierIllustratingCallbackProblemInFirefox
| app rootPage |
rootPage := (PRPage named: 'rootPage') contents: '*counter*
*shouldntgohere*'; yourself.
rootPage localEnvironment: ((PRComponent named: 'contents')
componentClass: PRContentsWidget; yourself).
rootPage addChild: ((PRComponent named: 'counter') componentClass:
WACounter; yourself).
rootPage addChild: ((PRPage named: 'shouldntgohere') contents:
'shouldn''t be here'; yourself).
PRKernel reset.
app := PRPierFrame registerAsApplication: 'pier' kernel: (PRKernel
named: 'testKernel' root: rootPage).
app preferenceAt: #useCookies put: true.
On 7 March 2011 17:29, Lukas Renggli <renggli(a)gmail.com> wrote:
Thanks for preparing the image and sorry for not looking into it
earlier. I will try to look into this problem tonight.
Lukas
On 27 February 2011 14:16, Nick Ager <nick.ager(a)gmail.com> wrote:
> I've uploaded an image which demonstration the issue:
>
http://getitmade.com/static/Pier-2.zip
>
> Download and browse to
http://localhost:8080/pier/call
> Click on the "++" or "--" links of the WACounter instance twice
in Firefox.
> Notice that only in Firefox the second click of the callback take you
> to
http://localhost:8080/pier/dates rather than incrementing the
> counter.
>
> On 26 February 2011 15:50, Nick Ager <nick.ager(a)gmail.com> wrote:
>> I've logged a bug:
http://code.google.com/p/pier/issues/detail?id=132
>>
>> The text of the bug is:
>>
>>
>> Steps to recreate the bug:
>> 1) Download the recent build of Pier 2 -
>>
http://hudson.lukas-renggli.ch/job/Pier%202/ - this bug is not present
>> in Pier with Seaside 2.8
>> 2) In a workspace execute the following:
>>
>> PREventDistribution register.
>> WAAdmin defaultDispatcher defaultHandler preferenceAt: #useCookies put: true.
>> (PRPathLookup start: (PRKernel instances anyOne) root path: '/call')
>> contents: 'In Firefox, try clicking on the counter
>>
>> +counter+'.
>> (PRPathLookup start: (PRKernel instances anyOne) root path: '/call')
addChild: (
>> (PRComponent named: 'counter') componentClass: WACounter; yourself)
>>
>> 3) Within Firefox (I'm using 3.16.13) browse to
>>
http://localhost:8080/pier/call - you should be on the "Call for
>> Contributions" page into which the above script embeds the standard
>> Seaside counter component in the page.
>> 4) Try clicking on the "++" or "--" links a couple of times
and you'll
>> find yourself taken to
http://localhost:8080/pier/dates and rather
>> than modifying the counter value.
>>
>> Here's my understanding of the bug:
>>
>> 1) Amongst other metadata Pier adds the following to the header: <link
>> href="/pier/dates" rel="next">
>> 2) In Firefox when cookies are enabled, the <link rel="next">
causes
>> firefox to issue at least two requests for each page; the first
>> request for the url specified, the second for the url specified in the
>> href of the <link rel="next">. Note this second request is not
visible
>> in firebug (I added request logging to WAComancheRequestConverter). In
>> Safari or Chrome, I haven't seen any additional requests and so the
>> problem does not appear.
>> 3) The second request confuses the callback hander
>>
>> Unfortunately my understanding of how the callback handler should work
>> is limiting my ability to fix the bug. Any thoughts?
>>
> _______________________________________________
> Magritte, Pier and Related Tools ...
>
https://www.iam.unibe.ch/mailman/listinfo/smallwiki
>
--
Lukas Renggli
www.lukas-renggli.ch
_______________________________________________
Magritte, Pier and Related Tools ...
https://www.iam.unibe.ch/mailman/listinfo/smallwiki