Obtaining a reference to the streamManager of the internal object model on twitter.com
<p>For a Greasemonkey script running on twitter.com, I need to access the <code>twttr.streams.TweetStream</code> instance of the main timeline (dubbed 'Home' internally) programmatically. I'm using Firebug and <a href="https://addons.mozilla.org/en-US/firefox/addon/javascript-deminifier/" rel="nofollow">Javascript Deminifier</a> to bring their JS code into a readable form. That way, I could previously work out that I could access it via <code>twttr.app.currentPage().streamManager.streams.current</code> in my GM script.</p>

<p>This has worked perfectly over the last months. Today, Twitter seems to have changed their code, breaking my approach (not their fault, obviously ;)).</p>

<p>I can still get to the current page via <code>twttr.app.currentPage()</code>. However, it doesn't have a <code>streamManager</code> field anymore.</p>

<p>I've tried various paths to get there, but all were dead ends. Unfortunately, I don't completely understand the class system they are using yet. It seems like the <code>streamManager</code> property is still there -- on a mixin called <code>mixins/streamablePage</code>, which should be provided by the class <code>twttr.components.pages.Home</code>. I can't figure out how to access it, though. (Or if the class system hides it in some impenetrable way.) That mixin also provides a <code>getStreamManager()</code> method, but I can't access that either, e.g. via <code>twttr.app.currentPage().getStreamManager()</code>. Is there any trick I need to perform to get access to these mixins from the outside?</p>

<p>Can anyone spot an alternative method to get to this instance? Note that I need the original instance used on the timeline page. Yes, I could easily create a new instance via <code>new twttr.streams.TweetStream()</code>, but I'm trying to hook into the original events.</p>

<p>I am perfectly aware that this use case is as unsupported as it gets, that's why I'm asking you, not them. :) For the record, I'm not attempting to do anything evil, just providing additional functionality for myself.</p>
