Closed Bug 1674904 Opened 3 years ago Closed 3 years ago

Refactor component registration code

Categories

(Core :: IPC: MSCOM, task)

task

Tracking

()

RESOLVED FIXED
84 Branch
Tracking Status
firefox84 --- fixed

People

(Reporter: bugzilla, Assigned: bugzilla)

References

Details

Attachments

(4 files, 1 obsolete file)

I want to replace the registration code that we use in Handler with a more generic implementation in Module and also supports DLL surrogates.

Depends on: 1674902

We need this so that the registration code is more versatile and may be linked
from outside of xul.

We add new DLL registration code. This is a rather generic function that
permits the following:

  • Registering multiple CLSIDs for the same DLL;
  • Registering an optional AppID. Registering an AppID allows us to use a
    DllSurrogate to host the DLL out-of-process using Windows' built-in
    dllhost.exe. I'll be using this feature in a future bug.
  • Supporting all available threading modelsl;
  • Capable of registering either inproc servers or inproc handlers;
  • Using the transaction-based registry API so that we can cleanly rollback
    during registration if any part(s) of it fail.

Depends on D95605

Handler should now delegate its registration to Module.

Depends on D95606

We should delayload DLLs that for APIs that are only used during registration
so that they aren't referenced during normal operation.

Depends on D95608

Pushed by aklotz@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/7322c3af8006
Part 1 - Change mscom registration to dynamically link to GetProxyDllInfo when built outside of xul; r=Jamie
https://hg.mozilla.org/integration/autoland/rev/660cdea23685
Part 2 - New dll registration code in mscom/oop/module; r=Jamie
https://hg.mozilla.org/integration/autoland/rev/b3b7d68c33f6
Part 3 - Replace dll reg code in mscom/oop/Handler with calls to mscom/oop/Module; r=Jamie
https://hg.mozilla.org/integration/autoland/rev/50576e0fbd98
Part 4 - Update AccessibleHandler to delayload dependencies that are only used during registration; r=Jamie

Now that non-XUL builds of Registration.cpp use GetProcAddress to resolve
GetProxyDllInfo (from part 1), we need to ensure that we export the handler's
implementation.

Attachment #9185814 - Attachment is obsolete: true
Flags: needinfo?(aklotz)
Pushed by aklotz@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bc27f9c33843
Part 1 - Change mscom registration to dynamically link to GetProxyDllInfo when built outside of xul; r=Jamie
https://hg.mozilla.org/integration/autoland/rev/1ee6692a8dd0
Part 2 - New dll registration code in mscom/oop/module; r=Jamie
https://hg.mozilla.org/integration/autoland/rev/0a275914d8a8
Part 3 - Replace dll reg code in mscom/oop/Handler with calls to mscom/oop/Module; r=Jamie
https://hg.mozilla.org/integration/autoland/rev/1b99873f3735
Part 4 - Update AccessibleHandler to delayload dependencies that are only used during registration; r=Jamie
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: