Fix leaking data between TemplateHooks and add sandboxing.

Review Request #5761 — Created May 1, 2014 and submitted — Latest diff uploaded

Information

Djblets
master
8297cc7...

Reviewers

TemplateHooks could easily leak data into the main context when
rendering, overriding variables provided by other contexts. While
TemplateHook tries to push/pop, subclasses can always override and
forget to do so. They can also potentially raise an exception, breaking
the rendering of the page.

To work around all this, we now push/pop in template_hook_point, to
prevent any leakage, and catch exceptions to help sandbox.

Unit tests pass.

First saw this issue when rbmotd's custom TemplateHook was writing directly
into the context, causing issues with the Power Pack config page. After this
change, it all worked properly.