Ensure that ChromeFrame does not interfere with non ChromeFrame requests initiated by IE.

ChromeFrame patches the urlmon transaction object vtable to ensure that top level requests initiated
by IE are intercepted. Methods patched include the Start/StartEx and Read. The Read method is patched
to ensure that we return unprocessed data back to urlmon in case the site is not switched into ChromeFrame.

There is a race condition between the time the data is discarded and a new request is created as the
IInternetProtocol interface ptr can be reused. This causes us to return stale data from a previous request to
IE. The data is keyed off the IInternetProtocol interface ptr.

Fix is to patch the Abort and Terminate methods of the transaction vtable and destroy the data for the protocol.

Fixes bug http://code.google.com/p/chromium/issues/detail?id=168308

BUG=168308
Review URL: https://chromiumcodereview.appspot.com/12093077

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179932 0039d316-1c4b-4281-b951-d872f2087c98
2 files changed