summaryrefslogtreecommitdiffstats
path: root/chrome_frame/protocol_sink_wrap.cc
Commit message (Collapse)AuthorAgeFilesLines
* Properly clear URL on BINDSTATUS_REDIRECTINGrsleevi@chromium.org2011-05-271-1/+1
| | | | | | | | | | | R=ananta@chromium.org BUG=84109 TEST=none Review URL: http://codereview.chromium.org/6962028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86984 0039d316-1c4b-4281-b951-d872f2087c98
* Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h.tfarina@chromium.org2011-04-121-24/+25
| | | | | | | | | | | | | | | | | Fix up all the callers to use the new location and namespace. Also, delete the stub file since it isn't included by anyone more. (Note: This was a TODO for brettw). BUG=None TEST=None R=brettw@chromium.org Review URL: http://codereview.chromium.org/6825055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81303 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | raw_scoped_refptr_mismatch_checker.h ref_counted.cc ref_counted.h ref_counted_memory.cc ref_counted_memory.h ref_counted_unittest.cc scoped_callback_factory.h scoped_comptr_win.h scoped_handle.h scoped_native_library.cc scoped_native_library.h scoped_native_library_unittest.cc scoped_nsobject.h scoped_open_process.h scoped_ptr.h scoped_ptr_unittest.cc scoped_temp_dir.cc scoped_temp_dir.h scoped_temp_dir_unittest.cc scoped_vector.h singleton.h singleton_objc.h singleton_unittest.cc linked_ptr.h linked_ptr_unittest.cc weak_ptr.cc weak_ptr.h weak_ptr_unittest.cc BUG=None TEST=Compile Review URL: http://codereview.chromium.org/6714032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
* Download requests in ChromeFrame which occur in response to a POST request ↵ananta@chromium.org2011-02-281-1/+0
| | | | | | | | | | | | | | | | | | | | | | need to pass the post data as well while reissuing the navigation. This ensures that a POST request is correctly sent out at all times instead of a GET request. While the assumption is that reusing the bind context would achieve this behavior, it does not appear to be true at all times. While fixing this I also found that reissuing a navigation via a NavigateWithBindCtx call causes the current chrome frame document to receive an Unload call at times, leading to the page being rendered useless after the request finishes. We should reissue the navigation on a new window to work around this problem. Fixes bug http://code.google.com/p/chromium/issues/detail?id=73985 BUG=73985 TEST=As described in the bug. Review URL: http://codereview.chromium.org/6598016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76282 0039d316-1c4b-4281-b951-d872f2087c98
* Remove includes of message headers in headers.jam@chromium.org2011-02-091-0/+1
| | | | | | Review URL: http://codereview.chromium.org/6458004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74257 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing base::lock usage.brettw@chromium.org2011-01-211-1/+1
| | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6336010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72108 0039d316-1c4b-4281-b951-d872f2087c98
* Remove obsolete base/lock.h and fix up callers to use the new header file andbrettw@chromium.org2011-01-211-3/+3
| | | | | | | | | | | the base namespace. Fix several files including lock.h unnecessarily. BUG=none TEST=none Original review=http://codereview.chromium.org/6142009/ Patch by leviw@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72106 0039d316-1c4b-4281-b951-d872f2087c98
* Integrate the Ready Mode prompt with IE and Chrome Frame. In Ready Mode, ↵erikwright@chromium.org2011-01-121-1/+7
| | | | | | | | | | prompts are displayed when the user browses to GCF-enabled sites, allowing the user to permanently activate, permanently decline, or temporarily decline Chrome Frame. BUG=None TEST=chrome_frame_unittests --gtest_filter=Ready* && chrome_frame_unittests --gtest_filter=Infobar* && setup.exe --chrome-frame --ready-mode --multi-install --system--level --chrome Review URL: http://codereview.chromium.org/6040003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71215 0039d316-1c4b-4281-b951-d872f2087c98
* Suppress a false positive crasher in chrome frame in version 8.0.552.224. ↵ananta@chromium.org2010-12-171-0/+6
| | | | | | | | | | | | | The crash happens in the IInternetProtocol::UnlockRequest patch. BUG=67264 TEST=none Review URL: http://codereview.chromium.org/5895004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69582 0039d316-1c4b-4281-b951-d872f2087c98
* Add a new GetInstance() method for singleton classes, take 2.satish@chromium.org2010-12-081-3/+2
| | | | | | | | | | | | | | | | | | This is a small step towards making all singleton classes use the Singleton<T> pattern within their code and not expect the callers to know about it. This CL includes all files except those under chrome/browser, chrome/net, chrome/service and third_party/WebKit (these will be done in future CLs). Suggested files to focus for reviewers: - joi@ for files under src/ceee - tommi@ for files under src/chrome_frame - maruel@ for the rest of the files. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5581008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68577 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a bug where in having ChromeFrame installed on the machine would cause a ↵ananta@chromium.org2010-11-011-42/+0
| | | | | | | | | | | | | | | | | | | | | | | | non chrome frame email site to automatically logout after logging in. ChromeFrame appends the chromeframe string to the user agent to outgoing requests initiated from IE. However this was only done in the protocol sink patch for top level requests. Sub requests would carry the IE user agent which in this case would cause the web server to get confused and drop the connection. Fix is to resurrent the IHttpNegotiate vtable patch for the protocol patch as well. Removed the code which read the patch method from the registry and turned on the moniker or the httpequiv patch. It is unlikely that we will need this in the future. Cleaned up the http negotiate patch by removing references to the navigation manager and the ReportProgress patch which is not needed anymore. Fixes bug http://code.google.com/p/chromium/issues/detail?id=60745 Bug=60745 Review URL: http://codereview.chromium.org/4247001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64688 0039d316-1c4b-4281-b951-d872f2087c98
* Change miscellaneous LOG(INFO)s to VLOG()s that I missed the first time ↵pkasting@chromium.org2010-10-271-2/+2
| | | | | | | | | | | | through, either because they were LOG_IF() (which I didn't search for) or they were added during the week I was changing things. Plus a few misc. cleanup bits. BUG=none TEST=none Review URL: http://codereview.chromium.org/4111002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63998 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crasher observed in ChromeFrame stable build 7.0.517.43. Crash occurs ↵ananta@chromium.org2010-10-251-0/+12
| | | | | | | | | | | | | | | | | | | | when we attempt to terminate the urlmon transaction with a spurious BindToObject call which is supposed to fail but release the transaction. While this works mostly it causes a crash in urlmon at times on IE7. To workaround this we now save away the IInternetProtocol interface which represents the transaction object in our bind context info structure which is maintained per bind context and terminate the protocol when we want the transaction to be destroyed. Fixes bug http://code.google.com/p/chromium/issues/detail?id=60370 Bug=60370 Review URL: http://codereview.chromium.org/3984006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63769 0039d316-1c4b-4281-b951-d872f2087c98
* Enable developers to conditionally activate Chrome Frame, depending on the ↵erikwright@chromium.org2010-10-251-5/+9
| | | | | | | | | | version of the host IE browser. BUG=52601 TEST=[chrome_frame_unittests / UtilTests.XUaCompatibleDirectiveTest], [chrome_frame_tests / HeaderTest.*] Review URL: http://codereview.chromium.org/3978001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63728 0039d316-1c4b-4281-b951-d872f2087c98
* Remove scoped_bstr_win, fix all callers to use the new location.brettw@chromium.org2010-10-201-2/+2
| | | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3748012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63216 0039d316-1c4b-4281-b951-d872f2087c98
* Convert LOG(INFO) to VLOG(1) - chrome_frame/.pkasting@chromium.org2010-10-191-24/+24
| | | | | | | | | | Plus a couple misc. cleanups. BUG=none TEST=none Review URL: http://codereview.chromium.org/3850002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63095 0039d316-1c4b-4281-b951-d872f2087c98
* Policy support for being able to specify a list of content types that Chrome ↵tommi@chromium.org2010-10-041-1/+7
| | | | | | | | | | | Frame should handle. TEST=This adds a new policy list for Chrome Frame, "ChromeFrameContentTypes", which can be used to specify a list of content types that should always be rendered in Chrome Frame. BUG=56543 Review URL: http://codereview.chromium.org/3611002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61432 0039d316-1c4b-4281-b951-d872f2087c98
* chrome_frame: Append base:: in the StringPrintf calls.tfarina@chromium.org2010-10-011-4/+4
| | | | | | | | | | | (Note: this is a TODO in string_util.h) BUG=None TEST=trybots Review URL: http://codereview.chromium.org/3594002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61166 0039d316-1c4b-4281-b951-d872f2087c98
* Add application/xml and text/xml to the list of content typesamit@chromium.org2010-09-241-12/+15
| | | | | | | | | | | | that we allow switching using http header. BUG=56269 TEST=none Review URL: http://codereview.chromium.org/3397025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60488 0039d316-1c4b-4281-b951-d872f2087c98
* Committing http://codereview.chromium.org/3420004/show for grt@robertshield@chromium.org2010-09-221-39/+49
| | | | | | | | | | | | | | | | Original description: - added detection of IE9 for ChromeFrame.IEVersion metric - replaced ChromeFrame.FullTabLaunchType metric with ChromeFrame.LaunchType metric, which logs more info regarding how it came to be that GCF rendered a page (but only for the CTransaction patch) BUG=43885 TEST=none Review URL: http://codereview.chromium.org/3443017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60188 0039d316-1c4b-4281-b951-d872f2087c98
* More false positive crashes crash report suppressions.amit@chromium.org2010-09-021-0/+4
| | | | | | | | | | | | | | | Collect crash dump in the ReportData and ReportResult code path only if chrome frame is directly at fault. We are getting too much noise since this is high frequency intercept and quite popular code path for crashes. BUG=51488,44463 TEST=none Review URL: http://codereview.chromium.org/3295008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58397 0039d316-1c4b-4281-b951-d872f2087c98
* Fine grained supporessions for false positivesamit@chromium.org2010-09-011-12/+50
| | | | | | | | | | | | In order to supporess false positive crash reports, add ExceptionBarrierReportOnlyModule to places where we do not wrap the sink and just call original API. BUG=51960 Review URL: http://codereview.chromium.org/3309002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58239 0039d316-1c4b-4281-b951-d872f2087c98
* Remove all wstrings from the IPC logging subsystem.erg@google.com2010-08-181-0/+1
| | | | | | | | | | | | | | | | Changes all IPC Log methods from wstring to string. All static logging debug data changed from wchar[] to char[]. Various string conversion/numeric headers no longer need to be included in ipc_message_utils.h and have been removed (and added in all implementation files that require them). BUG=none TEST=none Review URL: http://codereview.chromium.org/3159013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56563 0039d316-1c4b-4281-b951-d872f2087c98
* Support rendering in Chrome Frame if the content-type of the top level ↵stoyan@chromium.org2010-08-171-11/+35
| | | | | | | | | | request is [application/xhtml+xml, image/svg, image/svg+xml, video/ogg, video/webm,video/mp4] or text/html BUG=51982 Review URL: http://codereview.chromium.org/3107019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56398 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 56241: Add an exceptionbarrier in Hook_Start(Ex). This is an attempt tostoyan@chromium.org2010-08-171-0/+4
| | | | | | | | | | reduce the amount of false positive crash reports - when exception is swallowed and is almost always not a problem due ChromeFrame code. BUG=51830 TBR=amit@chromium.org Review URL: http://codereview.chromium.org/3148015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56357 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 56241 - Add an exceptionbarrier in Hook_Start(Ex). This is an attempt ↵stoyan@chromium.org2010-08-161-3/+0
| | | | | | | | | | | | | to reduce the amount of false positive crash reports - when exception is swallowed and is almost always not a problem due ChromeFrame code. BUG=51830 Review URL: http://codereview.chromium.org/3171011 TBR=stoyan@chromium.org Review URL: http://codereview.chromium.org/3191003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56249 0039d316-1c4b-4281-b951-d872f2087c98
* Add an exceptionbarrier in Hook_Start(Ex). This is an attempt to reduce the ↵stoyan@chromium.org2010-08-161-0/+3
| | | | | | | | | | amount of false positive crash reports - when exception is swallowed and is almost always not a problem due ChromeFrame code. BUG=51830 Review URL: http://codereview.chromium.org/3171011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56241 0039d316-1c4b-4281-b951-d872f2087c98
* Restrict unsafe URLs in Chrome Frameamit@chromium.org2010-08-131-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Further tighten down what URLs can be loaded in Chrome Frame. Based on the feedback from the security review and code inspection, restrict about: scheme only to about:blank and about:version by default. Factor out logic blocking logic including for URL zone checking so that all ActiveX, ActiveDoc and NPAPI will follow the same path. As a result we now block restricted URL zones in NPAPI instance as well. Another side effect of this refactoring is that the registry flag, EnableGcfProtocol, is replaced by AllowUnsafeURLs. If If this flag is set, then all the security related checking is turned off. BUG=50741 TEST=By default gcf: works only for about:blank, about:version and view-source of http and https. Setting AllowUnsafeURLs to a non zero value should allow any URL be loaded via gcf: Review URL: http://codereview.chromium.org/3159006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56096 0039d316-1c4b-4281-b951-d872f2087c98
* Support GCF as the default HTML viewer as well as supporting an exclusion list.tommi@chromium.org2010-08-111-4/+4
| | | | | | | | | | | | | | | | | | | | | | | Now, there are two URL lists that we support and a master REG_DWORD value ("IsDefaultRenderer" ) to switch between them. Note that the OptInUrls key is no longer supported but the URL lists mentioned below function in the same way OptInUrls used to. This is basically how it works: if IsDefaultRenderer Url list name is "RenderInHostUrls" and lists patterns that the host (IE) should render. if not IsDefaultRenderer (i.e. it's 0) Url list name is "RenderInGcfUrls" and lists patterns that GCF should render. Also fixing typo :) TEST=See description above and in bug report. BUG= 50788 Review URL: http://codereview.chromium.org/3131003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55664 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 1)thestig@chromium.org2010-08-051-1/+0
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3071012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55034 0039d316-1c4b-4281-b951-d872f2087c98
* Protect against receiving different BINDSTATUS_MIMETYPEAVAILABLE multiple ↵stoyan@chromium.org2010-08-041-1/+15
| | | | | | | | times. Review URL: http://codereview.chromium.org/3038049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54979 0039d316-1c4b-4281-b951-d872f2087c98
* Remove number conversion functions from string_util. These moved to ↵brettw@chromium.org2010-08-031-1/+3
| | | | | | | | | | string_number_conversions. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3054036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54747 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash in ChromeFrame full tab mode while processing the attach ↵ananta@chromium.org2010-08-021-7/+32
| | | | | | | | | | | | | | | | | | | | | | | external tab request, which comes in during window open. We create a ProtData object instance which is mapped to the protocol with a NULL read function pointer which was used to indicate if this is a dummy request. It appears that there are cases where we may receive a StartEx call with a reused protocol pointer. which basically causes a crash in the context of IInternetProtocolSink::ReportData which internally calls IInternetProtocol::LockRequest, which crashes as the transaction never started. Fix is to invalidate the protdata mapping if the protdata has not been destroyed yet, but the underlying Transaction has been destroyed. This can happen if the original bind context has not yet been destroyed Fixes bug http://code.google.com/p/chromium/issues/detail?id=50814 Bug=50814,50956 Test=Subsequent CL. Review URL: http://codereview.chromium.org/3078010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54553 0039d316-1c4b-4281-b951-d872f2087c98
* Handle a case if BindContextInfo::FromBindContext fails and not leak a ↵tommi@chromium.org2010-07-301-0/+4
| | | | | | | | | | | ProtData instance. BUG=none TEST=fixes a potential memory leak. Review URL: http://codereview.chromium.org/2832097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54366 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that window.open requests issued by ChromeFrame carry the correct ↵ananta@chromium.org2010-07-281-3/+91
| | | | | | | | | | | | | | | | | | | | | cookies in the outgoing HTTP requests. To achieve this we no longer issue navigations with the gcf:attach* prefix. We now issue a navigation to the current page URL with the attach external tab suffix, which indicates that the page is forced into ChromeFrame without making an actual HTTP request. This ensures that the new IE8 process has access to all HTTP cookies. We need to patch IInternetProtocol::LockRequest and UnlockRequest to not call the underlying implementations for our dummy request as this crashes in IE8 in the prebinding code path. Fixes bug http://b/issue?id=2277519 Added tests for the CanNavigateFullTabMode helper function. Bug=2277519 Review URL: http://codereview.chromium.org/3051018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54019 0039d316-1c4b-4281-b951-d872f2087c98
* BUG=47879stoyan@chromium.org2010-07-171-6/+75
| | | | | | Review URL: http://codereview.chromium.org/2824057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52806 0039d316-1c4b-4281-b951-d872f2087c98
* Do not wrap non-HTTP(s) requests.stoyan@chromium.org2010-07-151-1/+7
| | | | | | Review URL: http://codereview.chromium.org/2893015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52494 0039d316-1c4b-4281-b951-d872f2087c98
* Implement HTTP headers sniffing in the ProtocolSinkWrap, instead of relying ↵stoyan@chromium.org2010-07-141-27/+56
| | | | | | | | | | | | on IHttpNegotiate patch. Moved some code based on over-conservative assumptions to execute earlier in pipeline. Will prevent BUG=38480 to manifest itself. BUG=47879 Review URL: http://codereview.chromium.org/2987001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52337 0039d316-1c4b-4281-b951-d872f2087c98
* Forward both BINDSTATUS_SERVER_MIMETYPEAVAILABLE and ↵stoyan@chromium.org2010-07-091-1/+0
| | | | | | | | | | BINDSTATUS_MIMETYPEAVAILABLE. BUG=48685 Review URL: http://codereview.chromium.org/2951006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51990 0039d316-1c4b-4281-b951-d872f2087c98
* Make new (CTransaction) hooking and sniffing mechanism the default one.stoyan@chromium.org2010-06-241-6/+18
| | | | | | Review URL: http://codereview.chromium.org/2822028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50750 0039d316-1c4b-4281-b951-d872f2087c98
* A new way of hooking internet protocols.stoyan@chromium.org2010-06-091-524/+481
| | | | | | | | TEST=chrome frame tests Review URL: http://codereview.chromium.org/2620001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49265 0039d316-1c4b-4281-b951-d872f2087c98
* Fix #1 for multiple request issue (both POST and GET) after activating the ↵tommi@chromium.org2010-03-121-1/+0
| | | | | | | | | | | | | | | | | | | | | onhttpequiv approach. There's a ton going on here. Brief summary: I'm introducing a caching layer for top level page requests that we then use again when switching the document from mshtml to cf. Also in this change list: * Removing the previous way of shifting the document moniker over to the worker thread when a new chrome document is created. Instead we use a request cache object. * Refactoring the part of the Bho class that offered access to it via TLS. This was needed for better testability but also makes (imho) the separation clearer and will possibly help in the future if we don't have a Bho object. * Added a bit of logging that I'd prefer to keep in there until we're confident enough with onhttpequiv. * Enabling two previously disabled tests (the ones I added for multiple requests) * Adding several more unit tests for the new code. Review URL: http://codereview.chromium.org/668187 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41495 0039d316-1c4b-4281-b951-d872f2087c98
* Temporarily disable the HTML renderer type detection in our ↵ananta@chromium.org2009-12-231-2/+0
| | | | | | | | | | | | IInternerProtocolSink::ReportProgress implementation as this causes the chrome frame tests to break. TBR=stoyan Review URL: http://codereview.chromium.org/515022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35244 0039d316-1c4b-4281-b951-d872f2087c98
* Fix ChromeFrame net tests broken by the change to determine the renderer ↵ananta@chromium.org2009-12-231-1/+11
| | | | | | | | | | | | | | | | | type in our IInternetProtocolSink::ReportProgress implementation. To determine the renderer type we try to read the data from the IInternetProtocol interface which in turn tries to determine the renderer type. Fix is to check if we are in the context of determining the renderer and bail. TBR=stoyan Bug=31031 Review URL: http://codereview.chromium.org/518012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35234 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeFrame in IE full tab mode would not render pages if Adblock Pro was ↵ananta@chromium.org2009-12-231-29/+49
| | | | | | | | | | | | | | | | | | | | | installed on the machine. Based on my debugging it looks like AdBlock gets confused because we report the mime type initally as text/html and then swich to application/chromepage. Fix is to attempt to determine the mime type in our IInternetProtocolSink::ReportProgress implementation. If we fail we continue to determine the mime type in IInternetProtocolSink::ReportData. Added a helper function CheckAndReportChromeMimeTypeForRequest which is invoked from both places. Fixes http://code.google.com/p/chromium/issues/detail?id=31031 Bug=31031 Review URL: http://codereview.chromium.org/501181 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35227 0039d316-1c4b-4281-b951-d872f2087c98
* Limit the X-UA-Compatible HTTP header-based altering of the mime type ↵robertshield@chromium.org2009-12-041-35/+14
| | | | | | | | | | | performed by Chrome Frame to top-level requests only in IE. BUG=having an iframe that requests a resource that includes the X-UA-Compatible header in the response will trigger CF taking over the page. TEST=BUG doesn't happen anymore. Review URL: http://codereview.chromium.org/465036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@33849 0039d316-1c4b-4281-b951-d872f2087c98
* Don't switch to CF's active document for frames or iframes.This fixes an ↵tommi@chromium.org2009-11-031-19/+40
| | | | | | | | issue where a page that uses CF would be loaded in an IFRAME on Google Images.Instead of attempting to load CF (not supported), we now defer to the host browser. Previously a blank page was displayed.TEST=Run new unit tests: FullTabModeIE_SubIFrame and FullTabModeIE_SubFrameBUG=22989 Review URL: http://codereview.chromium.org/343086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30782 0039d316-1c4b-4281-b951-d872f2087c98
* Add the chromeframe tag to the user agent header at runtime instead of ↵tommi@chromium.org2009-10-171-46/+6
| | | | | | | | statically in the registry.TEST=Try disabling GCF and see if the chromeframe tag in the user agent is still set. It should not be. Also make sure you don't have an older version installed... the chromeframe tag should not be in the registry - if it is, you've got an older version still registered. This should fix the issue with going to wave.google.com after disabling chrome frame and seeing the white page of death.R=amitBUG=22760 Review URL: http://codereview.chromium.org/259025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29370 0039d316-1c4b-4281-b951-d872f2087c98
* This fixes a crash in IE8 with ChromeFrame when a new tab was created. ananta@chromium.org2009-09-251-19/+85
| | | | | | | | | | | | | | | | | | | ChromeFrame VTable patches the IInternetProtocol interface for the CLSID_HttpProtocol and CLSID_HttpSProtocol handlers. However we were using the same VTable information to patch both the handlers essentially overwriting the first one. While this all worked purely by chance, it exposed a bug in IE8 where every new tab initially goes into a new process and if the chromeframe is unloaded we would leave behind an IInternetProtocol interface in urlmon patched, which would crash when dereferenced. Added a check in the VTable patching code for this case. This fixes bug http://code.google.com/p/chromium/issues/detail?id=22768 Bug=22768 Review URL: http://codereview.chromium.org/244002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27191 0039d316-1c4b-4281-b951-d872f2087c98
* Initial import of the Chrome Frame codebase. Integration in chrome.gyp ↵slightlyoff@chromium.org2009-09-241-0/+615
coming in a separate CL. BUG=None TEST=None Review URL: http://codereview.chromium.org/218019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27042 0039d316-1c4b-4281-b951-d872f2087c98