Why? So initially one of the reasons we didn't do this was that it wouldn't be compatible with where we eventually wanted to end up for e10s. Bug 577607 might have others. Is the idea here that there would still be 2 separate refresh drivers, at least? And that you'd do something for the background tab case? (That seems like it might be complicated.)
The patch will use parent's refresh driver if there is one, and otherwise use what we have now. The parent driver will tell child driver when to call the callbacks. The idea is to have less stuff in the eventloop. Also, this way we could slow down content in case we're doing something heavy in the parent. Background tab handling won't be changed at all.
Created attachment 658118 [details] [diff] [review] patch https://tbpl.mozilla.org/?tree=Try&rev=dfb9de97dc04 Finally found the silly mistake in the patch which caused dragging tab to a new window to break refreshing in certain cases.
Created attachment 658141 [details] [diff] [review] v4 https://tbpl.mozilla.org/?tree=Try&rev=2183eab2ae41 Update times also in the child driver.
Created attachment 658415 [details] [diff] [review] v5 https://tbpl.mozilla.org/?tree=Try&rev=e96701e41f43 This should fix the test_transitions failures. Need to make sure we use the right time everywhere.
I wasn't aware of bug 731974. Perhaps this bug should become WONTFIX, because bug 731974 ends up driving multiple refresh drivers using same timer.
Or maybe the timer behavior from bug 731974 should be implemented on top of this patch.
Created attachment 658517 [details] [diff] [review] WIP - single shot timer ...but I guess vlad will fix the patch in the other bug.