summaryrefslogtreecommitdiffstats
path: root/chrome_frame/bho.cc
Commit message (Collapse)AuthorAgeFilesLines
* Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h.tfarina@chromium.org2011-04-121-16/+16
| | | | | | | | | | | | | | | | | 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
* A change in the way User Agent is modified caused Chrome Frame to mistakenly ↵erikwright@chromium.org2011-04-051-19/+2
| | | | | | | | | | disable itself when installing into pre-existing IE processes. BUG=60018 TEST=Open IE when Chrome Frame is not installed. Install Chrome Frame. Instantiate the Chrome Frame ActiveX control and call registerBhoIfNeeded. Visit wordpress.com and verify that ChromeFrame is activated. Review URL: http://codereview.chromium.org/6691063 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80497 0039d316-1c4b-4281-b951-d872f2087c98
* Bump up the number of simultaneous connections in IE to 6. This is done via ↵ananta@chromium.org2011-02-161-0/+6
| | | | | | | | | | | | | | | a WinInet API InternetSetOption. Fixes bug http://code.google.com/p/chromium/issues/detail?id=50328 BUG=50328 TEST=none Review URL: http://codereview.chromium.org/6480092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75162 0039d316-1c4b-4281-b951-d872f2087c98
* A number of poorly written IE BHO's crash IE if ChromeFrame is the currently ↵ananta@chromium.org2011-02-111-1/+5
| | | | | | | | | | | | | | | | | | | | | | | loaded document. This is because they expect ChromeFrame to implement interfaces like IHTMLDocument2 on the same lines as regular IE documents. Currently in ChromeFrame we patch the invoke methods of these BHO's prior to firing navigation events from ChromeFrame. However this is not enough as these objects also crash for regular navigation events fired from IE when ChromeFrame is loaded. We now don't fire navigation events for buggy BHO's if ChromeFrame is the current document. The BuggyBho handler instance is now created once for the thread. We patch when we receive navigation notifications from Chrome as before. When we receive a notification on our patched event sink we check if CF is loaded and if yes skip the call. Added helpers to chrome frame utils to check if CF is loaded in the current web browser instance. BUG=55932 TEST=none Review URL: http://codereview.chromium.org/6493002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74691 0039d316-1c4b-4281-b951-d872f2087c98
* Unpatch the ChromeFrame IHttpNegotiate patch for all browsers.ananta@chromium.org2011-01-201-3/+1
| | | | | | | | | | BUG=70138 TEST=none TBR=amit Review URL: http://codereview.chromium.org/6382005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72043 0039d316-1c4b-4281-b951-d872f2087c98
* Enable the ChromeFrame IHttpNegotiate patch for all IE versions. Ensure that ↵ananta@chromium.org2011-01-201-6/+1
| | | | | | | | | | | | | | | | Chrome's UA is sent out from IE in case Chrome is the default renderer for IE. Fixes bug http://code.google.com/p/chromium/issues/detail?id=70138 BUG=70138 TEST=As described in the bug at this point. Unit tests for this will follow. Review URL: http://codereview.chromium.org/6279006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71887 0039d316-1c4b-4281-b951-d872f2087c98
* Integrate the Ready Mode prompt with IE and Chrome Frame. In Ready Mode, ↵erikwright@chromium.org2011-01-121-1/+44
| | | | | | | | | | 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
* Restore the IHttpNegotiate patch in ChromeFrame for IE9 which sends the ↵ananta@chromium.org2010-12-171-3/+9
| | | | | | | | | | | | | | | short UA string by default without the Post Platform values which we rely on. This reverts back to the old behavior for IE9 with the bug that certain top level requests like Refresh on a page rendered in IE will be sent out with the UA string without the chrome frame suffix. BUG=45087 TEST=Covered by old http negotiate unit test. Review URL: http://codereview.chromium.org/5957001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69586 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ChromeFrame UA in the post platform section in the IE user agent ↵ananta@chromium.org2010-12-161-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | string. To achieve this we need to add the desired value in the registry under the Internet Settings\User Agent\Post Platform key. We add this under the per user or per machine section in the registry depending on whether ChromeFrame is being installed in per user or per machine mode. This fixes the bug where certain top level requests in IE would not have the chrome frame UA appended to the IE UA. Removed the BeginningTransaction vtable patch code, which only existed to add chrome frame to the UA in outgoing requests. The limitation with registering the chrome frame UA in the registry is that it will be sent out even in the ChromeFrame BHO is disabled. Fixes bug http://code.google.com/p/chromium/issues/detail?id=45087 BUG=45087 TESt=Covered by new chrome frame test. Review URL: http://codereview.chromium.org/5831002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69442 0039d316-1c4b-4281-b951-d872f2087c98
* Refreshing a ChromeFrame page which was received in response to a top level ↵ananta@chromium.org2010-12-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | POST to a page in IE should reissue the POST request after bringing up a confirmation dialog. This CL adds support to ChromeFrame to achieve this. Ideally we would want IE to display the confirmation dialog for the POST. However the doc object host which is implemented by IEFrame expects the doc object to implement the IHTMLDocument interface and a bunch of private interfaces. To reissue the POST request we save away the POST data and headers in the navigation manager instance which is per BHO. When we refresh the page in ChromeFrame the active document on seeing that we have posted data issues a navigation back to the URL with the posted data and saved headers. All other refreshes continue to work the same way as before, i.e. the refresh request is sent to Chrome on the automation channel. The confirmation dialog is put up by the active document with the same text and caption as that in Chrome. Fixes bug http://code.google.com/p/chromium/issues/detail?id=64901 BUG=64901 TEST=Covered by new ChromeFrame unit test Review URL: http://codereview.chromium.org/5595002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68213 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a bug where in having ChromeFrame installed on the machine would cause a ↵ananta@chromium.org2010-11-011-17/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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
* 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-7/+7
| | | | | | | | | | 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
* chrome_frame: Append base:: in the StringPrintf calls.tfarina@chromium.org2010-10-011-2/+3
| | | | | | | | | | | (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
* Committing http://codereview.chromium.org/3420004/show for grt@robertshield@chromium.org2010-09-221-1/+1
| | | | | | | | | | | | | | | | 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
* Pin the DLL if we make any patches instead of doing it from the Bho that ↵tommi@chromium.org2010-09-021-22/+0
| | | | | | | | | | | does not apply the patches itself. TEST=There should be no changes but we were seeing some potential problems in house with other proprietary browser extensions. BUG=none Review URL: http://codereview.chromium.org/3359001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58350 0039d316-1c4b-4281-b951-d872f2087c98
* Restrict unsafe URLs in Chrome Frameamit@chromium.org2010-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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
* FBTF: Remove unneeded headers from base/ (part 1)thestig@chromium.org2010-08-051-3/+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
* BUG=47879stoyan@chromium.org2010-07-171-4/+5
| | | | | | Review URL: http://codereview.chromium.org/2824057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52806 0039d316-1c4b-4281-b951-d872f2087c98
* Move the crash metrics to the crash reproting lib to avoid a back dependency ↵mad@google.com2010-06-121-1/+1
| | | | | | | | | | | on Chrome Frame. BUG=0 TEST=none Review URL: http://codereview.chromium.org/2776010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49635 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for uploading UMA metrics data from ChromeFrame. Added support ↵ananta@chromium.org2010-06-111-0/+27
| | | | | | | | | | | | | | | | for tracking chrome frame crash metrics via 2 new counters which track successful navigations and crashes. These counters are persisted in the registry under HKCU\Software\Google\ChromeFrameMetrics. Any other histogram data like AutomationServer launch time, IE versions etc are simply dropped if IE is shutdown before they are sent out. The metrics data is uploaded on similar lines as Chrome. Bug=46057 Review URL: http://codereview.chromium.org/2714003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49493 0039d316-1c4b-4281-b951-d872f2087c98
* A new way of hooking internet protocols.stoyan@chromium.org2010-06-091-5/+4
| | | | | | | | 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
* Check if the url is a top level url before clearing the referrer header.tommi@chromium.org2010-04-231-0/+2
| | | | | | | | | TEST=n/a BUG=none Review URL: http://codereview.chromium.org/1745007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45391 0039d316-1c4b-4281-b951-d872f2087c98
* Only switch to cf for text/html. With opt-in URLs we could mark a URL to be ↵tommi@chromium.org2010-04-211-0/+1
| | | | | | | | | | | loaded in CF regardless of the target mime type. If CF turns around and wants to download the target, we would hit an infinite loop. TEST=Verify that issue 40046 is resolved. OptIn urls should work with the moniker patch and downloads should not cause an infinite loop. BUG=40046 Review URL: http://codereview.chromium.org/1715004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45226 0039d316-1c4b-4281-b951-d872f2087c98
* In ChromeFrame with the moniker patch enabled we should not process optin ↵ananta@chromium.org2010-04-201-5/+4
| | | | | | | | | | | | urls in the BHO. Fixes bug http://code.google.com/p/chromium/issues/detail?id=42155 Bug=42155 Review URL: http://codereview.chromium.org/1706003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45117 0039d316-1c4b-4281-b951-d872f2087c98
* Enable the ChromeFrame IMoniker patch by default now.ananta@chromium.org2010-04-201-1/+1
| | | | | | Review URL: http://codereview.chromium.org/1650015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44991 0039d316-1c4b-4281-b951-d872f2087c98
* With the ChromeFrame IMoniker patch in the referrer would not propagate ↵ananta@chromium.org2010-04-161-0/+1
| | | | | | | | | | | | | | | | | | | | correctly to Chrome when we switch from IE to CF. In ChromeFrame the referrer is set in the navigation manager which receives this in the IHttpNegotiate::BeginningTransaction patch. When we switch from IE to cF via the moniker patch we receive two calls to BeginningTransaction, the first one with the referrer and the other one without the referrer for the same URL causing the referrer to be overwritten. Fix is to handle this case. The referrer is cleared in our BeforeNavigate notification. I also moved some functions to chrome frame utils as part of this CL. Fixes bug http://code.google.com/p/chromium/issues/detail?id=41680 Bug=41680 Review URL: http://codereview.chromium.org/1653006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44733 0039d316-1c4b-4281-b951-d872f2087c98
* Switch renderer in Moniker patchamit@chromium.org2010-04-091-17/+6
| | | | | | | | | | Step one of the changes. Inspect data and cause a switch in the moniker patch. Review URL: http://codereview.chromium.org/1589013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44038 0039d316-1c4b-4281-b951-d872f2087c98
* Disabling the moniker patch in ChromeFrame as it incorrectly causes pages to ↵ananta@chromium.org2010-04-051-1/+1
| | | | | | | | | | | | | | switch to ChromeFrame, even when they don't specify the meta tag or the HTTP header indicating the same. Fixes bug http://code.google.com/p/chromium/issues/list?cursor=40124 Bug=40124 Review URL: http://codereview.chromium.org/1623001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43640 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes GCF perf tests in prep for re-enabling them on the bots.slightlyoff@chromium.org2010-03-261-3/+4
| | | | | | | | | BUG=36734 TEST=build/run chrome_frame_perftests.exe, note that they all run now Review URL: http://codereview.chromium.org/1433002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42870 0039d316-1c4b-4281-b951-d872f2087c98
* Not freeing the cached request data when we get OnHttpEquiv(done==TRUE) and ↵tommi@chromium.org2010-03-251-4/+9
| | | | | | | | | | | | | the browser is tagged for CF navigation. I found that if I load a CF page, then go to the address bar and press enter, we will actually get both OnHttpEquiv(done==false) and then followed by OnHttpEquiv(done==TRUE) even though we kicked off a new navigation in between. When this happened we would clear the cache in OnHttpEquiv(done==true) and subsequently we'd have to go to the network to fetch the content once CF is instantiated. TEST=See description. BUG=none Review URL: http://codereview.chromium.org/1330001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42675 0039d316-1c4b-4281-b951-d872f2087c98
* Enable the moniker patch by default.tommi@chromium.org2010-03-231-1/+1
| | | | | | | | | | TBR=amit BUG=none TEST=This enables PatchProtocols=2 by default. Review URL: http://codereview.chromium.org/1171001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42294 0039d316-1c4b-4281-b951-d872f2087c98
* Fix top crashers in the latest build.amit@chromium.org2010-03-191-1/+2
| | | | | | | | | | | Fixes crashes due to NavigationManager instance being NULL. TBR=tommi BUG=38602,38603 Review URL: http://codereview.chromium.org/1100006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42083 0039d316-1c4b-4281-b951-d872f2087c98
* When ChromeFrame switches to IE on receiving the OnHttpEquiv notification ↵ananta@chromium.org2010-03-151-2/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | indicating the presence of a meta tag indicating that the page is to be rendered in Chrome, we check if the notification is received for a site rendered in an IFrame to ensure that we don't switch in this case. This code is not reliable and we end up assuming that a top level navigation is actually an embedded frame. Attempting another approach to detect the dummy IWebBrowser2 iframe instances which mshtml creates for top level navigations which results in the IE to Chrome switch not working reliably. The location for these dummy browsers is set to about:blank. We now check for the same and ignore these. I have added comments in the code indicating why we are doing this and the cases where it could break. It should be fine for most common cases as this code is only hit when the page has a meta tag. Will revisit this. This fixes http://code.google.com/p/chromium/issues/detail?id=36825 Bug=36825 Test=Covered by unit test. Review URL: http://codereview.chromium.org/911003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41645 0039d316-1c4b-4281-b951-d872f2087c98
* Fix #1 for multiple request issue (both POST and GET) after activating the ↵tommi@chromium.org2010-03-121-127/+54
| | | | | | | | | | | | | | | | | | | | | 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
* Reverting due to two broken tests: FullTabModeIE_SubIFram and ↵ericu@google.com2010-03-121-48/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | FullTabModeIE_UnloadEventTest. Revert 41463 - When ChromeFrame switches to IE on receiving the OnHttpEquiv notification indicating the presence of a meta tag indicating that the page is to be rendered in Chrome, we check if the notification is received for a site rendered in an IFrame to ensure that we don't switch in this case. This code is not reliable and we end up assuming that a top level navigation is actually an embedded frame. To work around this we now maintain a pending navigation count in BeforeNavigate2, which is decremented in NavigateComplete2 and NavigateError. We perform the check for an embedded document only if the pending navigation count is greater than 1. This fixes http://code.google.com/p/chromium/issues/detail?id=36825 The other change made is to add a delay of 100ms in SendString between each character to better reflect actual timing for real user input. Bug=36825 Review URL: http://codereview.chromium.org/837008 TBR=ananta@chromium.org Review URL: http://codereview.chromium.org/877009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41477 0039d316-1c4b-4281-b951-d872f2087c98
* When ChromeFrame switches to IE on receiving the OnHttpEquiv notification ↵ananta@chromium.org2010-03-121-9/+48
| | | | | | | | | | | | | | | | | | | | | | | indicating the presence of a meta tag indicating that the page is to be rendered in Chrome, we check if the notification is received for a site rendered in an IFrame to ensure that we don't switch in this case. This code is not reliable and we end up assuming that a top level navigation is actually an embedded frame. To work around this we now maintain a pending navigation count in BeforeNavigate2, which is decremented in NavigateComplete2 and NavigateError. We perform the check for an embedded document only if the pending navigation count is greater than 1. This fixes http://code.google.com/p/chromium/issues/detail?id=36825 The other change made is to add a delay of 100ms in SendString between each character to better reflect actual timing for real user input. Bug=36825 Review URL: http://codereview.chromium.org/837008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41463 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash reported in ChromeFrame on the crash server, which occurs ↵ananta@chromium.org2010-03-101-10/+15
| | | | | | | | | | | | | | | | because the VARIANT representing the URL has a NULL bstrVal. Fix is to check for the same. Fixes bug http://code.google.com/p/chromium/issues/detail?id=37872 Bug=37872 Review URL: http://codereview.chromium.org/822005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41208 0039d316-1c4b-4281-b951-d872f2087c98
* Do not attempt to parse NULL headers.tommi@chromium.org2010-02-281-0/+2
| | | | | | | | | | TBR=amit TEST=fixes one of the top crashes in the lastest release. BUG=36985 Review URL: http://codereview.chromium.org/661256 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40234 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for referrer flakyness. There were two problems:tommi@chromium.org2010-02-181-24/+49
| | | | | | | | | | | | | | | Grabbing the referrer header when the request is made and not in BeforeNavigate2. The request headers aren't always available in BeforeNavigate2. Mshtml provides these headers in IHttpNegotiate::BeginningTransaction, which is where we now grab them. There was a race in chrome_frame_automation.cc where we use std::string to store the referrer url and then access that string from different threads. This was causing the referrer URL to be missing at some times and at other times be sent over to chrome as bad string (e.g. containing embedded nulls) and subsequently be deemed an invalid URL and dropped. TEST=Fixes referrer header flakyness. BUG=34812 Review URL: http://codereview.chromium.org/646013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39383 0039d316-1c4b-4281-b951-d872f2087c98
* Enable onhttpequiv again. The difference this time around is that wetommi@chromium.org2010-02-051-104/+77
| | | | | | | | | | | | | perform the switch in onhttpequiv when done==false. Also, we don't rely on having access to the already existing moniker but instead create our own and DCHECK that it is IsRunning() (see comments). TEST=The double loading effect we were seeing before should be gone. BUG=33332 Review URL: http://codereview.chromium.org/576017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38232 0039d316-1c4b-4281-b951-d872f2087c98
* Enable optinurls regardless of PatchHelper::state().tommi@chromium.org2010-02-021-22/+26
| | | | | | | | | | | Also refactored the OptinUrls code into a separate function. TEST=The OptinUrls feature should work. BUG=none Review URL: http://codereview.chromium.org/561002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37796 0039d316-1c4b-4281-b951-d872f2087c98
* Disabling onhttpequiv again due to page reload issues.tommi@chromium.org2010-01-301-1/+1
| | | | | | | | | TEST=Make sure unit tests still pass. BUG=33332 Review URL: http://codereview.chromium.org/555178 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37584 0039d316-1c4b-4281-b951-d872f2087c98
* Avoid a DCHECK. Check if the interface is already patched before patching.tommi@chromium.org2010-01-251-2/+4
| | | | | | | | | | TEST=This avoids a DCHECK that could happen when viewing the source of an html page. BUG=none TBR=robertshield Review URL: http://codereview.chromium.org/553073 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37044 0039d316-1c4b-4281-b951-d872f2087c98
* Implement OptInUrls using the same mechanism we use in the onhttpequiv ↵tommi@chromium.org2010-01-221-18/+8
| | | | | | | | | | | | | notification. A noteworthy change here is that OptInUrls doesn't rely on cf: anymore. TEST=The OptInUrls registry key should start working properly again. BUG=32660 Review URL: http://codereview.chromium.org/549129 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36874 0039d316-1c4b-4281-b951-d872f2087c98
* If we navigate to a URL which has an anchor in IE, which eventually ends up ↵ananta@chromium.org2010-01-221-4/+19
| | | | | | | | | | | | | | | | | | | | | in ChromeFrame, the actual URL queried from the moniker passed in to our implementation of IPersistStream::Load does not have the anchor. It looks like there are some private interfaces exposed by MSHTML and invoked by IEFrame to pass this information over. Our fix is to save away the url received in our Bho BeforeNavigate2 notification and use this URL if available before querying the moniker for the URL. This needs to be done in IPersistStream::Load and in the OnHttpEquiv patch when we initiate a navigation to the actual URL using the moniker. Fixes bug http://code.google.com/p/chromium/issues/detail?id=27270 Bug=27270 Test=Covered by unit test. Review URL: http://codereview.chromium.org/542096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36814 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for back/forward issue with httpequiv patch.tommi@chromium.org2010-01-201-0/+28
| | | | | | | | | | | | After reissuing a cf navigation we now remove the previous entry from the travellog to preserve the correct navigation history. Also updating the BackForward unit tests to expect two pairs of BeforeNavigate/NavigateComplete notification when we transition from IE to CF. TEST=Run *BackForward* unit tests BUG=32550 Review URL: http://codereview.chromium.org/549092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36594 0039d316-1c4b-4281-b951-d872f2087c98
* Enabling the onhttpequiv detection and temporarily disabling a few tests ↵tommi@chromium.org2010-01-191-1/+1
| | | | | | | | | | | that will fail for a day or two while we adapt. TEST=Run all unit tests. BUG=none Review URL: http://codereview.chromium.org/552038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36507 0039d316-1c4b-4281-b951-d872f2087c98
* Updates for onhttpequiv. Preserving the referrer header, zapping the ↵tommi@chromium.org2010-01-161-6/+80
| | | | | | | | | | | | | currently loading document to prevent small documents from executing code. I'm not enabling httpequiv just yet as there are a couple of things I'm working on related to tests that will break once I make the switch. TEST=There should be no change since the code isn't still active but run all tests just to be safe. BUG=none Review URL: http://codereview.chromium.org/545096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36436 0039d316-1c4b-4281-b951-d872f2087c98
* Flick the switch back to PATCH_PROTOCOL while sorting out a few failing unit ↵tommi@chromium.org2010-01-121-1/+1
| | | | | | | | | tests on the builder. TBR=robertshield git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36010 0039d316-1c4b-4281-b951-d872f2087c98