If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Need to convert Mac Widget into a component DLL

VERIFIED DUPLICATE of bug 94434

Status

SeaMonkey
Build Config
P3
normal
VERIFIED DUPLICATE of bug 94434
16 years ago
13 years ago

People

(Reporter: Simon Fraser, Assigned: Simon Fraser)

Tracking

Trunk
mozilla0.9.6
PowerPC
Mac System 8.5

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments)

(Assignee)

Description

16 years ago
As part of the static build landing on Windows and Unix, GFX and Widget were 
converted into component DLLs. We need to do this on Mac too. This bug is for 
widget.

Comment 1

16 years ago
Simon, I am putting this in 1.0, if you want it in a different milestone, please
move it
Priority: -- → P3
Target Milestone: --- → mozilla1.0
(Assignee)

Comment 2

16 years ago
This turns out to be tricker than gfx, the main problem being that PPBrowser 
needs linkage with nsRepeater and nsMacMessageSink, which in turn drags in the 
nsMacWindow implementation.

I've made it work by creating a 'GeckoSupport' library (which is actually the old 
widget DLL that gets linked with), containing:
  nsRepeater.cpp
  nsMessageSink.cpp
  nsWidgetSupport.cpp (viewer links with this)

but this does not seem like a logical code split.

Conrad: is there anyway we can eliminate the linkage requirements of PPBrowser on 
the widget code? Why aren't the generic embedding interfaces enough here?
Status: NEW → ASSIGNED
The nsRepeater functionality should go into the embedding API. The problem with
NS_DoIdleEmbeddingStuff() (besides that I can't stand that name ;-))is that it
needs to take an EventRecord only on the Mac. Also, there needs to be a
corresponding call for repeating. Since the idling/repeating needs are so
different on the Mac, I just stuck with widget's nsRepeater functionality. The
code does need to be moved so the linkage can be avoided but I'll have to look
into it some more first.

In terms of a 'GeckoSupport' lib, having nsRepeater.cpp and nsMessageSink is a
good match because every app using Gecko on the Mac would need this. I'd avoid
putting nsWidgetSupport.cpp into it because it's only used by viewer and viewer
is an odd-ball that may not be long for this world anyway.

Comment 4

16 years ago
as pointed out by sfraser, this might block bug 100612, but I'm not 100% sure.
See bug 94434 as well.

There was talk of cleaning up the NS_DoIdleEmbedding stuff - will that fix some
of the mentioned dependencies here? is there a bug on that?
(Assignee)

Updated

16 years ago
Target Milestone: mozilla1.0 → mozilla0.9.5
(Assignee)

Comment 5

16 years ago
Boing.
Target Milestone: mozilla0.9.5 → mozilla0.9.6
(Assignee)

Comment 6

16 years ago
Mac build changes are ready to land. Most are project changes. Minor script 
fixing coming up...
(Assignee)

Comment 7

16 years ago
Created attachment 56647 [details] [diff] [review]
Source changes in widget
(Assignee)

Comment 8

16 years ago
Created attachment 56648 [details] [diff] [review]
Build script changse

Comment 9

16 years ago
Comment on attachment 56647 [details] [diff] [review]
Source changes in widget

r=pchen
Attachment #56647 - Flags: review+

Comment 10

16 years ago
Comment on attachment 56648 [details] [diff] [review]
Build script changse

r=pchen
Attachment #56648 - Flags: review+
(Assignee)

Comment 11

16 years ago
The changes do this following:
* Break widget into an XPCOM module (widget.shlb) and a non-XPCOM module
  (GeckoSupport.shlb)
* Deal with moving GetNativeTextStyle() from nsFontMetricsMac to nsFontUtils
  (see patch in bug 94434)
* Remove some unnecessary exports in nsMacMessageSink
* Add an XPCOM module file nsWidgetModule.cpp, with simplified nsScrollbar 
entries
(Assignee)

Comment 12

16 years ago
Created attachment 56664 [details] [diff] [review]
Diff of nsWidgetFactory.cpp
(Assignee)

Comment 13

16 years ago
Changed to use the existing nsWidgetFactory.cpp, with changes to allow for the 
same file to be used when building Mach-O
(Assignee)

Comment 14

16 years ago
Diffs are now being tracked in bug 94434.


*** This bug has been marked as a duplicate of 94434 ***
Status: ASSIGNED → RESOLVED
Last Resolved: 16 years ago
Resolution: --- → DUPLICATE

Comment 15

16 years ago
verified dup.
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.