Remove chrome.* Function Instrumentation Inlining and Use a Separate Instrumented Object
Chrome rebinds all of the chrome.* functions during events like permission
updates (e.g. chrome.permissions.request will cause all chrome.* to rebind).
This has the effect of throwing away all of the instrumentation set up during
initialization.
The fix here removes all inlining instrumentation from chrome.* and introduces
instrumented.* which mirrors chrome.* only for the instrumented functions.
instrumented.* also delays the lookup of the function until execution time
in the event the functions are rebound by chrome.
BUG=164227
Review URL: https://chromiumcodereview.appspot.com/22647003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@216713 0039d316-1c4b-4281-b951-d872f2087c98
6 files changed