Well this surprises even me.

Look through all the commits in the past 24 hours and you'll see that a lot has 
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
Edbrowse-dev mailing list

Reply via email to