diff options
author | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 00:29:37 +0000 |
---|---|---|
committer | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-10 00:29:37 +0000 |
commit | 4b50cb5974b9465055113a92494ec68fe0a33ea8 (patch) | |
tree | 98609f2d31a9749abd013a0191e613c54a98db2e /webkit/database | |
parent | b3a5bb10518d4710e0434934450cdfb0b9ca5784 (diff) | |
download | chromium_src-4b50cb5974b9465055113a92494ec68fe0a33ea8.zip chromium_src-4b50cb5974b9465055113a92494ec68fe0a33ea8.tar.gz chromium_src-4b50cb5974b9465055113a92494ec68fe0a33ea8.tar.bz2 |
Extends NetworkDelegate to avoid use of static_cast<> when handling RegisterProtocolHandler URLs.
Currently we use a static_cast<> to convert a URLRequestContext into a
ChromeURLRequestContext in a ProtocolFactory. However, ProtocolFactory is
global and not all URLRequestContexts are instances of ChromeURLRequestContext,
so this will always crash in certain circumstances (such as the one described
in the TEST field).
This change solves the problem by providing a MaybeCreateURLRequestJob() method
in NetworkDelegate and then having the ProtocolHandlerRegistry::Factory() call
it instead of casting.
BUG=74063
TEST=Requesting a URL that has a registerProtocolHandler() from chrome://net-internals/#tests doesn't crash.
Review URL: http://codereview.chromium.org/6592060
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77559 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/database')
0 files changed, 0 insertions, 0 deletions