* [Edbrowse-dev] 3.6.0? @ 2015-12-02 18:11 Chris Brannon 2015-12-02 20:01 ` Karl Dahlke 0 siblings, 1 reply; 17+ messages in thread From: Chris Brannon @ 2015-12-02 18:11 UTC (permalink / raw) To: edbrowse-dev Hi, I haven't seen anything on this list for a while. We've made a lot of big changes, but everything seems to be working pretty well. Are there any outstanding issues? Could we do a new release in the next week or two? -- Chris ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] 3.6.0? 2015-12-02 18:11 [Edbrowse-dev] 3.6.0? Chris Brannon @ 2015-12-02 20:01 ` Karl Dahlke 2015-12-03 1:59 ` Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Karl Dahlke @ 2015-12-02 20:01 UTC (permalink / raw) To: edbrowse-dev I think Kevin has a couple small patches which will allow jquery to compile, which would be great, so I'd say after those patches let's lock in all our hard work under 3.6.0. We should add a comment to README on the minimum version of tidy needed for edbrowse to operate properly. Karl Dahlke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] 3.6.0? 2015-12-02 20:01 ` Karl Dahlke @ 2015-12-03 1:59 ` Kevin Carhart 2015-12-03 2:42 ` Chris Brannon 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-03 1:59 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev Coming soon. Coming this evening. On Wed, 2 Dec 2015, Karl Dahlke wrote: > I think Kevin has a couple small patches which will allow jquery to compile, > which would be great, so I'd say after those patches let's lock in > all our hard work under 3.6.0. > We should add a comment to README on the minimum version of tidy > needed for edbrowse to operate properly. > > Karl Dahlke > _______________________________________________ > Edbrowse-dev mailing list > Edbrowse-dev@lists.the-brannons.com > http://lists.the-brannons.com/mailman/listinfo/edbrowse-dev > -------- Kevin Carhart * 415 225 5306 * The Ten Ninety Nihilists ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] 3.6.0? 2015-12-03 1:59 ` Kevin Carhart @ 2015-12-03 2:42 ` Chris Brannon 2015-12-03 3:13 ` Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Chris Brannon @ 2015-12-03 2:42 UTC (permalink / raw) To: Karl Dahlke, edbrowse-dev Kevin Carhart <kevin@carhart.net> writes: > Coming soon. Coming this evening. It's all good, I don't think anyone's in a hurry, and this sounds like some awesome work! -- Chris ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] 3.6.0? 2015-12-03 2:42 ` Chris Brannon @ 2015-12-03 3:13 ` Kevin Carhart 2015-12-03 4:52 ` Karl Dahlke 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-03 3:13 UTC (permalink / raw) To: Chris Brannon; +Cc: Karl Dahlke, edbrowse-dev Thanks Chris! Here is the teaser. In the just-submitted-to-Karl, if I compile it right now, I can load a page with jquery 1.9.1, then go to edbrowse jdb mode and echo the jquery object and it returns the following, which is the verification that jquery found all its mandatory prerequisites and 'compiled': --- function ( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' return new jQuery.fn.init( selector, context, rootjQuery ); } --- And then if I do the object keys enumerator on that, it returns the whole long litany of jquery methods and properties that pages may be expecting to find: --- ok($) fn,extend,noConflict,isReady,readyWait,holdReady,ready,isFunction, isArray,isWindow,isNumeric,type,isPlainObject,isEmptyObject,error, parseHTML,parseJSON,parseXML,noop,globalEval,camelCase,nodeName, each,trim,makeArray,inArray,merge,grep,map,guid,proxy,access,now, Callbacks,Deferred,when,support,cache,expando,noData,hasData, --- And it goes on like that for several more lines! There are later versions of jquery than 1.9.1, which introduce yet another cute library-within-a-library called Sizzle. We don't have that yet, but hopefully the present work will open up a swath of pages! Kevin ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] 3.6.0? 2015-12-03 3:13 ` Kevin Carhart @ 2015-12-03 4:52 ` Karl Dahlke 2015-12-04 1:05 ` Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Karl Dahlke @ 2015-12-03 4:52 UTC (permalink / raw) To: edbrowse-dev Ok, this is good. Kevin I installed your latest patch, tested jsrt etc, and then pushed it to Master, but I don't think removeEventListener is quite right. I'm too tired to look at it now but I'll review it tomorrow. I think you want to compare the passed in function, just as a function, with the functions in the array, and if found use splice to remove it, or if it matches the original function then remove that, or do nothing if it doesn't match any of these. I doubt you want to expand both functions back into source and compare those, but hey I'm not sure. So on we go. Karl Dahlke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] 3.6.0? 2015-12-03 4:52 ` Karl Dahlke @ 2015-12-04 1:05 ` Kevin Carhart 2015-12-04 14:24 ` Karl Dahlke 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-04 1:05 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev Great! This is tentatively exciting. Thanks for fixing removeEventListener, Karl. It hasn't really hit me yet that edbrowse now has basic jquery and this can hopefully go into 3.6.0. It remains to be seen if there will be a payoff for users right now, or if it mostly lays the groundwork for newer versions like 1.11 and 2.1.0. And how much work is the differential between what we have and the latest? I'm not sure, I'll find out... Kevin ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] 3.6.0? 2015-12-04 1:05 ` Kevin Carhart @ 2015-12-04 14:24 ` Karl Dahlke 2015-12-04 21:10 ` [Edbrowse-dev] jquery v2 and an interesting seg fault Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Karl Dahlke @ 2015-12-04 14:24 UTC (permalink / raw) To: edbrowse-dev > It remains to be seen if there will be a payoff for users right now, or if > it mostly lays the groundwork for newer versions like 1.11 and 2.1.0. I suspect the latter. Complex javascript has to work perfectly from start to end, or it just doesn't work. But this foundation is a big step forward. Karl Dahlke ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] jquery v2 and an interesting seg fault 2015-12-04 14:24 ` Karl Dahlke @ 2015-12-04 21:10 ` Kevin Carhart 2015-12-04 22:11 ` Karl Dahlke 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-04 21:10 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev [-- Attachment #1: Type: TEXT/PLAIN, Size: 2765 bytes --] I found out some interesting things about compiling later versions of jquery. Apparently what separates jquery 1.9 support from support for the latest is not very much. I found that I could even get 2.1.4 to compile if I add three more initializations to the startwindow file: document.nodeType = 9; document.implementation = {}; document.location = {}; Apparently these things need to be there for versions of jquery from 1.10 and upwards to work. In this thread beginning at around line 165, the Sizzle developer lays out what is the minimum DOM implementation to "load Sizzle without exceptions - invocation being another story though". https://github.com/jquery/sizzle/issues/343 So I'm comparing what we already have with what this person says is the minspec, and that's how I arrive at needing nodeType, implementation and location, at least to start, and get over the catch-22's. I added these three lines to startwindow and recompiled. It appears that a lot of "Can't load jquery" runtimes went away. If these three lines are all benefit and no drawback, I'd like to send a patch and get them in. However, I tested on fanfiction.net, to take a popular scenario, and I got a seg fault with the following backtrace: --- (gdb) bt #0 0x000000000042b7ff in javaSetsLinkage (after=1 '\001', type=114 'r', p_j=0x7f8ea71588e0, rest=0x1456250 "div 0x7f8ea7158910,textarea 0x0, ") at html.c:2352 #1 0x0000000000427366 in runScriptsPending () at html.c:663 #2 0x00000000004276c0 in htmlParse ( buf=0x14417f0 "\264r\304\037D\005\267\030\022\333\061²Uz\231Æ \224t\225\t6J\325*?\361K\032#\350\061c\341\260\037\336\364\363\034p%\270\241\320K\303t\031D[\363\002\202W+\016w\031\312,{\213\341\034cK\305M\334*2Øc\334kK\337\070\266\311\353\345\223.W\302\313\326\025f«;\260\267\242Qt\325\344\301Ds\274H\201\275\204e\255\311\060^\266\304\324Z\307\362\251\071Z:\250mF\363$2\024h\215\242\017\221\030\r\274\210\226׳\036\274\001", remote=1) at html.c:750 #3 0x00000000004153bf in browseCurrentBuffer () at buffers.c:5401 #4 0x00000000004146b1 in runCommand ( line=0x698b82 <line.8810+2> "http://fanfiction.net") at buffers.c:5065 #5 0x0000000000414e05 in edbrowseCommand ( line=0x698b80 <line.8810> "b http://fanfiction.net", script=0 '\000') at buffers.c:5237 #6 0x0000000000406946 in main (argc=0, argv=0x7ffcb18e6a30) at main.c:1372 (gdb) q --- I hope the included backtrace is legible. So my question, to put it concisely, is can you tell just by reviewing the backtrace what is going wrong with javaSetsLinkage? It appears that javaSetsLinkage is encountering a long series of escaped characters or binary. I wonder if I'm causing this with my 3 new initializations, or reaching an existing bug. thanks Kevin ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] jquery v2 and an interesting seg fault 2015-12-04 21:10 ` [Edbrowse-dev] jquery v2 and an interesting seg fault Kevin Carhart @ 2015-12-04 22:11 ` Karl Dahlke 2015-12-04 22:28 ` Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Karl Dahlke @ 2015-12-04 22:11 UTC (permalink / raw) To: edbrowse-dev > document.nodeType = 9; > document.implementation = {}; > document.location = {}; The first two are fine and (theoretically) harmless. The third is not a good idea, as document.location is set at run time and is a URL object equal to the url of the page you are browsing. My latest push adds the first two lines. The seg fault I cannot reproduce, even with these lines added, at least not on the fanfiction home page. Perhaps you traveled down the path a ways and read a book or some such. Still I get a glimpse of the problem from your backtrace. Somehow and for some reason js is trying to remove a node from beneath another node that has no children. Obviously this should never happen, but it does, or does for you, so my push allows for that. Karl Dahlke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] jquery v2 and an interesting seg fault 2015-12-04 22:11 ` Karl Dahlke @ 2015-12-04 22:28 ` Kevin Carhart 2015-12-05 9:12 ` [Edbrowse-dev] javascript() in timer side effects Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-04 22:28 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev Bliss. Thanks! I was hoping it would ring a bell just from the bt. Yes, I don't know how I diverged or got that seg fault, but it appears we now have the best of both worlds. I don't want to jump up and down prematurely, but it's good... Kevin ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] javascript() in timer side effects 2015-12-04 22:28 ` Kevin Carhart @ 2015-12-05 9:12 ` Kevin Carhart 2015-12-05 14:39 ` Karl Dahlke 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-05 9:12 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev I pulled up paypal.com to find out if I could put the new jquery to use. Among other kinds of things going on, I found that one of their timers gives the following: timer line 1: ReferenceError: javascript is not defined timer line 1: ReferenceError: javascript is not defined I think what it traces back to is the SetTimeout code, where there is a differentiation based on if (fo). In the true condition, the side effect I think comes out like: t{1000|javascript()|0x7f273eb1fd00|1`~@} In the false condition, this is like Karl's async.html, and it succeeds: t{1000|increment()|0x7f368971dd00|1`~@} So for one thing, I was wondering if I understand your intention, Karl. Are you basically saying "this is an anonymous function anyhow, and we have to call it something, so let's call it 'javascript'?" Or alternately, does 'javascript' have meaning as a reserved word here? Is it related to the syntax of 'javascript:' with the colon, or no relation? In case you want a recreation of the problem which doesn't require hacking up paypal code, I made these: b http://carhart.net/~kevin/async_karls_original.html b http://carhart.net/~kevin/async_handler_in_variable.html The former succeeds and the latter fails. What can be done? I was thinking could we send the variable name itself in the side effect? That would be, if the phrasing was like var blah = function() { ... }; The side effect would then contain t{1000|blah()| thanks Kevin ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] javascript() in timer side effects 2015-12-05 9:12 ` [Edbrowse-dev] javascript() in timer side effects Kevin Carhart @ 2015-12-05 14:39 ` Karl Dahlke 2015-12-06 0:19 ` Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Karl Dahlke @ 2015-12-05 14:39 UTC (permalink / raw) To: edbrowse-dev > timer line 1: ReferenceError: javascript is not defined It looks like I laid a foundation, to compile the function if it is a string, or simply set the function member if it is already a function, and put it under TimerObject.onclick, so I could then call TimerObject.onclick to run the code, no matter how it got set up, but then I never actually called that onclick function. Never took the last step. I was trying to compile every time or something, so now with this small fix all three cases work for me: "increment()" // compile this string increment // named function increment_in_var // var set to function Karl Dahlke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] javascript() in timer side effects 2015-12-05 14:39 ` Karl Dahlke @ 2015-12-06 0:19 ` Kevin Carhart 2015-12-06 0:26 ` Karl Dahlke 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-06 0:19 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev Thanks! Wow, this change reveals just how chatty the major websites are. At db4, on the login page of paypal, there is a constant stream of js on a very short interval like '50'. To experience it in a serialized kind of way is interesting, different from either the web in a GUI, or from a completely discrete edbrowse session which is quiet until you trigger it. Kind of reminds me of monitoring tcpdump or an http proxy, except all it's doing is run client side code over and over. (until we open the can of worms of XHR!) On Sat, 5 Dec 2015, Karl Dahlke wrote: >> timer line 1: ReferenceError: javascript is not defined > > It looks like I laid a foundation, to compile the function if it is a string, > or simply set the function member if it is already a function, > and put it under TimerObject.onclick, so I could then call TimerObject.onclick > to run the code, no matter how it got set up, but then I never actually > called that onclick function. > Never took the last step. > I was trying to compile every time or something, so now with this small fix > all three cases work for me: > > "increment()" // compile this string > increment // named function > increment_in_var // var set to function > > Karl Dahlke > _______________________________________________ > Edbrowse-dev mailing list > Edbrowse-dev@lists.the-brannons.com > http://lists.the-brannons.com/mailman/listinfo/edbrowse-dev > -------- Kevin Carhart * 415 225 5306 * The Ten Ninety Nihilists ^ permalink raw reply [flat|nested] 17+ messages in thread
* [Edbrowse-dev] javascript() in timer side effects 2015-12-06 0:19 ` Kevin Carhart @ 2015-12-06 0:26 ` Karl Dahlke 2015-12-06 2:48 ` Kevin Carhart 0 siblings, 1 reply; 17+ messages in thread From: Karl Dahlke @ 2015-12-06 0:26 UTC (permalink / raw) To: edbrowse-dev Sometimes I fear we're doing lots and lots of work just to run visual effects that we can't render anyways, or covertly gather information on our net surfing habits, or put advertising in front of our face. Karl Dahlke ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] javascript() in timer side effects 2015-12-06 0:26 ` Karl Dahlke @ 2015-12-06 2:48 ` Kevin Carhart 2015-12-06 11:38 ` Adam Thompson 0 siblings, 1 reply; 17+ messages in thread From: Kevin Carhart @ 2015-12-06 2:48 UTC (permalink / raw) To: Karl Dahlke; +Cc: edbrowse-dev I know what you mean about this, except I'm not sure about "just", as in, solely or exclusively that. Isn't it, a lot of work in return for useless, visuals-related objects and methods, but aggregated together in a bundle (you have to implement the entire library or none,) with the potential for pragmatic and new use cases which may make the users happy? I don't know though. I take your point about being concerned about where it's heading. I think the discrete, teletype web is often just better. The chatty timers are new, and it's a little disconcerting to press 'db4' in edbrowse and realize that "oh, it's no longer entirely turn based - edbrowse is doing a layer of things without waiting for me to enable them." And the more the big websites are working, the more edbrowse is exposed to what you're talking about, like advertising and tracking. I remember reading the list thread earlier this year that took the example of a stock ticker. Weren't youall saying, maybe implement the chatty web in order to support more sites, but always have an interface that keeps the user in control with a discrete 'rr' command? We have 'rr' now- isn't this the best of both worlds sort of? > or covertly gather information on our net surfing habits, Well, one remark on doing things covertly - edbrowse is very demystifying and a tool for demystification, I think. I would say it makes the covert overt. I think anyone trying to fight tracking has greater power over internet intrusions to the extent that they flow in in the form of a discrete CLI or a transactional, matter-of-fact timestamped log, and the further you get away from the quicksand of visually oriented design tricks which goes mercilessly right for your reptilian brain. For instance, there's the clickbait. Web advertising uses finely honed images designed to be as compelling as possible to a viewer's baser impulses, probably focus-grouped, so that you will click through. It works almost tautologically and is very manipulative. Then there's the streaming video advertising bloat, that you are obliged to download and that defaults to "play", like in the middle of a news story. I associate this trick with The Guardian but I'm sure it is a lot of other places too. Let's say the Huffington Post, they're notorious. Edbrowse is way less covert than this. I could be overdramatizing, but I think if clickbait is a little like "bread and circuses," or the Roman coliseum, edbrowse restores some sanity to digitally-mediated environments. Kevin ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [Edbrowse-dev] javascript() in timer side effects 2015-12-06 2:48 ` Kevin Carhart @ 2015-12-06 11:38 ` Adam Thompson 0 siblings, 0 replies; 17+ messages in thread From: Adam Thompson @ 2015-12-06 11:38 UTC (permalink / raw) To: Kevin Carhart; +Cc: Karl Dahlke, edbrowse-dev [-- Attachment #1: Type: text/plain, Size: 4146 bytes --] On Sat, Dec 05, 2015 at 06:48:10PM -0800, Kevin Carhart wrote: > > I know what you mean about this, except I'm > not sure about "just", as in, solely or exclusively that. > Isn't it, a lot of work in return for useless, > visuals-related objects and methods, but > aggregated together in a bundle > (you have to implement the entire library > or none,) with the > potential for pragmatic and new use cases > which may make the users happy? > > I don't know though. I take your point about > being concerned about where it's heading. > > I think the discrete, teletype web is often just > better. The chatty timers are new, and it's a > little disconcerting to press 'db4' in edbrowse > and realize that "oh, it's no longer entirely > turn based - edbrowse is doing a layer of > things without waiting for me to enable them." > And the more the big websites are working, the more > edbrowse is exposed to what you're talking about, > like advertising and tracking. May be but that's where we are. these features are often miss-used, but discrete web browsing just can't work any more, at least not if we actually want to remain a useful web browser. > I remember reading the list thread earlier this > year that took the example of a stock ticker. > Weren't youall saying, > maybe implement the chatty web in order to > support more sites, but always have an interface > that keeps the user in control with a discrete > 'rr' command? We have 'rr' now- isn't this the > best of both worlds sort of? Yeah, I think it's how we have to do things. Unfortunately, as well as "fun" visuals, a lot of this stuff is also "functional" visuals like displaying parts of forms or displaying search results. One thing I've used (can't remember exactly but I think it was Atlassian Jira) returned json within an html element then used js to remunge this stuff into actual search results. There are also other bits of software I regularly encounter which use timers etc in ways which are tied into the functionality of the web page and which don't work if ran manually. For example Rundeck has some sort of timer based scripting to update log files for executing jobs. Currently this doesn't work properly in Edbrowse (I think we need AJAX for that as well... that's gonna be fun). > >or covertly gather information on our net surfing habits, > > Well, one remark on doing things covertly - edbrowse > is very demystifying and a tool for demystification, > I think. > I would say it makes the covert overt. > I think anyone trying to fight tracking has greater power over > internet intrusions to the extent that they flow in in the > form of a discrete CLI or a transactional, matter-of-fact > timestamped log, and the further you get away from the quicksand of > visually oriented design tricks which goes mercilessly > right for your reptilian brain. Perhaps, but I wonder if we don't need an extension mechanism so that ad blockers and the like can be created for edbrowse. > For instance, there's the clickbait. > Web advertising uses finely honed images designed > to be as compelling as possible to a viewer's baser > impulses, probably focus-grouped, so that you will > click through. It works > almost tautologically and is very manipulative. > Then there's the streaming video advertising bloat, > that you are obliged to download and that defaults to "play", > like in the middle of a news story. I associate this > trick with The Guardian but I'm sure it is a lot of other > places too. Let's say the Huffington Post, they're > notorious. > Edbrowse is way less covert than this. I could be > overdramatizing, but I think if > clickbait is a little like "bread and circuses," or the > Roman coliseum, edbrowse restores some > sanity to digitally-mediated environments. I think this is a little over-dramatic tbh but I take your point. However, we can't not develop features and modernise Edbrowse in an attempt to ad block because then users just have to use other web browsers and interfaces or not use most of the internet. Cheers, Adam. [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 473 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2015-12-06 11:36 UTC | newest] Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-12-02 18:11 [Edbrowse-dev] 3.6.0? Chris Brannon 2015-12-02 20:01 ` Karl Dahlke 2015-12-03 1:59 ` Kevin Carhart 2015-12-03 2:42 ` Chris Brannon 2015-12-03 3:13 ` Kevin Carhart 2015-12-03 4:52 ` Karl Dahlke 2015-12-04 1:05 ` Kevin Carhart 2015-12-04 14:24 ` Karl Dahlke 2015-12-04 21:10 ` [Edbrowse-dev] jquery v2 and an interesting seg fault Kevin Carhart 2015-12-04 22:11 ` Karl Dahlke 2015-12-04 22:28 ` Kevin Carhart 2015-12-05 9:12 ` [Edbrowse-dev] javascript() in timer side effects Kevin Carhart 2015-12-05 14:39 ` Karl Dahlke 2015-12-06 0:19 ` Kevin Carhart 2015-12-06 0:26 ` Karl Dahlke 2015-12-06 2:48 ` Kevin Carhart 2015-12-06 11:38 ` Adam Thompson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).