Middleware to manage extension lifecycles and data.
Middleware to execute middleware from extensions.
The process_*() methods iterate over all extensions’ middleware, calling the given method if it exists. The semantics of how Django executes each method are preserved.
This middleware should be loaded after the main extension middleware (djblets.extensions.middleware.ExtensionsMiddleware). It’s probably a good idea to have it be at the very end so that everything else in the core that needs to be initialized is done before any extension’s middleware is run.