~8,000 instances of 'WARNING: NS_ENSURE_TRUE(mDocShell) failed' emitted from embedding/browser/nsWebBrowser.cpp during linux64 debug testing

RESOLVED FIXED in Firefox 42

Status

()

RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: erahm, Assigned: erahm)

Tracking

(Blocks: 1 bug)

Trunk
mozilla42
Points:
---

Firefox Tracking Flags

(firefox42 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

3 years ago
> 7766 [NNNNN] WARNING: NS_ENSURE_TRUE(mDocShell) failed: file embedding/browser/nsWebBrowser.cpp, line 363

This warning [1] is currently the #3 most verbose warning during linux64 debug testing. It shows up in the following tests:

> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-browser-chrome-3-bm53-tests1-linux64-build6.txt:2822
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-browser-chrome-1-bm52-tests1-linux64-build5.txt:2186
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-browser-chrome-2-bm122-tests1-linux64-build13.txt:1392
> mozilla-central_ubuntu64_vm-debug_test-mochitest-1-bm114-tests1-linux64-build5.txt:357
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-1-bm115-tests1-linux64-build2.txt:345
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-5-bm122-tests1-linux64-build10.txt:132
> mozilla-central_ubuntu64_vm-debug_test-mochitest-browser-chrome-2-bm114-tests1-linux64-build9.txt:123
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-4-bm122-tests1-linux64-build6.txt:90
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-3-bm115-tests1-linux64-build6.txt:87
> mozilla-central_ubuntu64_vm-debug_test-mochitest-e10s-2-bm123-tests1-linux64-build1.txt:84
> mozilla-central_ubuntu64_vm-debug_test-mochitest-2-bm53-tests1-linux64-build6.txt:60
> mozilla-central_ubuntu64_vm-debug_test-mochitest-other-bm115-tests1-linux64-build5.txt:43
> mozilla-central_ubuntu64_vm-debug_test-mochitest-5-bm53-tests1-linux64-build12.txt:21
> mozilla-central_ubuntu64_vm-debug_test-mochitest-browser-chrome-3-bm122-tests1-linux64-build12.txt:18
> mozilla-central_ubuntu64_vm-debug_test-reftest-e10s-2-bm114-tests1-linux64-build8.txt:3
> mozilla-central_ubuntu64_vm-debug_test-reftest-e10s-1-bm122-tests1-linux64-build27.txt:3

[1] https://hg.mozilla.org/mozilla-central/annotate/291614a686f1/embedding/browser/nsWebBrowser.cpp#l363
(Assignee)

Comment 1

3 years ago
This also seems to be related to further warnings [1], [2]:
>   5203 [NNNNN] WARNING: NS_ENSURE_TRUE(domWindow) failed: file embedding/browser/nsDocShellTreeOwner.cpp, line 83
>   5188 [NNNNN] WARNING: NS_ENSURE_TRUE(aInBrowser) failed: file embedding/browser/nsDocShellTreeOwner.cpp, line 79

which gives this grouping the honor of being the #1 most verbose warnings at ~19,000 during linux64 debug testing.

[1] https://hg.mozilla.org/mozilla-central/annotate/291614a686f1/embedding/browser/nsDocShellTreeOwner.cpp#l83
[2] https://hg.mozilla.org/mozilla-central/annotate/291614a686f1/embedding/browser/nsDocShellTreeOwner.cpp#l79
(Assignee)

Comment 2

3 years ago
In a recent run 5228 / 5252 instances of the "embedding/browser/nsDocShellTreeOwner.cpp, line 83" warning were preceded by the "embedding/browser/nsWebBrowser.cpp, line 363" warning:

>   5228 [NNNNN] WARNING: NS_ENSURE_TRUE(mDocShell) failed: file embedding/browser/nsWebBrowser.cpp, line 363
>   5252 [NNNNN] WARNING: NS_ENSURE_TRUE(domWindow) failed: file embedding/browser/nsDocShellTreeOwner.cpp, line 83

And then 2148 instances of "embedding/browser/nsWebBrowser.cpp, line 363" followed immediately after the "embedding/browser/nsDocShellTreeOwner.cpp, line 79" warning.

>   5227 [NNNNN] WARNING: NS_ENSURE_TRUE(aInBrowser) failed: file embedding/browser/nsDocShellTreeOwner.cpp, line 79
>   2148 [NNNNN] WARNING: NS_ENSURE_TRUE(mDocShell) failed: file embedding/browser/nsWebBrowser.cpp, line 363

Which account for virtually all of the "embedding/browser/nsWebBrowser.cpp, line 363" warnings.
(Assignee)

Comment 3

3 years ago
Looking at the usage of |GetContentDOMWindow| [1] we can see that it's generally expected (and handled) that the out param may not be filled. Given this is expected behavior it looks like we can just remove the warning.

Additionally looking at callers of the internal method |GetDOMEventTarget|, none of the callers assume the out param is filled (nor do they explicitly check the return value). In this case removing the warnings seems to make sense as well.
(Assignee)

Comment 5

3 years ago
Created attachment 8634454 [details] [diff] [review]
Remove docshell warnings in embedding

bz, would you mind reviewing this? Let me know if you'd like me to do a bit
more digging beyond just examining call sites.
Attachment #8634454 - Flags: review?(bzbarsky)
(Assignee)

Updated

3 years ago
Assignee: nobody → erahm
Status: NEW → ASSIGNED
Comment on attachment 8634454 [details] [diff] [review]
Remove docshell warnings in embedding

r=me.  Gotta love code without clear invariants.  :(
Attachment #8634454 - Flags: review?(bzbarsky) → review+
(Assignee)

Comment 7

3 years ago
url:        https://hg.mozilla.org/integration/mozilla-inbound/rev/61d43e7e6d1fa8998391bb216b26988885c1616f
changeset:  61d43e7e6d1fa8998391bb216b26988885c1616f
user:       Eric Rahm <erahm@mozilla.com>
date:       Mon Jul 20 20:16:27 2015 -0700
description:
Bug 1179069 - Remove docshell warnings in embedding. r=bz
https://hg.mozilla.org/mozilla-central/rev/61d43e7e6d1f
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox42: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in before you can comment on or make changes to this bug.