Closed Bug 1332017 Opened 3 years ago Closed 3 years ago

Port bug 1306327 to TB [Build an XPCOM startup API specifically for the Firefox stub which doesn't need the XPCOM glue]

Categories

(Thunderbird :: General, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 53.0

People

(Reporter: Paenglab, Assigned: Paenglab)

Details

Attachments

(1 file)

M-c Moved most of nsBrowserApp.cpp to some glue library (mozglue, probably).
This fixes the bustage and TB starts here normally. All I tested looks okay.
Assignee: nobody → richard.marti
Status: NEW → ASSIGNED
Attachment #8828025 - Flags: review?(jorgk)
Wow, that's a huge patch!

I think the trick is to compare browser\app\nsBrowserApp.cpp with mail\app\nsMailApp.cpp.

The differences are minimal (thanks to Aleth keeping it in sync):

< #if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID)
---
> #if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID) \
>   && !(defined(XP_LINUX) && defined(MOZ_SANDBOX))
94c95
< #include "../../ipc/contentproc/plugin-container.cpp"
---
> #include "../../mozilla/ipc/contentproc/plugin-container.cpp"
102c103
< #define kDesktopFolder "browser"
---
> #define kDesktopFolder ""
132,134c133,135
<       messageBoxW(nullptr, wide_msg, L"Firefox", MB_OK
<                                                | MB_ICONERROR
<                                                | MB_SETFOREGROUND);
---
>       messageBoxW(nullptr, wide_msg, L"Thunderbird", MB_OK
>                                                    | MB_ICONERROR
>                                                    | MB_SETFOREGROUND);

So I will apply you patch and see that I get the same differences.

Stand by ;-)
OK, with the new nsBrowserApp.cpp and the patch applied, I now see these differences:

< #if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID)
---
> #if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID) \
>   && !(defined(XP_LINUX) && defined(MOZ_SANDBOX))
94c95
< #include "../../ipc/contentproc/plugin-container.cpp"
---
> #include "../../mozilla/ipc/contentproc/plugin-container.cpp"
102c103
< #define kDesktopFolder "browser"
---
> #define kDesktopFolder ""
132,134c133,135
<       messageBoxW(nullptr, wide_msg, L"Firefox", MB_OK
<                                                | MB_ICONERROR
<                                                | MB_SETFOREGROUND);
---
>       messageBoxW(nullptr, wide_msg, L"Thunderbird", MB_OK
>                                                    | MB_ICONERROR
>                                                    | MB_SETFOREGROUND);
179c180,181
<   // Allow firefox.exe to launch XULRunner apps via -app <application.ini>
---
>
>   // Allow thunderbird.exe to launch XULRunner apps via -app <application.ini>

Hmm, you changed the comment about XULRunner. Well, OK ;-)
I don't think anything will launch XULRunner, but in a Thunderbird file, the word "thunderbird" is more appropriate.

Review coming up in a second.
Comment on attachment 8828025 [details] [diff] [review]
noXPCOMglue.patch

Very nice editing work, indeed. And much appreciated.
Richard fixes bustage before it occurs ;-)

You land, right? Please fix the r=jorgk, there is a spurious quote that's not meant to be there in the commit comment.
Attachment #8828025 - Flags: review?(jorgk) → review+
https://hg.mozilla.org/comm-central/rev/79fa2565f18285e492e3e12908488d96f287990b
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → Thunderbird 53.0
I will look in a follow up bug about the differences.
I don't understand. The differences are wanted and expected. With the new version we have the same differences, so all is good.

The are:
< #if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID)
---
> #if !defined(MOZ_WIDGET_COCOA) && !defined(MOZ_WIDGET_ANDROID) \
>   && !(defined(XP_LINUX) && defined(MOZ_SANDBOX))

That's due to different sandboxing in TB.

< #include "../../ipc/contentproc/plugin-container.cpp"
---
> #include "../../mozilla/ipc/contentproc/plugin-container.cpp"

That's due to the different directory structure.

< #define kDesktopFolder "browser"
---
> #define kDesktopFolder ""

No idea :-(

And the remaining ones are about the different name of the app.

So no further action required.
Okay, then it's good. On line 28 is a firefox.exe which could be changed to thunderbird.exe. But this could be shortly be removed as it looks it's for XP. :-)
Of course this needs porting to im/app/nsMain.cpp and suite/app/nsSuiteApp.cpp.
Maybe my comparison technique will be helpful.
Flags: needinfo?(philip.chee)
Flags: needinfo?(frgrahl)
Flags: needinfo?(aleth)
Thanks. ewong has done it in bug 133217  for SeaMonkey.

> #define kDesktopFolder

FYI. Firefox puts the exe in a separate browser folder called (surprise) browser. I don't think TB does it so you don't need it.
Flags: needinfo?(frgrahl)
(In reply to Frank-Rainer Grahl from comment #10)
> Thanks. ewong has done it in bug 133217  for SeaMonkey.
I don't think so ;-( We're far past the million.
Flags: needinfo?(philip.chee)
Sorry cut and paste error: Bug 1332173
Flags: needinfo?(aleth)
You need to log in before you can comment on or make changes to this bug.