hidden, absolutely positioned iframes mask repainting

VERIFIED FIXED in mozilla0.9.6

Status

Core Graveyard
GFX
--
major
VERIFIED FIXED
17 years ago
10 years ago

People

(Reporter: Enrique Martin del Campo, Assigned: Kevin McCluskey (gone))

Tracking

({topembed})

Trunk
mozilla0.9.6
x86
Windows 2000
topembed

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [DIGBug] Checked into trunk and 094 branch)

Attachments

(2 attachments)

(Reporter)

Description

17 years ago
From Bugzilla Helper:
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
BuildID:    2001091703

If a hidden iframe is over the same space as a radio button, clicking on the 
radio buttons will not get repainted. This happens with any element that is 
covered by a hidden, absolutely positioned iframe.

Reproducible: Always
Steps to Reproduce:
1.Put in a table with 3 radio buttons.
2.Put a hidden iframe over the radio buttons.
3.Try and click on the buttons. 
4.To see that the buttons have received the events, minimize the browser, and 
then bring it back up. Your click will have been repainted at this point.

Actual Results:  see step 4.

Expected Results:  While the iframe is hidden, all repainting should be done 
immediately.

Below is my test html
---------------------------------------------------
<html>
<body >
<form>
<table width="100%" border="0" style="z-index:10;background-color:#08216B">
      <tr>
        <td style="color:#FFFFFF">1st</td>
        <td>
          <input type="radio" name="default_email" value="0">
        </td>
      </tr>
      <tr>
        <td style="color:#FFFFFF">2nd </td>
        <td>
          <input type="radio" name="default_email" value="1">
        </td>
      </tr>
      <tr>
        <td style="color:#FFFFFF"> 3rd</td>
        <td>
          <input type="radio" name="default_email" value="2">
        </td>
      </tr>
</table>
</form>

<iframe id=hiddenIframe marginHeight=1 marginWidth=1 frameborder=1 scrolling=no
style="position:absolute; background-color:#000000; visibility:hidden; top:0px;
left:0px; height:100px; width:300; z-index:-1"></iframe>
<br><br><br>

<p>Hit TOGGLE to see where the hidden iframe is located</p><br>
<p>Hit Z-index to change the iframe's z-index style attribute from 0 to -1. The
table's z-index is 10.</p>
<a href="javascript:toggle();">TOGGLE</a>&nbsp;&nbsp;
<a href="javascript:z();">Z-index</a>
</body>
<script>
function toggle() {
var hidden;
if (document.all )
        hidden = document.all['hiddenIframe'];
else
        hidden = document.getElementById('hiddenIframe');

if (hidden.style.visibility == 'visible'){
        hidden.style.visibility = 'hidden';
} else {
        hidden.style.visibility = 'visible';
}
}

function z() {
var hidden;
if (document.all )
        hidden = document.all['hiddenIframe'];
else
        hidden = document.getElementById('hiddenIframe');

if (hidden.style.zIndex == -1){
        hidden.style.zIndex = 0;
} else {
        hidden.style.zIndex = -1;
}
}
</script>

</html>
------------------------------------------------------------
(Reporter)

Updated

17 years ago
Whiteboard: DIGBug
Over to Compositor.
Assignee: jst → kmcclusk
Component: DOM Content Models → Compositor
QA Contact: lchiang → petersen

Comment 2

17 years ago
Created attachment 50961 [details]
Reporter-produced testcase modified to make the iframe wider

Comment 3

17 years ago
Confirming Win2k 20010924 with attachment 50961 [details]
Status: UNCONFIRMED → NEW
Ever confirmed: true
(Assignee)

Updated

17 years ago
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9.6

Comment 4

17 years ago
adding topembed
Keywords: topembed
(Assignee)

Comment 5

17 years ago
Created attachment 53985 [details] [diff] [review]
Patch to prevent the invalidation of  views with hidden widgets
(Assignee)

Comment 6

17 years ago
The problem was in nsViewManager::UpdateAllCoveringWidgets. The existing code
assumed that if a view had a widget and the view completely covered the
invalidated rect then the widget for the covering view would be the only widget
invalidated. It did account for the case when the view's widget was hidden. In
that case the view's widget should be removed from consideration and the widget
of the view's parent should be invalidated instead.
(Assignee)

Updated

17 years ago
Whiteboard: DIGBug → [DIGBug] Waiting for review/super-review
Comment on attachment 53985 [details] [diff] [review]
Patch to prevent the invalidation of  views with hidden widgets

r=roc+moz
Attachment #53985 - Flags: review+

Comment 8

17 years ago
Comment on attachment 53985 [details] [diff] [review]
Patch to prevent the invalidation of  views with hidden widgets

sr=attinasi
Attachment #53985 - Flags: superreview+
(Assignee)

Updated

17 years ago
Whiteboard: [DIGBug] Waiting for review/super-review → [DIGBug] Read to check in

Comment 9

17 years ago
DIG Engineer:  Will this fix make it into the 6.2 branch and the CS 7.0 client?
(Assignee)

Comment 10

17 years ago
Checked patch 53985 into trunk
Whiteboard: [DIGBug] Read to check in → [DIGBug] Checked into trunk

Comment 11

17 years ago
*** Bug 90963 has been marked as a duplicate of this bug. ***
(Assignee)

Comment 12

17 years ago
Resolving as fixed. Added edt0.9.4 keyword
Status: ASSIGNED → RESOLVED
Last Resolved: 17 years ago
Keywords: edt0.9.4
Resolution: --- → FIXED
(Assignee)

Comment 13

17 years ago
Peterson: Can you verify that this has been fixed on the trunk? Thanks!

Comment 14

17 years ago
Marking verified in the Nov 1 (2001-11-01-03) trunk build. Tested on Windows ME.
Status: RESOLVED → VERIFIED

Comment 15

17 years ago
please check into the 0.9.4 branch, and mark w/ the "fixed0.9.4" keyword when it
lands there.
Keywords: edt0.9.4 → edt0.9.4+
(Assignee)

Comment 16

17 years ago
Fix checked into 094 branch
Keywords: fixed0.9.4
Whiteboard: [DIGBug] Checked into trunk → [DIGBug] Checked into trunk and 094 branch

Comment 17

17 years ago
Verified on 0.9.4 build (2002-01-14-23-0.9.4ec).
Keywords: verified0.9.4

Updated

14 years ago
Keywords: fixed0.9.4
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.