Note: please put console output into code blocks. This ensures that
< is treated as a text character and avoids that the console output is treated as HTML text. That latter has rendered your "pdb" output invisible.
Look at the definitions of
zope.interfaces.declarations. By that, you will learn how to take over complete control over the directly provided interfaces.
- if you know that
...IOriginalLayer must always be present, your
IThisPackageContentLayer may inherit from it.
- The code responsible to put the layer interfaces onto the request object is
plone.browserlayer.layer.mark_layer. You learn there, that the order in which layers are applied is determined by the result of
getAllUtilitiesRegisteredFor. Potentially, controlling the order in which those utilities are registered can give you some control over the order in that result. A condition for this would be that the data structure used there reflects the registration order.