[Windmill-dev] https; file uploads; extjs and click support

Gary Poster gary at zope.com
Sun Dec 16 17:34:09 PST 2007


Hi Adam and Mikeal, and thanks for your several replies.  I'm going to  
try and assemble the points from all of the emails to which I want to  
reply here, and hope that it still makes sense.

First, the most recent, from Adam.

> Gary,
>
> Again in this case, for the time being I am going to blame the  
> JavaScript framework for stopping propagation in a way that makes  
> recording these actions nearly impossible.

Maybe we have a chance to set up a dialog between authors of a browser  
testing framework and a JS development framework.  The development  
framework is not stopping the propagation arbitrarily; for instance,  
in the page I sent, clicking the checkbox div should change the data  
value and display, but should not perform the usual behavior of  
highlighting the grid cell in which you have clicked.  Stopping event  
propagation is a reasonable approach.

But what could be better?  What could they do that would accomplish  
what they need and what you could catch?  They could fire an alternate  
event-ish thing when they stop the propagation, and there could be an  
ext plugin for windmill to listen to it, perhaps.  Or, what would you  
suggest? :-)  I'd like to bring this up with them, and having some  
reasonable starter ideas can help technical conversations along, and  
can also be a part of explaining what the problem is.

> However, I fixed a bug in the click function keeping it from firing  
> the mousedown correctly which stopped it from playing back.

Great!

> So the solution for now is to click 'Add Action' and set the locator  
> using the DOM explorer. As I said earlier, if you want the action to  
> work in the future I would set the 'Use XPath only for explorer/ 
> recorder' when exploring this action, because those ID's change  
> constantly.

Yep, saw that too.  I'm hoping I can get some ideas on reliable XPath  
spellings from the ext guys too.  If Windmill had a plugin story, and  
one could say "ah, this is ext; try spelling your XPath this way  
because this is the blessed, cross-release approach" that might help.

> The fix is checked into the trunk and will be released in 0.3.6  
> within the next few days.
>
> Sorry we couldn't make this work OOTB, but I will keep my eye out  
> for a slicker fix for this rather large issue.

Understood and thanks.

Next, Mikeal, in regards to HTTPS.

> I spent a good chunk of my weekend giving this another go.

Thanks!

> I finally know how Selenium does this. You have to generate a  
> certificate for each target site and make the next socket connection  
> after an HTTP CONNECT method respond with that certificate.

I think sahi does the same thing, fwiw.

> This means seriously tearing in to the server layer of windmill,  
> which to date we don't actually control. We use cherrypy as a WSGI  
> server, and the rest of our app works strictly at the WSGI  
> application level.
>
> Supporting SSL is a huge amount of work -- significantly more work  
> than anything else we're considering in windmill. We'll either have  
> to swap out various cherrypy wsgi server components, write our own  
> server, or move to a new server that provides us some way of getting  
> at this layer. I do know that there is a working https proxy  
> implementation in twisted, so it might be possible to mess with that.

They also have some WSGI support, though my possibly misguided  
impression from the sidelines there is that WSGI support is not a top  
priority.  But it might still work, and might even be drop-in-ish.

Finally, Mikeal, in regards to FileUploads:

> Actually, what we want to try and do for this is set it in the  
> browser via javascript.
>
> If we try to handle this on the backend (shoving the file stream  
> into the multi-post stream) it's a HUGE hack and is extremely far  
> from what a normal user would do. This also bypasses anything  
> someone might have done with javascript and/or form validation on  
> the browser.
>
> If there is no other way, i'll do it in the Service, but this is  
> worst case scenario.

Agreed that it's a hack, but...hey, if you figure out another way that  
would be awesome. :-)  I don't think the browsers give you much  
control at all over their FileUpload widgets.

Thanks again to both of you.

Gary


More information about the Windmill-dev mailing list