Closed Bug 195057 Opened 22 years ago Closed 6 years ago

onResize event triggered too often

Categories

(Core Graveyard :: Embedding: GTK Widget, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: edd, Assigned: blizzard)

References

Details

(Keywords: perf, testcase, Whiteboard: DUPEME)

Attachments

(2 files)

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030220
Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.3b) Gecko/20030220

Forwarded from http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=181747

This problem occurs with Galeon and Epiphany.

The onResize event is not only triggered when resizing the window, but
also when opening a new tab or switching between tabs.
This can lead to a performance slow down if a page is using this event
(e.g. to reload the page as a netscape 4 workaround).

Reproducible: Always

Steps to Reproduce:
Blocks: gtk2
Whiteboard: DUPEME
Keywords: perf
What I've found triggering the resize event:
1. no tabs to having tabs, removing all tabs
2. having no site navigation bars to having one and vice versa (even if the
onResize() handler is on a different document on another tab in the same window)
3. hide/show any tool bar (status bar, side bar, etc)

1 & 2 are quite anonnying navigating between documents that uses the onresize
event handler and with site navigation bars.

thanks
joe
I am not opening a new bug because the problem I am seeing is related to the
resize event.
When I go to www.colgate.com in Epiphany 1.2.5 . I see that the page keep on
reloading if you have macromedia flash plugin installed. When I debugged it I
found that the problem was caused because of the followiing line in the
www.colgate.com
window.onresize = reDo; (FILE:oc_topnav.js)
The reDo() function kept calling window.location.reload(). It looks like the
resize event gets triggered for the reload aswell. 
to comment 3:
> I am not opening a new bug 

Typo? You did indeed open a new bug: Bug 244715
This colgate.com bug doesn't happen on Mozilla. Whereas the simple testcase
causes the problem to happen in both Epiphany and Mozilla. That is the reason I
opened that bug with the simple testcase.
I would supplement that on load it would seem that there is an actual resizing
of the window (although minimal): the inner height is bigger by 1 pixel.
Is it necessary ? This triggers the reloading of the window in some pages that
try to assert that there is actually a resizing (try
http://www.jsurfer.org/article.php?sid=997).

(tested Mozilla 1.7 RC2, see test attachement
http://bugzilla.mozilla.org/attachment.cgi?id=149339&action=view).
Philippe: I don't see the alert box while load/reload. It displays only when we
resize the browser window.. Seems to be working fine?
Attached file Simple testcase (deleted) —
To some extent I have  narrowed down the colgate.com page reload problem in
Epiphany. I could see the problem with this simple testcase also. It happens
only when the plugin is there (I have not tested with Java stuff yet). I
believe in Mozilla plugins have a seperate window in it , there are chances
that this problem could be happening because of that?. Also does this plugin
window have any special behaviour in case of embedding, because I don't see the
problem in the Mozilla browser. 
To recreate the problem with this testcase just unzip testcase.zip and load
simple.html.
I am seeing a recursion going on between GTK,Epiphany and Mozilla. Here is the
stack race for that..I am CCing some GTK/Embedding people on this..

#0  gtk_moz_embed_size_allocate (widget=0x816f750, allocation=0x0)
    at gtkmozembed2.cpp:648
#1  0x40b8e72b in g_cclosure_marshal_VOID__BOXED (closure=0x816f750,
    return_value=0x0, n_param_values=2, param_values=0x82d9130,
    invocation_hint=0xbfffd568, marshal_data=0x40119882) at gmarshal.c:566
#2  0x40b7b694 in g_type_class_meta_marshal (closure=0x816f750,
    return_value=0x0, n_param_values=2, param_values=0x2,
    invocation_hint=0xbfffd568, marshal_data=0xbfffd830) at gclosure.c:514
#3  0x40b7b39c in g_closure_invoke (closure=0x816f750, return_value=0x0,
    n_param_values=2, param_values=0xbfffd680, invocation_hint=0xbfffd568)
    at gclosure.c:437
#4  0x40b8ce3e in signal_emit_unlocked_R (node=0x816f598, detail=0,
    instance=0x82d9130, emission_return=0x0, instance_and_params=0xbfffd680)
    at gsignal.c:2366
#5  0x40b8c726 in g_signal_emit_valist (instance=0x82d9130,
    signal_id=135722392, detail=0, var_args=0xbfffd810 "\001")
    at gsignal.c:2195
#6  0x40b8c866 in g_signal_emit (instance=0x82d9130, signal_id=29, detail=0)
    at gsignal.c:2239
#7  0x406efca9 in gtk_widget_size_allocate (widget=0x82d9130,
    allocation=0xbfffdcd0) at gtkwidget.c:2709
#8  0x0807b099 in ephy_tab_size_allocate (widget=0x82d9130,
    allocation=0xbfffdcd0) at ephy-tab.c:251
---Type <return> to continue, or q <return> to quit---
#9  0x40b8e72b in g_cclosure_marshal_VOID__BOXED (closure=0x816f750,
    return_value=0x0, n_param_values=2, param_values=0x8222ce0,
    invocation_hint=0xbfffda08, marshal_data=0x807b020) at gmarshal.c:566
#10 0x40b7b694 in g_type_class_meta_marshal (closure=0x816f750,
    return_value=0x0, n_param_values=2, param_values=0x2,
    invocation_hint=0xbfffda08, marshal_data=0xbfffd830) at gclosure.c:514
#11 0x40b7b39c in g_closure_invoke (closure=0x816f750, return_value=0x0,
    n_param_values=2, param_values=0xbfffdb20, invocation_hint=0xbfffda08)
    at gclosure.c:437
#12 0x40b8ce3e in signal_emit_unlocked_R (node=0x816f598, detail=0,
    instance=0x8222ce0, emission_return=0x0, instance_and_params=0xbfffdb20)
    at gsignal.c:2366
#13 0x40b8c726 in g_signal_emit_valist (instance=0x8222ce0,
    signal_id=135722392, detail=0, var_args=0xbfffdcb0 "hN6\bø<\031\b")
    at gsignal.c:2195
#14 0x40b8c866 in g_signal_emit (instance=0x8222ce0, signal_id=29, detail=0)
    at gsignal.c:2239
#15 0x406efca9 in gtk_widget_size_allocate (widget=0x8222ce0,
    allocation=0xbfffdd30) at gtkwidget.c:2709
#16 0x4062213f in gtk_notebook_size_allocate (widget=0x8193cf8, allocation=0x0)
    at gtknotebook.c:1505
#17 0x40b8e72b in g_cclosure_marshal_VOID__BOXED (closure=0x816f750,
    return_value=0x0, n_param_values=2, param_values=0x8193cf8,
See 
http://bugzilla.mozilla.org/show_bug.cgi?id=235871#c11

for a possible explanation
Well, I had gone through the link you mentioned but in our case here this
problem happens only on Epiphany it does not happen on Mozilla. Also the resize
problem will happen only the page uses some plugin like macromedia,JAVA .  The
simple testcase I attached here has a flash plugin. 
By considering the above things I feel there could be something going wrong in
Mozilla embedding. I am just guessing and I am still debugging this....
A related symptom is that onResize events are not fired in unfocused browser
tabs. This can be observed in Gmail if the window is resized while another tab
is focused.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: testcase
QA Contact: pavlov → gtk-widget
Product: Core → Core Graveyard
Embedding: GTK Widget isn't a thing, closing.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: