Remove the usage of deprecated OSX APIs in nsCommandLineService
Categories
(Core :: Widget: Cocoa, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox67 | --- | fixed |
People
(Reporter: mossop, Assigned: mossop)
Details
Attachments
(1 file)
Ive been working on code in toolkit/xre a lot lately and the warning spam from the deprecated API usage in there was quite annoying. So I decided to start fixing some of it.
I converted nsCommandLineService to an obj-c file and used the current APIs for checking if the current app is the foreground app. Then I ended up going on a crazy chase to figure out why then nsUpdateDriver.cpp was then failing to compile with an ambiguous symbol.
It turns out that because we jam all the cpp files together into a unified file for compilation, which file an include of Carbon.h appears in matters. It seems that if it appears before a file that declares "using namespace mozilla;" everything is fine. If it is included after that a use of a TextRange inside OSX headers conflicts with the declaration of mozilla::TextRange. Removing nsCommandLineService from the unified cpp file moved where Carbon.h is included to later causing this issue. So I ended up having to add the include to a file that was early in the unified file, which is kind of ridiculous :(
If you have any other thoughts on how to solve that problem I'm open to ideas.
| Assignee | ||
Comment 1•7 years ago
|
||
Comment 2•6 years ago
|
||
Ugh. I lost track of this review thanks to phabricator. Will look at this shortly.
Comment 4•6 years ago
|
||
| bugherder | ||
Description
•