Closed Bug 1521719 Opened 7 months ago Closed 7 months ago

Intermittent browser/components/urlbar/tests/browser/<random test> | uncaught exception - TypeError: Property 'handleEvent' is not callable. at

Categories

(Firefox :: Address Bar, defect, P2)

defect

Tracking

()

RESOLVED FIXED
Firefox 66
Tracking Status
firefox66 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: standard8)

References

(Blocks 1 open bug)

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Filed by: nbeleuzu [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=223237973&repo=mozilla-inbound

https://queue.taskcluster.net/v1/task/LLsxgk2OQKa8Y0ZufHM1YA/runs/0/artifacts/public/logs/live_backing.log

09:44:04 INFO - TEST-PASS | browser/components/urlbar/tests/browser/browser_bug1025195_switchToTabHavingURI_aOpenParams.js | Should switch to existing about:about tab if one existed, ignoring fragment portion, including query string. -
09:44:04 INFO - Leaving test bound test_ignoreFragment
09:44:04 INFO - Entering test bound test_ignoreQueryString
09:44:04 INFO - Buffered messages finished
09:44:04 INFO - TEST-UNEXPECTED-FAIL | browser/components/urlbar/tests/browser/browser_bug1025195_switchToTabHavingURI_aOpenParams.js | uncaught exception - TypeError: Property 'handleEvent' is not callable. at
09:44:04 INFO - Stack trace:
09:44:04 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:simpletestOnerror:1644
09:44:04 INFO - OnErrorEventHandlerNonNull*chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:null:1624
09:44:04 INFO - chrome://mochikit/content/browser-test.js:Tester:402
09:44:04 INFO - chrome://mochikit/content/browser-harness.xul:createTester/</<:255
09:44:04 INFO - GECKO(5128) | JavaScript error: , line 0: TypeError: Property 'handleEvent' is not callable.
09:44:04 INFO - Console message: [JavaScript Error: "TypeError: Property 'handleEvent' is not callable."]

Mark, could you please take a look?

Flags: needinfo?(standard8)
Summary: Intermittent browser/components/urlbar/tests/browser/browser_bug1025195_switchToTabHavingURI_aOpenParams.js | uncaught exception - TypeError: Property 'handleEvent' is not callable. at → Intermittent browser/components/urlbar/tests/browser/<random test> | uncaught exception - TypeError: Property 'handleEvent' is not callable. at

We think this is something in the new QuantumBar, but we haven't tracked down exactly what yet. I'll add it to our list of things to look at.

Flags: needinfo?(standard8)
Priority: P5 → P2
Duplicate of this bug: 1521747
Duplicate of this bug: 1521827

I tried catching it locally, but no success yet. In the meantime, I've put together a complete guess at what might catch it on try. Try push here:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=4bdf87f77080aec18d9179ff734d5e5edfe7f4ee

I was just testing something else locally, and found a way to trigger this:

  1. Go into Preferences -> Privacy & Security
  2. Select one of "Manage Data", "Manage Permissions", "Saved Logins..."

On opening the sub-window, you see in the console:

TypeError: Property 'handleEvent' is not callable.

That seems to come from https://searchfox.org/mozilla-central/rev/6c784c93cfbd5119ed07773a170b59fbce1377ea/dom/bindings/CallbackInterface.cpp#27

I've got a debug build going to try and see if I can get a stack out.

Assignee: nobody → standard8

I can't get a stack, but what I do find is that the object that handleEvent is attempting to be called upon is:

object 1896d6d42640
global 2177cf78b2e0 [Window]
class 11cf7ff50 XULElement
group 1896d6d4b100
flags: has_uncacheable_proto inDictionaryMode hasShapeTable
proto <XBL prototype JSClass object at 1896d6d42670>
reserved slots:
0 : 1.11599e-314
properties:
"document": <XULDocument object at 3e7ca6390af0> (shape 1896d6db0a38 enumerate slot 9)
"window": <Proxy object at 1ab42b477180> (shape 1896d6db0a10 enumerate slot 10)
"textbox": <XULElement object at 1896d6d42640> (shape 1896d6db09e8 enumerate slot 11)
"_prefs": <XPCWrappedNative_NoHelper object at 1896d6d65d30> (shape 1896d6db09c0 enumerate slot 12)
"_defaultPrefs": <XPCWrappedNative_NoHelper object at 1896d6d65d60> (shape 1896d6db0998 enumerate slot 13)
"browserSearchSuggestEnabled": true (shape 1896d6db0970 enumerate slot 14)
"openInTab": false (shape 1896d6db0948 enumerate slot 15)
"doubleClickSelectsAll": false (shape 1896d6db0920 enumerate slot 16)
"speculativeConnectEnabled": true (shape 1896d6db08f8 enumerate slot 17)
"urlbarSearchSuggestEnabled": true (shape 1896d6db08d0 enumerate slot 18)
"_adoptIntoActiveWindow": false (shape 1896d6db0880 enumerate slot 20)
"_ctrlCanonizesURLs": true (shape 1896d6db1350 enumerate slot 21)
"mEditor": <XPCWrappedNative_NoHelper object at 1896d6dabb20> (shape 1896d6db0bc8 enumerate slot 1)
"mInputField": <HTMLInputElement object at 1896d6dabaf0> (shape 1896d6db0bf0 enumerate slot 2)

This looked like the legacy urlbar to me. Looking at the code around:

https://searchfox.org/mozilla-central/rev/6c784c93cfbd5119ed07773a170b59fbce1377ea/browser/base/content/browser.js#186-194

I realised that the urlbar binding was potentially still being constructed in some circumstances and would still register handlers. I suspect depending on construction orders and handler registrations, we'd hit the error sometimes and not others.

Therefore I think it is best that if we have QuantumBar running, we stop the constructor and destructor of the urlbar binding from running. This fixes the issue seen in comment 6, and I think would stop the intermittent issues as well.

Status: NEW → ASSIGNED

As a result, we can also re-enable some tests running against QuantumBar.

Pushed by mbanner@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9f90c6e59169
Stop the legacy urlbar binding being constructed and registering listeners when QuantumBar is enabled. r=dao
Status: ASSIGNED → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 66
Blocks: 1522326
You need to log in before you can comment on or make changes to this bug.