Closed Bug 926081 Opened 6 years ago Closed 6 years ago

Move stuff from xpcpublic.h to xpcprivate.h

Categories

(Core :: XPConnect, defect)

defect
Not set

Tracking

()

RESOLVED FIXED
mozilla27

People

(Reporter: mccr8, Assigned: mccr8)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

There are a few things that look like they can be moved from xpcpublic.h to xpcprivate.h.  A lot of this depends on nsDOMClassInfo.cpp including xpcprivate.  Some of this may not be right, as XPCShell includes xpcpublic but not xpcprivate.

nsIGlobalObject: can remove include, if not, remove forward declaration
forward decl nsIXPConnectWrappedJS is unused in xpcpublic
IsReflector

XPCONNECT_GLOBAL_FLAGS_WITH_EXTRA_SLOTS
XPCONNECT_GLOBAL_EXTRA_SLOT_OFFSET
XPCONNECT_GLOBAL_FLAGS
TraceXPCGlobal
xpc_LocalizeRuntime
xpc_DelocalizeRuntime
IS_WN_CLASS
IS_WN_REFLECTOR
xpc_ActivateDebugMode
nsIMemoryReporterCallback fwd decl is in a weird place, move up or down
GetObjectPrincipal?
DOM_DefineQuickStubs
GetNativeForGlobal
GetJunkScope (GetJunkScopeGlobal is needed)
SystemErrorReporter
DefineStaticJSVals
(In reply to Andrew McCreight [:mccr8] from comment #0)
> There are a few things that look like they can be moved from xpcpublic.h to
> xpcprivate.h.  A lot of this depends on nsDOMClassInfo.cpp including
> xpcprivate.  Some of this may not be right, as XPCShell includes xpcpublic
> but not xpcprivate.

> IsReflector 
> XPCONNECT_GLOBAL_FLAGS_WITH_EXTRA_SLOTS
> XPCONNECT_GLOBAL_EXTRA_SLOT_OFFSET
> XPCONNECT_GLOBAL_FLAGS
> SystemErrorReporter
> DOM_DefineQuickStubs
> DefineStaticJSVals

These should stay in xpcpublic.

> GetNativeForGlobal
> GetJunkScope (GetJunkScopeGlobal is needed)

These should stay together.

> TraceXPCGlobal
> xpc_LocalizeRuntime
> xpc_DelocalizeRuntime
> xpc_ActivateDebugMode
> nsIMemoryReporterCallback fwd decl is in a weird place, move up or down
> IS_WN_CLASS
> IS_WN_REFLECTOR

I don't care what happens with these.

> GetObjectPrincipal?

This does the same thing as nsContentUtils::GetObjectPrincipal, so it can go to xpcprivate.
> DOM_DefineQuickStubs
> DefineStaticJSVals

Er, sorry. Those should have been in the "Don't care" list.
> These should stay in xpcpublic.

Just out of curiosity, why is that?  Because they morally represent the public API of XPC?
(In reply to Andrew McCreight [:mccr8] from comment #3)
> > These should stay in xpcpublic.
> 
> Just out of curiosity, why is that?  Because they morally represent the
> public API of XPC?

More or less - they're things that, if I were writing code in BindingsUtils.cpp or content/xbl, I would expect to be able to use.
BindingUtils.cpp already includes xpcprivate.h. ;)  But yes, that makes sense.
Assignee: nobody → continuation
Blocks: includehell
Attached patch move stuffSplinter Review
Comment on attachment 818511 [details] [diff] [review]
move stuff

Windows and Linux debug builds look ok.

https://tbpl.mozilla.org/?tree=Try&rev=6bb0b6f88eeb
Attachment #818511 - Flags: review?(bobbyholley+bmo)
Attachment #818511 - Flags: review?(bobbyholley+bmo) → review+
https://hg.mozilla.org/mozilla-central/rev/04a1e2c324e8
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in before you can comment on or make changes to this bug.