edbrowse-dev - development list for edbrowse
 help / color / mirror / Atom feed
* [Edbrowse-dev] Autoexpansion Works
@ 2017-08-08 18:34 Karl Dahlke
  2017-08-08 22:31 ` Kevin Carhart
  0 siblings, 1 reply; 4+ messages in thread
From: Karl Dahlke @ 2017-08-08 18:34 UTC (permalink / raw)
  To: Edbrowse-dev

[-- Attachment #1: Type: text/plain, Size: 1565 bytes --]

Well this surprises even me.

Look through all the commits in the past 24 hours and you'll see that a lot has changed.
They were all leading up to the last commit though; a frame will expand if it must because somebody is trying to access its objects.
Otherwise we don't waste the resources.
This is the design I wanted!

There's a test for this in jsrt.
Browse and look at line 4.
That is the frame which was there before.
You can expand it with the exp command, but don't.
It is still just a placeholder.
Set db2 or even db3 to watch what is happening.
Now look on line 5.
This is a little script that dips into the first node under the frame's body and prints its node type.
Click on this link and it tries to access those objects, sees that they aren't there, expands the frame, then resumes the script and prints div, since the first node in that frame is div.
If you replace the frame with the Munsters, then click this again, the first node is H2.
Unbrowse, and browse, and expand it yourself, then click first node and it pops right up.
The frame is already expanded.

There's a disclaimer though, it only works in the 1 process model, with JS1=1.
In 2 processes you get an error message.
It would be horrendously difficult to do this in 2 processes,
as I mentioned in an earlier email.

Kevin, it is possible that the next suite of acid tests will pass,
or at least they might pass with some modest tweaking on our part, in case I don't have all the objects in the right places.
At least the foundation is there.

Karl Dahlke

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Edbrowse-dev] Autoexpansion Works
  2017-08-08 18:34 [Edbrowse-dev] Autoexpansion Works Karl Dahlke
@ 2017-08-08 22:31 ` Kevin Carhart
  2017-08-09  0:10   ` Karl Dahlke
  0 siblings, 1 reply; 4+ messages in thread
From: Kevin Carhart @ 2017-08-08 22:31 UTC (permalink / raw)
  To: Karl Dahlke; +Cc: Edbrowse-dev



This is incredibly groundbreaking!
getTestDocument() works now!!

I have not dug in.  I'm still mostly away... this is very high on the list 
of extremely compelling procrastinations.   Tons of those other tests run 
getTestDocument as their first step.  And those tests I think are designed 
to embody things that are broadly important.  This is great!!





On Tue, 8 Aug 2017, Karl Dahlke wrote:

> Well this surprises even me.
>
> Look through all the commits in the past 24 hours and you'll see that a lot has changed.
> They were all leading up to the last commit though; a frame will expand if it must because somebody is trying to access its objects.
> Otherwise we don't waste the resources.
> This is the design I wanted!
>
> There's a test for this in jsrt.
> Browse and look at line 4.
> That is the frame which was there before.
> You can expand it with the exp command, but don't.
> It is still just a placeholder.
> Set db2 or even db3 to watch what is happening.
> Now look on line 5.
> This is a little script that dips into the first node under the frame's body and prints its node type.
> Click on this link and it tries to access those objects, sees that they aren't there, expands the frame, then resumes the script and prints div, since the first node in that frame is div.
> If you replace the frame with the Munsters, then click this again, the first node is H2.
> Unbrowse, and browse, and expand it yourself, then click first node and it pops right up.
> The frame is already expanded.
>
> There's a disclaimer though, it only works in the 1 process model, with JS1=1.
> In 2 processes you get an error message.
> It would be horrendously difficult to do this in 2 processes,
> as I mentioned in an earlier email.
>
> Kevin, it is possible that the next suite of acid tests will pass,
> or at least they might pass with some modest tweaking on our part, in case I don't have all the objects in the right places.
> At least the foundation is there.
>
> Karl Dahlke
>

--------
Kevin Carhart * 415 225 5306 * The Ten Ninety Nihilists

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Edbrowse-dev] Autoexpansion Works
  2017-08-08 22:31 ` Kevin Carhart
@ 2017-08-09  0:10   ` Karl Dahlke
  2017-08-09  3:18     ` Kevin Carhart
  0 siblings, 1 reply; 4+ messages in thread
From: Karl Dahlke @ 2017-08-09  0:10 UTC (permalink / raw)
  To: Edbrowse-dev

[-- Attachment #1: Type: text/plain, Size: 499 bytes --]

> This is incredibly groundbreaking!

Well duktape is the key. I don't think this design is even possible under mozilla, or if it is, it would have taken 5 months of my fulltime effort to get there.
As I said earlier, I don't think you can intercept the mozilla free routine, so no way to know which objects are freed, and the whole design falls apart.

> getTestDocument() works now!!

Again, I'm surprised.
I thought some object would be in the wrong place or something.


Karl Dahlke

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Edbrowse-dev] Autoexpansion Works
  2017-08-09  0:10   ` Karl Dahlke
@ 2017-08-09  3:18     ` Kevin Carhart
  0 siblings, 0 replies; 4+ messages in thread
From: Kevin Carhart @ 2017-08-09  3:18 UTC (permalink / raw)
  To: Karl Dahlke; +Cc: Edbrowse-dev



Yes, so being obliged to go to duktape had some benefits maybe. 
Very intriguing!  Great work, congratulations.  I also was paging through 
the 90K lines of duktape.c.  It's interesting.  It's complex also, 
but I would rather be there than jsinterp.c, jsparse.c or even 
jsapi.c..



  On Tue, 8 Aug 2017, Karl Dahlke wrote:

>> This is incredibly groundbreaking!
>
> Well duktape is the key. I don't think this design is even possible under mozilla, or if it is, it would have taken 5 months of my fulltime effort to get there.
> As I said earlier, I don't think you can intercept the mozilla free routine, so no way to know which objects are freed, and the whole design falls apart.
>
>> getTestDocument() works now!!
>
> Again, I'm surprised.
> I thought some object would be in the wrong place or something.
>
>
> Karl Dahlke
>

--------
Kevin Carhart * 415 225 5306 * The Ten Ninety Nihilists

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-08-09  3:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-08 18:34 [Edbrowse-dev] Autoexpansion Works Karl Dahlke
2017-08-08 22:31 ` Kevin Carhart
2017-08-09  0:10   ` Karl Dahlke
2017-08-09  3:18     ` Kevin Carhart

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).