Closed Bug 1234049 Opened 9 years ago Closed 8 years ago

Some Web sites go black upon maximizing window

Categories

(Core :: Graphics, defect)

46 Branch
x86_64
All
defect
Not set
major

Tracking

()

RESOLVED FIXED
mozilla46
Tracking Status
e10s m8+ ---
firefox44 --- unaffected
firefox45 + fixed
firefox46 + fixed

People

(Reporter: walts48, Assigned: gw280)

References

Details

(Keywords: regression, Whiteboard: [gfx-noted])

Attachments

(5 files)

Attached image Weather Underground
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:46.0) Gecko/20100101 Firefox/46.0
Build ID: 20151220030223

Steps to reproduce:

Start Nightly with a test profile
Load some web sites individually like Weather Underground, Weather Channel, or ABC News

http://www.wunderground.com/
http://www.weather.com/
http://abcnews.go.com/

Minimize Nightly to do something in another application
After a minute or more maximize Nightly to continue browsing


Actual results:

GUI displays, but the sites are black


Expected results:

The sites should display normally
Attached image Weather Channel
Attachment #8700400 - Attachment description: Weather Chanel → Weather Channel
Attached image ABC News
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
Build-ID: 20151219030215

Hi WaltS48,
I can confirm this error with Windows 7 x64 and Firefox Nightly 46.0a1 (2015-12-19).

System: Windows x64 + Linux x64

Felix
Please post your Graphic section from about:support
Severity: normal → major
Component: Untriaged → Graphics
Flags: needinfo?(schw01)
Flags: needinfo?(felixern)
OS: Unspecified → All
Product: Firefox → Core
Hardware: Unspecified → x86_64
Graphics
--------

Adapter Description: NVIDIA Corporation -- GeForce GT 630/PCIe/SSE2
Asynchronous Pan/Zoom: wheel input enabled
Device ID: GeForce GT 630/PCIe/SSE2
Driver Version: 4.5.0 NVIDIA 352.63
GPU Accelerated Windows: 0/1 Basic (OMTC)
Supports Hardware H264 Decoding: No;
Vendor ID: NVIDIA Corporation
WebGL Renderer: NVIDIA Corporation -- GeForce GT 630/PCIe/SSE2
windowLayerManagerRemote: true
AzureCanvasBackend: cairo
AzureContentBackend: cairo
AzureFallbackCanvasBackend: none
AzureSkiaAccelerated: 0
CairoUseXRender: 1
Flags: needinfo?(schw01)
I can reproduce on Nightly46.0a1 32bit with/without HWA.

https://hg.mozilla.org/mozilla-central/rev/388bdc46ba51ee31da8b8abe977e0ca38d117434
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 ID:20151220030223
[Tracking Requested - why for this release]: Regression 

Regression window:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=81e5c1bef9e33761f7502ee0befce953da367f2a&tochange=67da9ced67f16a37d6bf80966334af1b6d03c67e

Regressed by: 67da9ced67f1	George Wright — Bug 1098131 - Don't invalidate layers when simply changing SizeMode r=smaug,jimm
Blocks: 1098131
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(gwright)
Keywords: regression
STR
1. Maximize browser window
2. Open http://www.weather.com/ and wait to load the page
3. Exit browser
4. Start browser
5. Click "Restore Previous Session" and then very QUICKLY minimize browser
6. Wait for 5-10sec and then Restore browser(i.e maximized)
7. Repeat Step3-7, if necessary.

Actual Results
Content is black
Graphic Details:
Adapter Description	Intel(R) HD Graphics 4000
Adapter Drivers	igdumdim64 igd10iumd64 igd10iumd64 igdumdim32 igd10iumd32 igd10iumd32
Adapter RAM	Unknown
Asynchronous Pan/Zoom	wheel input enabled
Device ID	0x0166
Direct2D Enabled	true
DirectWrite Enabled	true (6.2.9200.17292)
Driver Date	9-30-2014
Driver Version	10.18.10.3958
GPU #2 Active	false
GPU Accelerated Windows	1/1 Direct3D 11 (OMTC)
Subsys ID	500217aa
Supports Hardware H264 Decoding	Yes
Vendor ID	0x8086
WebGL Renderer	Google Inc. -- ANGLE (Intel(R) HD Graphics 4000 Direct3D11 vs_5_0 ps_5_0)
windowLayerManagerRemote	true
AzureCanvasBackend	direct2d 1.1
AzureContentBackend	direct2d 1.1
AzureFallbackCanvasBackend	cairo
AzureSkiaAccelerated	0

Felix
Flags: needinfo?(felixern)
Assignee: nobody → gwright
Whiteboard: [gfx-noted]
Disabling hardware acceleration doesn't solve the issue. Safe mode doesn't solve the issue.

I just encountered it on Firefox DE. STR:
 1. Open this bug page in browser with e10s enabled
 2. Click reload button in urlbar, then immediately press Win+D to minimize browser
 3. Wait 10 seconds, then press Win+D to restore browser window's position
Result:   All content rectangle is black with 1px white border. Sometimes content is just white.
Summary: Some Web sites go black in Nightly 46.0a1 upon maximizing window → Some Web sites go black upon maximizing window
Jim, does it ring a bell? thanks
Flags: needinfo?(jmathies)
Tracking because black screen is kind of a trauma (OMTC)...
tracking-e10s: --- → ?
Flags: needinfo?(jmathies)
Flags: needinfo?(gwright)
This is likely a dupe of bug 1227373. Given that this affects Windows as well, and not just Linux with a tiling WM, we should probably block on this.
So here's what's going on:

- In bug 1098131 I added some logic to not throw away layer data upon minimise, and then invalidate/paint everything again upon restore. I did this by adding a new parameter to PresShell::SetIsActive() called aIsHidden, which defaulted to true (true meaning "throw away data"). Minimise/unminimise called SetIsActive with aIsHidden = false.
- In this case, we're creating a new PresShell whilst the browser is minimised. When we minimised, we called SetIsActive and ensured none of the layer data got thrown out, but we then created a new PresShell which queried the DocShell (PresShell::QueryIsActive()) which was inactive, so we called PresShell::SetIsActive without a parameter for aIsHidden, so it defaulted to true. This caused us to call TabChild::MakeHidden which threw away all our stuff.
- When the window was restored, we called SetIsActive again to reactivate the PresShell, but because it came via an unminimise event, aIsHidden was false and so we never invalidated/painted.

It seems to me like the correct thing to do here is to ensure that we always do the invalidation/paint when restoring a window if the PresShell was created whilst it's inactive. Therefore, I've left it the way it is where it called TabChild::MakeHidden when creating the new PresShell, and added a bool to keep track of whether we've called TabChild::MakeHidden and always call MakeVisible/invalidate/paint whenever that bool is showing true.
Comment on attachment 8707631 [details] [diff] [review]
0001-Bug-1234049-Ensure-we-always-invalidate-new-PresShel.patch

As per :tn's request, bumping this to smaug who reviewed the original patch that caused this regression.
Attachment #8707631 - Flags: review?(tnikkel) → review?(bugs)
Attachment #8707631 - Flags: review?(bugs) → review+
https://hg.mozilla.org/mozilla-central/rev/51a497ce4ca0
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla46
Comment on attachment 8707631 [details] [diff] [review]
0001-Bug-1234049-Ensure-we-always-invalidate-new-PresShel.patch

Approval Request Comment
[Feature/regressing bug #]: bug 1098131
[User impact if declined]: when browser is unminimised the content area can show black (no content)
[Describe test coverage new/current, TreeHerder]: m-c + local testing
[Risks and why]: low risk; fix was isolated to a small area that makes this edge case behave the same way as it did before 1098131 landed.
[String/UUID change made/needed]: none
Attachment #8707631 - Flags: approval-mozilla-aurora?
While this patch has definitely reduced the frequency of the problem for me, I'm still seeing the same basic "window goes blank when restored" issue on occasion :(
Attachment #8707631 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: