edbrowse-dev - development list for edbrowse
 help / color / mirror / Atom feed
* [Edbrowse-dev] JSCLASS_GLOBAL_FLAGS another assert
@ 2014-04-25 15:48 Karl Dahlke
  2014-04-25 22:34 ` Adam Thompson
  0 siblings, 1 reply; 2+ messages in thread
From: Karl Dahlke @ 2014-04-25 15:48 UTC (permalink / raw)
  To: Edbrowse-dev

Ok folks, I need your thoughts here.
I ran into another assert when the bank of america website tried
to create a new window.
It was the same problem as the url class.
It tried to make the new object but the class has JSCLASS_GLOBAL_FLAGS set
and I guess that's a bad thing cause it asserts,
at leasst on the debug environment.
just call window.open() and see.
So, I take the flag JSCLASS_GLOBAL_FLAGS out of the window class spec and
now it asserts at

state->jwin = JS_NewGlobalObject(state->jcx, &window_class, NULL);

The global object has to have the global flag set,
but it is part of a class that could be instantiated to make other windows,
wherein the global flag should not be set.
I guess that's what is happening???
Should I make two different classes, Window and GlobalWindow?
Not sure what to do here.

Karl Dahlke

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

* Re: [Edbrowse-dev] JSCLASS_GLOBAL_FLAGS another assert
  2014-04-25 15:48 [Edbrowse-dev] JSCLASS_GLOBAL_FLAGS another assert Karl Dahlke
@ 2014-04-25 22:34 ` Adam Thompson
  0 siblings, 0 replies; 2+ messages in thread
From: Adam Thompson @ 2014-04-25 22:34 UTC (permalink / raw)
  To: Karl Dahlke; +Cc: Edbrowse-dev

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

On Fri, Apr 25, 2014 at 03:48:21PM +0000, Karl Dahlke wrote:
> Ok folks, I need your thoughts here.
> I ran into another assert when the bank of america website tried
> to create a new window.
> It was the same problem as the url class.
> It tried to make the new object but the class has JSCLASS_GLOBAL_FLAGS set
> and I guess that's a bad thing cause it asserts,
> at leasst on the debug environment.
> just call window.open() and see.

Ah!

> So, I take the flag JSCLASS_GLOBAL_FLAGS out of the window class spec and
> now it asserts at
> 
> state->jwin = JS_NewGlobalObject(state->jcx, &window_class, NULL);
> 
> The global object has to have the global flag set,
> but it is part of a class that could be instantiated to make other windows,
> wherein the global flag should not be set.
> I guess that's what is happening???
> Should I make two different classes, Window and GlobalWindow?
> Not sure what to do here.

Yeah, the mozilla docs on global objects make my head spin.
I'm not sure what the correct thing to do here is since the window object is a
seriously special case. A bit of research reveals this rather complex looking
spidermonkey thing called split objects [1] which was apparently created
specificly to fix this. However, it's so complicated that the page advises
people other than Mozilla not to use it.
However, it looks like that's how things have to be done in SpiderMonkey for a
relatively sane window object possibly.

Cheers,
Adam.
[1] https://developer.mozilla.org/en-US/docs/SpiderMonkey/Split_object

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

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

end of thread, other threads:[~2014-04-25 22:34 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-25 15:48 [Edbrowse-dev] JSCLASS_GLOBAL_FLAGS another assert Karl Dahlke
2014-04-25 22:34 ` 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).