Closed Bug 1333162 Opened 8 years ago Closed 5 years ago

1,500 instances of "Couldn't convert chrome URL: chrome://branding/locale/brand.properties" emitted from none during linux64 debug testing

Categories

(Firefox :: General, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 77
Tracking Status
firefox77 --- fixed

People

(Reporter: erahm, Assigned: heycam)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

> 1518 Couldn't convert chrome URL: chrome://branding/locale/brand.properties This warning [1] shows up in the following test suites: > 74 - test-linux64/debug-mochitest-chrome-3 c3 > 64 - test-linux64/debug-mochitest-chrome-2 c2 > 62 - test-linux64/debug-mochitest-clipboard cl > 58 - test-linux64/debug-mochitest-chrome-1 c1 > 58 - test-linux64/debug-mochitest-clipboard-e10s cl > 34 - test-linux64/debug-mochitest-5 5 > 34 - test-linux64/debug-mochitest-e10s-5 5 > 30 - test-linux64/debug-mochitest-browser-chrome-7 bc7 > 28 - test-linux64/debug-mochitest-browser-chrome-e10s-6 bc6 > 28 - test-linux64/debug-mochitest-browser-chrome-4 bc4 > 28 - test-linux64/debug-mochitest-browser-chrome-5 bc5 > 28 - test-linux64/debug-mochitest-3 3 > 28 - test-linux64/debug-mochitest-e10s-10 10 > 28 - test-linux64/debug-mochitest-10 10 > 28 - test-linux64/debug-mochitest-e10s-9 9 > 28 - test-linux64/debug-mochitest-browser-chrome-6 bc6 > 28 - test-linux64/debug-mochitest-8 8 > 28 - test-linux64/debug-mochitest-9 9 > 28 - test-linux64/debug-mochitest-browser-chrome-e10s-7 bc7 > 28 - test-linux64/debug-mochitest-browser-chrome-3 bc3 > 28 - test-linux64/debug-mochitest-browser-chrome-e10s-5 bc5 > 26 - test-linux64/debug-mochitest-e10s-8 8 > 26 - test-linux64/debug-mochitest-e10s-6 6 > 26 - test-linux64/debug-mochitest-e10s-1 1 > 26 - test-linux64/debug-mochitest-e10s-4 4 > 26 - test-linux64/debug-mochitest-browser-chrome-2 bc2 > 26 - test-linux64/debug-mochitest-4 4 > 26 - test-linux64/debug-mochitest-e10s-7 7 > 26 - test-linux64/debug-mochitest-e10s-2 2 > 26 - test-linux64/debug-mochitest-2 2 > 26 - test-linux64/debug-mochitest-browser-chrome-e10s-3 bc3 > 26 - test-linux64/debug-mochitest-e10s-3 3 > 26 - test-linux64/debug-mochitest-7 7 > 26 - test-linux64/debug-mochitest-1 1 > 26 - test-linux64/debug-mochitest-browser-chrome-1 bc1 > 26 - test-linux64/debug-mochitest-6 6 > 26 - test-linux64/debug-mochitest-browser-chrome-e10s-9 bc9 > 26 - test-linux64/debug-mochitest-browser-chrome-e10s-1 bc1 > 22 - test-linux64/debug-mochitest-browser-chrome-e10s-8 bc8 > 18 - test-linux64/debug-mochitest-media mda > 18 - test-linux64/debug-mochitest-media-e10s mda > 14 - test-linux64/debug-mochitest-browser-chrome-e10s-4 bc4 > 14 - test-linux64/debug-mochitest-devtools-chrome-5 dt5 > 14 - test-linux64/debug-mochitest-gpu-e10s gpu > 12 - test-linux64/debug-mochitest-devtools-chrome-e10s-1 dt1 > 12 - test-linux64/debug-mochitest-devtools-chrome-e10s-4 dt4 > 12 - test-linux64/debug-mochitest-devtools-chrome-e10s-5 dt5 > 12 - test-linux64/debug-mochitest-devtools-chrome-8 dt8 > 12 - test-linux64/debug-mochitest-devtools-chrome-e10s-2 dt2 > 10 - test-linux64/debug-mochitest-devtools-chrome-7 dt7 > 8 - test-linux64/debug-mochitest-devtools-chrome-6 dt6 > 8 - test-linux64/debug-mochitest-devtools-chrome-9 dt9 > 8 - test-linux64/debug-mochitest-webgl-e10s-3 gl3 > 8 - test-linux64/debug-mochitest-devtools-chrome-e10s-3 dt3 > 8 - test-linux64/debug-mochitest-webgl-3 gl3 > 8 - test-linux64/debug-mochitest-devtools-chrome-1 dt1 > 6 - test-linux64/debug-mochitest-devtools-chrome-e10s-8 dt8 > 6 - test-linux64/debug-mochitest-browser-chrome-e10s-2 bc2 > 6 - test-linux64/debug-mochitest-devtools-chrome-2 dt2 > 4 - test-linux64/debug-mochitest-devtools-chrome-3 dt3 > 4 - test-linux64/debug-mochitest-jetpack JP > 4 - test-linux64/debug-mochitest-webgl-1 gl1 > 4 - test-linux64/debug-mochitest-devtools-chrome-4 dt4 > 4 - test-linux64/debug-mochitest-webgl-e10s-1 gl1 > 4 - test-linux64/debug-mochitest-devtools-chrome-e10s-7 dt7 > 4 - test-linux64/debug-mochitest-devtools-chrome-e10s-6 dt6 > 2 - test-linux64/debug-mochitest-devtools-chrome-e10s-9 dt9 > 2 - test-linux64/debug-gtest GTest > 2 - test-linux64/debug-mochitest-devtools-chrome-e10s-10 dt10 > 2 - test-linux64/debug-mochitest-browser-chrome-e10s-10 bc10 > 2 - Static Checking Build S > 2 - test-linux64/debug-mochitest-browser-chrome-10 bc10 > 2 - test-linux64/debug-mochitest-browser-chrome-8 bc8 > 2 - build-linux64/debug B > 2 - test-linux64/debug-mochitest-devtools-chrome-10 dt10 > 2 - test-linux64/debug-mochitest-browser-chrome-9 bc9 > 2 - test-linux64/debug-mochitest-a11y a11y > 2 - test-linux64/debug-mochitest-browser-chrome-e10s-12 bc12 > 2 - test-linux64/debug-mochitest-webgl-e10s-2 gl2 > 2 - test-linux64/debug-mochitest-browser-chrome-e10s-11 bc11 > 2 - test-linux64/debug-mochitest-browser-chrome-11 bc11 > 2 - test-linux64/debug-mochitest-browser-chrome-12 bc12 > 2 - test-linux64/debug-mochitest-webgl-2 gl2 It shows up in 82 tests. A few of the most prevalent: > 762 - Shutdown > 580 - [e10s] Shutdown > 2 - browser/base/content/test/general/browser_zbug569342.js > 2 - [e10s] dom/imptests/html/webgl/test_compressedTexSubImage2D.html > 2 - dom/html/test/test_bug445004.html > 2 - [e10s] devtools/client/inspector/rules/test/browser_rules_content_02.js > 2 - widget/tests/test_taskbar_progress.xul > 2 - [e10s] toolkit/mozapps/extensions/test/browser/browser_bug593535.js > 2 - [e10s] dom/html/test/test_iframe_sandbox_modal.html > 2 - dom/browser-element/mochitest/test_browserElement_oop_getWebManifest.html [1] https://hg.mozilla.org/mozilla-central/annotate/5a4412474c63/none#l0
The actual warning comes from nsChromeProtocolHandler::NewChannel2 [1], presumably caused by trying to load a file that is not registered. I suppose this could be a race, a packaging issue, or a straight up non-existent file. [1] http://searchfox.org/mozilla-central/rev/30fcf167af036aeddf322de44a2fadd370acfd2f/chrome/nsChromeProtocolHandler.cpp#138-146
So it looks like https://searchfox.org/mozilla-central/rev/0b8ed772d24605d7cb44c1af6d59e4ca023bd5f5/widget/gtk/nsAppShell.cpp#192 for example triggers this error first on a debug build when starting the browser. I tried adding nsChromeRegistry to widget/gtk/nsWidgetFactory.cpp like it is in XPCOMInit.cpp but it didn't seem to work. Perhaps this string isn't that important and we could just check if the chromeRegistry has registered.

Right, this is being called to get the value to pass to gdk_set_program_name, which influences the WM_CLASS property of windows that get created. This happens very early in the life a process, and for a child process this happens before we send the RegisterChrome message that causes all of the chrome packages (including "branding") to be registered. I suspect it's not important to call gdk_set_program_name in content processes, and that we can condition this section on whether we're the parent process. Karl, does that sound right to you?

Flags: needinfo?(karlt)

An alternative might be to move this gdk_set_program_name call later, just before we create the first window.

Assignee: nobody → cam
Status: NEW → ASSIGNED

I expect it should be fine to skip the call in the content process.

When GDK opens an X11 Display, even in the content process, it creates a "leader window" and sets the class name on that via XmbSetWMProperties(). However, I doubt the leader window for the content process is actually used because there are no other windows pointing at the leader.

And, given the brand name call is failing, there is no value in making an attempt.

Flags: needinfo?(karlt)
Pushed by cmccormack@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/78b2c3e9c125 Only call gdk_set_program_name in the parent process. r=karlt
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 77
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: