Closed Bug 1008450 Opened 11 years ago Closed 11 years ago

Intermittent browser_pdfjs_views.js,browser_pdfjs_main.js | uncaught exception - TypeError: Argument 1 of Range.selectNodeContents is not an object. at resource://gre/modules/Finder.jsm:362

Categories

(Toolkit :: Find Toolbar, defect)

x86_64
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla32
Tracking Status
firefox30 --- unaffected
firefox31 --- unaffected
firefox32 --- fixed
firefox-esr24 --- unaffected

People

(Reporter: KWierso, Assigned: unusualtears)

References

Details

(Keywords: intermittent-failure, Whiteboard: [pdfjs-c-ff-integration])

Attachments

(1 file, 1 obsolete file)

https://tbpl.mozilla.org/php/getParsedLog.php?id=39392579&tree=Fx-Team Rev4 MacOSX Snow Leopard 10.6 fx-team debug test mochitest-browser-chrome-1 on 2014-05-09 14:46:22 PDT for push f5a6fab8574f slave: talos-r4-snow-074 15:29:12 INFO - TEST-START | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js 15:29:12 INFO - Chrome file doesn't exist: /builds/slave/talos-slave/test/build/tests/mochitest/browser/browser/extensions/pdfjs/test/head.js 15:29:12 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | pdf handler defaults to always-ask is false 15:29:12 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | pdf handler defaults to internal 15:29:12 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Pref action: 3 15:29:12 INFO - ++DOCSHELL 0x171e5a000 == 61 [pid = 960] [id = 4007] 15:29:12 INFO - ++DOMWINDOW == 162 (0x166f75650) [pid = 960] [serial = 10635] [outer = 0x0] 15:29:12 INFO - ++DOMWINDOW == 163 (0x15f397030) [pid = 960] [serial = 10636] [outer = 0x166f75650] 15:29:12 INFO - ++DOMWINDOW == 164 (0x16fb18260) [pid = 960] [serial = 10637] [outer = 0x166f75650] 15:29:13 WARNING - TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | uncaught exception - TypeError: Argument 1 of Range.selectNodeContents is not an object. at resource://gre/modules/Finder.jsm:362 15:29:13 INFO - Stack trace: 15:29:13 INFO - JS frame :: chrome://mochikit/content/tests/SimpleTest/SimpleTest.js :: simpletestOnerror :: line 1348 15:29:13 INFO - native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0 15:29:13 INFO - JavaScript error: resource://gre/modules/Finder.jsm, line 362: Argument 1 of Range.selectNodeContents is not an object. 15:29:13 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Console message: [JavaScript Warning: "Unknown pseudo-class or pseudo-element 'fullscreen'. Ruleset ignored due to bad selector." {file: "resource://pdf.js/web/viewer.css" line: 58 column: 17 source: "#viewerContainer:fullscreen {"}] 15:29:13 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Console message: [JavaScript Warning: "Unknown pseudo-class or pseudo-element 'fullscreen'. Ruleset ignored due to bad selector." {file: "resource://pdf.js/web/viewer.css" line: 73 column: 1 source: ":fullscreen .page {"}] 15:29:13 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Console message: [JavaScript Warning: "Unknown pseudo-class or pseudo-element 'fullscreen'. Ruleset ignored due to bad selector." {file: "resource://pdf.js/web/viewer.css" line: 82 column: 1 source: ":fullscreen a:not(.internalLink) {"}] 15:29:13 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Console message: [JavaScript Warning: "Unknown pseudo-class or pseudo-element 'fullscreen'. Ruleset ignored due to bad selector." {file: "resource://pdf.js/web/viewer.css" line: 90 column: 1 source: ":fullscreen .textLayer > div {"}] 15:29:13 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Console message: [JavaScript Warning: "Unknown pseudo-class or pseudo-element 'selection'. Ruleset ignored due to bad selector." {file: "resource://pdf.js/web/viewer.css" line: 1254 column: 2 source: "::selection { background:rgba(0,0,255,0.3); }"}] 15:29:13 INFO - TEST-INFO | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Console message: [JavaScript Error: "TypeError: Argument 1 of Range.selectNodeContents is not an object." {file: "resource://gre/modules/Finder.jsm" line: 362}] 15:29:14 INFO - [Parent 960] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /builds/slave/fx-team-osx64-d-00000000000000/build/netwerk/base/src/nsFileStreams.cpp, line 203 15:29:14 INFO - [Parent 960] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /builds/slave/fx-team-osx64-d-00000000000000/build/netwerk/base/src/nsFileStreams.cpp, line 475 15:29:15 INFO - [Parent 960] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /builds/slave/fx-team-osx64-d-00000000000000/build/netwerk/base/src/nsFileStreams.cpp, line 203 15:29:15 INFO - [Parent 960] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80520012: file /builds/slave/fx-team-osx64-d-00000000000000/build/netwerk/base/src/nsFileStreams.cpp, line 475 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | document content has viewer UI 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | window content has PDFJS object 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | sidebar opens on click 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Initial view is thumbnail view 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Outline view is hidden initially 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Outline view is visible when selected 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Thumbnail view is hidden when outline is selected 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Thumbnail view is visible when selected 15:29:15 INFO - TEST-PASS | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | Outline view is hidden when thumbnail is selected 15:29:15 INFO - TEST-INFO | MEMORY STAT vsize after test: 4566016000 15:29:15 INFO - TEST-INFO | MEMORY STAT residentFast after test: 1062498304 15:29:15 INFO - INFO TEST-END | chrome://mochitests/content/browser/browser/extensions/pdfjs/test/browser_pdfjs_views.js | finished in 3455ms
Summary: Intermittent browser_pdfjs_views.js | uncaught exception - TypeError: Argument 1 of Range.selectNodeContents is not an object. at resource://gre/modules/Finder.jsm:362 → Intermittent browser_pdfjs_views.js,browser_pdfjs_main.js | uncaught exception - TypeError: Argument 1 of Range.selectNodeContents is not an object. at resource://gre/modules/Finder.jsm:362
Adam, I think the patch from bug 1006714 might have caused this intermittent failure. We have another issue related to browser_pdfjs_views.js and browser_pdfjs_main.js -- bug 963075. Do have an idea why Finder.jsm fails? That might help with other issue as well.
Flags: needinfo?(unusualtears)
This is triggered now (wasn't before because PDF.js didn't use the per-tab findbar) because an earlier test leaves a value in |gBrowser._lastFindValue| (when a new tab's findbar is initialized, it is given that value). A contrived modification seems to bear that out: 1. I added a simple |gBrowser._lastFindValue = "foo";| to top of the relevant test (|browser_pdfjs_viewer.js|). 2. I added a |dump((new Error()).stack + "\n");| to the top of the function where the error arose (|Finder.jsm:_findIterator|). 3. I ran the test by itself (|mach mochitest-browser browser/extensions/pdfjs/test/browser_pdfjs_view.js|). With this setup I get the stack dumped: 0:06.03 Finder.prototype._findIterator@resource://gre/modules/Finder.jsm:357:5 0:06.03 Finder.prototype._countMatchesInWindow@resource://gre/modules/Finder.jsm:322:5 0:06.03 Finder.prototype.requestMatchesCount@resource://gre/modules/Finder.jsm:264:9 0:06.03 _updateMatchesCountWorker@chrome://global/content/bindings/findbar.xml:453:1 0:06.03 _updateMatchesCount/this._updateMatchesCountTimeout<@chrome://global/content/bindings/findbar.xml:476:37 With [1] removed (i.e., not setting |_lastFindValue|), I get _no_ stack dumped. If desired, we can make the intermittent failure go away by adding |gBrowser._lastFindValue = "";| in the affected test. That band-aid could be removed once the underlying bug has been resolved. Mike, I'm wondering: 1. Should populating |_findField| with |_lastFindValue| trigger the match-counting code? (How does it and is it avoidable?) 2. Should we bail in |_findIterator| |if (!body)| (will other cases cause the same bug)? (Or, looking at the patch from bug 257061, it looks like that code migrated from |_highlight| which bails when |!doc || !doc.documentElement|; maybe that should be brought into/duplicated in |_findIterator|?) Thanks.
Flags: needinfo?(unusualtears) → needinfo?(mdeboer)
Whiteboard: [pdfjs-c-ff-integration]
(In reply to Adam [:hobophobe] from comment #4) > Mike, I'm wondering: > > 1. Should populating |_findField| with |_lastFindValue| trigger the > match-counting code? (How does it and is it avoidable?) `requestMatchesCount()` is invoked when a) the `Highlight All` button is clicked/ toggled. b) When the search field gains focus, on OSX. c) When a find result comes in from Finder.jsm/ nsFind d) When the findbar opens. In other words, each time `findbar._updateStatusUI()` is invoked. > 2. Should we bail in |_findIterator| |if (!body)| (will other cases cause > the same bug)? (Or, looking at the patch from bug 257061, it looks like that > code migrated from |_highlight| which bails when |!doc || > !doc.documentElement|; maybe that should be brought into/duplicated in > |_findIterator|?) I think it's perfectly fine to bail in `_findIterator()`, in the way you described. Checking for `!body` is essentially the same as the condition found in `_highlight()`. IOW, I'd r+ such a patch ;) Thanks for asking, Adam!
Flags: needinfo?(mdeboer)
Thanks, Mike!
Assignee: nobody → unusualtears
Status: NEW → ASSIGNED
Attachment #8422017 - Flags: review?(mdeboer)
Comment on attachment 8422017 [details] [diff] [review] Bail on _findIterator when we lack a body node Review of attachment 8422017 [details] [diff] [review]: ----------------------------------------------------------------- Mega-patch FTW! Thanks, Adam :)
Attachment #8422017 - Flags: review?(mdeboer) → review+
Attachment #8422017 - Attachment is obsolete: true
Keywords: checkin-needed
Flags: in-testsuite+
Keywords: checkin-needed
Whiteboard: [pdfjs-c-ff-integration] → [pdfjs-c-ff-integration][fixed-in-fx-team]
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Whiteboard: [pdfjs-c-ff-integration][fixed-in-fx-team] → [pdfjs-c-ff-integration]
Target Milestone: --- → mozilla32
No longer blocks: 1016308
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: