Closed Bug 1179069 Opened 9 years ago Closed 9 years ago

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

Categories

(Core Graveyard :: Embedding: APIs, defect)

defect
Not set
normal

Tracking

(firefox42 fixed)

RESOLVED FIXED
mozilla42
Tracking Status
firefox42 --- fixed

People

(Reporter: erahm, Assigned: erahm)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

> 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
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
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.
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.
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: 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+
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
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: