Closed GoogleCodeExporter closed 9 years ago
hey there,
filter looks good, i did a quick test and it works as expected for me (adds to
webui, doesn't download). maybe the problem is an unexpected webserver
configuration.
go install this extension:
https://chrome.google.com/webstore/detail/dev-http-client/aejoelaoggembcahagimdi
liamlcdmfm?hl=en
then open it up (there's an icon in the new tab page) and do a GET request on
the url you would be clicking for the problem to occur. then paste me the raw
response headers (middle left of the page).
Original comment by jul...@gmail.com
on 12 Jan 2013 at 3:28
[deleted comment]
[deleted comment]
Hi,
Here you go:
Pragma: no-cache
Date: Sat, 12 Jan 2013 16:24:38 GMT
Last-Modified: Sat, 12 Jan 2013 16:24:38 GMT
Server: nginx
Transfer-Encoding: chunked
Content-Type: application/x-bittorrent; name="t1551576.torrent"
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Disposition: attachment; filename="t1551576.torrent"
Connection: keep-alive
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Original comment by mi...@angelclaw.ro
on 12 Jan 2013 at 4:26
Also example of working tracker with my added filter
\/download\.php\?id=\d+&type=torrent
Date: Sat, 12 Jan 2013 16:23:40 GMT
Content-Disposition: attachment; filename="filenamegoeshere.torrent"
Server: nginx/1.0.15
Connection: keep-alive
X-Powered-By: PHP/5.3.17-1~dotdeb.0
Transfer-Encoding: chunked
Content-Type: application/x-bittorrent
Original comment by mi...@angelclaw.ro
on 12 Jan 2013 at 4:27
what's the http return code? in the dev http client extension, it's directly
below the "RESPONSE" title, usually a number and short string like "200 OK" or
"302 Found".
this is sadly mostly fishing, i don't really have a good idea what could be
causing your problem. can you divulge the link? it's easier to debug errors
when you're working on the real thing.
Original comment by jul...@gmail.com
on 12 Jan 2013 at 4:36
200 OK :)
It's some russian tracker with adult content :D
I will mail you the link, it's free signup but it has no english.
Original comment by mi...@angelclaw.ro
on 12 Jan 2013 at 4:51
[deleted comment]
Tell me if you need anything else or if you haven't received my email yet.
Original comment by mi...@angelclaw.ro
on 12 Jan 2013 at 5:01
alright, i see what's happening... they've solved the whole downloading of a
torrent thing in a bit of a funky way:
a click on the link sets a cookie, then releasing the click actually submits a
form (and not just "executes" the link-click) that has the action-value of the
link, thereby downloading the torrent file.
this is all done via javascript manipulation, so since the runtime of the
content script of the extension right now is forced to occur *before* the
runtime of the site's resources (images, scripts), the site's script just
writes another click-event over the one created by the extension.
give me a few minutes and i'll see if i can find a quick fix for that.
Original comment by jul...@gmail.com
on 12 Jan 2013 at 5:27
Take any of your time..
Original comment by mi...@angelclaw.ro
on 12 Jan 2013 at 8:28
despite what are now a good two hours of work, i've not been able to figure out
a fix for this.
it seems that chrome extensions run into a race condition accessing the event
handlers registered by website scripts, in particular i can't seem to
access/delete events registered by the website from my extension. this may have
any of two causes:
- the website's script registers an event handler AFTER the extension does,
thus preventing the deletion of previous event handlers AND the event gets to
the website's event handler before it reaches the extension's, thus preventing
me from stopping propagation of the event itself.
- the website's script creates event handlers in the DOM nodes that are in a
different namespace than the extension's. this shouldn't be the case, as i can
prevent basic bubbling from within the script, but i'm not 100% sure.
i even tried writing a userscript (JS script that can be used like a light
extension in chrome, see userscripts.org or google "greasemonkey"), but that
wouldn't make it work either.
what does work is doing this manually in the developer console (ctrl+shift+j)
after the website has loaded:
var x = document.querySelectorAll(".dl-stub");
$(x[0]).data("events").click = null;
$(x[1]).data("events").click = null;
that'll prevent local downloading of the torrent file, but adding to the webui
works fine.
as such, this is a website-specific problem that i unfortunately can't do
anything about. if anyone does stumble upon a way of solving this issue, let me
know and i'll be happy to incorporate it into RTA, but until then, i'm setting
this to WontFix. sorry again.
Original comment by jul...@gmail.com
on 12 Jan 2013 at 9:05
Not a big deal, but it's just pitty.
Like i said, right clicking works as intended. It's enough for such an isolated
situation. Doesn't deserve extra attention if it's such a pain to find a
workaround.
Thanks, you deserve 5 stars for the fast response and support.
Original comment by mi...@angelclaw.ro
on 12 Jan 2013 at 9:40
Original issue reported on code.google.com by
mi...@angelclaw.ro
on 12 Jan 2013 at 2:56