summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_active_document.h
Commit message (Collapse)AuthorAgeFilesLines
* window.open calls issued by pages within ChromeFrame would not honor the ↵ananta@chromium.org2010-06-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | suggested dimensions and would end up opening a default top level browser window in IE. ChromeFrame does receive the dimensions from the external tab container when it is notified about a popup being opened. Fix is to honor these dimensions by passing them off in the specially crafted url containing other arguments. Fixes bug http://code.google.com/p/chromium/issues/detail?id=42250 This fix is currently implemented for IE full tab mode only. Bug=42250 Test=Covered by augmenting the existing window open test to also validate the window size. Added a new unit test to test the ParseAttachExternalTabUrl helper function. Review URL: http://codereview.chromium.org/2867007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50064 0039d316-1c4b-4281-b951-d872f2087c98
* Add Support for window.close in ChromeFrame. Currently the CloseContents ↵ananta@chromium.org2010-06-071-0/+1
| | | | | | | | | | | | | | | | | | notification on the TabContentsDelegate which the ExternalTabContainer implements is ignored if the window close is not initiated from the host. Fix is to send over an automation message AutomationMsg_CloseExternalTab to the external host where we close the window. Currently this functionality is only provided by the active document. Fixes bug http://code.google.com/p/chromium/issues/detail?id=45930 Bug=45930 Test=Covered by chrome frame unit test FullTabModeIE_WindowCloseInChrome Review URL: http://codereview.chromium.org/2691004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49093 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify Chrome Frame usage of Chrome identifiers by simply using the Chrome ↵pkasting@chromium.org2010-05-281-3/+3
| | | | | | | | | | identifiers directly. This required renaming a few identifiers to avoid macro renaming conflicts when including the Chrome headers. BUG=none TEST=none Review URL: http://codereview.chromium.org/2359002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48543 0039d316-1c4b-4281-b951-d872f2087c98
* Switch renderer in Moniker patchamit@chromium.org2010-04-091-3/+3
| | | | | | | | | | 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
* Add encoding override support for Chrome frame. With this change, users can ↵jnd@chromium.org2010-04-011-1/+87
| | | | | | | | | | | | | | | override current page encoding in Chrome Frame via clicking IE's encoding menu. Unfortunately this change does not work on IE8 since the encoding menu is off on IE8. This change was from http://codereview.chromium.org/460036/show, which was on a temporary machine which I can not access from China now. I will re-create the patch, make some modifications according to previous reviewers' comments. now I send to you for review. BUG=24040 TEST=none Review URL: http://codereview.chromium.org/1530012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43306 0039d316-1c4b-4281-b951-d872f2087c98
* Make (&CGID_Explorer, SBCMDID_MIXEDZONE) command more sane.stoyan@chromium.org2010-03-241-1/+1
| | | | | | | Add test for navigation to sites in restricted sites zone. Review URL: http://codereview.chromium.org/1217001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42484 0039d316-1c4b-4281-b951-d872f2087c98
* Initial support for IE View->Privacy. To support this menu option the active ↵ananta@chromium.org2010-03-191-0/+28
| | | | | | | | | | | | | | | | | | | | | | | document now implements the Exec command for the CGID_ShellDocView group and command id 75. We invoke the DoPrivacyDlg function exported by shdocvw and pass in our implementation of the IEnumPrivacyServices interface. The actual privacy data is gathered and maintained by the UrlmonUrlRequestManager. If we detect a privacy violation we notify the shell browser via the ITridentService2::FirePrivacyImpactedStateChange function which ensures that IE displays the privacy icon. Thanks to stoyan for his help in getting this done. I will add tests in a followup CL. Fixes bug http://code.google.com/p/chromium/issues/detail?id=25479 Bug=25479 Review URL: http://codereview.chromium.org/1127003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42113 0039d316-1c4b-4281-b951-d872f2087c98
* More integration with host (InternetExplorer) popup blocker.stoyan@chromium.org2010-03-151-1/+7
| | | | | | | BUG=34823 Review URL: http://codereview.chromium.org/907005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41595 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeFrame now uses host provided popup blocker.stoyan@chromium.org2010-03-081-2/+3
| | | | | | | | | | | It does not work in all scenarions since from Chrome side an empty string is passed as target url. Note in IE6 "Tools/Popup Blocker" menu is not visible if ChromeFrame is the activedocument. Have to support some IOleCommandTarget command.. BUG=34823 Review URL: http://codereview.chromium.org/668168 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@40897 0039d316-1c4b-4281-b951-d872f2087c98
* We need to support the following accelerators in the ChromeFrame Active ↵ananta@chromium.org2010-02-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | document, to ensure that the following accelerators navigate backwards and forwards in IE history. 1. VK_BACK and Alt + VK_LEFT to navigate back. 2. Shift + VK_BACK and Alt + VK_RIGHT to navigate forward. This CL adds support for this. We load the accelerator table in our Active document and when we receive an accelerator from Chrome, we first call the Windows API TranslateAccelerator to translate any accelerators and then continue with the default handling. Added handlers for navigating back and forward. Test=covered by unit test. Fixes bug http://code.google.com/p/chromium/issues/detail?id=35629 Bug=35629 Review URL: http://codereview.chromium.org/600117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39208 0039d316-1c4b-4281-b951-d872f2087c98
* Fix IOleCommandTarget::Exec handling taking into account command group id.stoyan@chromium.org2010-02-111-30/+36
| | | | | | | | BUG=none TEST=chrome_frame_tests Review URL: http://codereview.chromium.org/594034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38710 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for the IE File->Save As command. This eventually ends up in ↵ananta@chromium.org2010-02-041-0/+1
| | | | | | | | | | | | | | | | Chrome via the new automation message AutomationMsg_SaveAsAsync. Rest of the changes are to plumb this message across from IE to Chrome. Fixes bug http://code.google.com/p/chromium/issues/detail?id=24039 Bug=24039 Test=Launch IE with OptinUrls set to *. Navigate to google.com and select File->Save As. The dialog should popup. Review URL: http://codereview.chromium.org/563025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38145 0039d316-1c4b-4281-b951-d872f2087c98
* Remove cf: protocolamit@chromium.org2010-02-031-3/+1
| | | | | | | | | | | | | | | | | | | | Well, almost. cf: is now changed to gcf: protocol. gcf: protocol now is supported only for the following cases: 1. gcf:attach_external_tabXXX urls. These are URLs used internally by Chrome Frame to implement window.open 2. gcf:about:xxx 3. gcf:view-source:xxx 4 For any other URLs ONLY if it is enabled by setting a registry value 'EnableGCFProtocol' to 1 in HKCU\Software\Google\ChromeFrame BUG=22721,23006,23175,29350 TEST=changed existing cf: tests to new gcf: tests, added a new test for cf:view-source Review URL: http://codereview.chromium.org/562008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37981 0039d316-1c4b-4281-b951-d872f2087c98
* TEST=new tests added.stoyan@chromium.org2010-02-011-4/+0
| | | | | | Review URL: http://codereview.chromium.org/545093 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37728 0039d316-1c4b-4281-b951-d872f2087c98
* Some Chrome Frame cleanup:robertshield@chromium.org2010-01-051-2/+0
| | | | | | | | | | | | | | | | | | 1) Rearrange the chrome_frame.gyp file to: a) Split out most of CF into a static lib to make writing unit tests easier (not having to re-include source files). b) Remove most of the un-needed xulrunner-sdk includes. 2) Move all OBJECT_ENTRY_AUTO macros to chrome_tab.cc since they don't work without extra work when residing in a lib. 3) Rename npchrome_tab.dll to npchrome_frame.dll. BUG=none TEST=none Review URL: http://codereview.chromium.org/523040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@35543 0039d316-1c4b-4281-b951-d872f2087c98
* Handle right-click->"Save Link As" in the host browser.tommi@chromium.org2009-12-161-1/+1
| | | | | | | | | TEST=Right click on a link in CF and select "save link as". You should immediately get the host browser's download UI. Before there could be a significant wait before this happened. BUG=23561 Review URL: http://codereview.chromium.org/506042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34783 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that the renderer has focus when ChromeFrame navigates to a URL in IE ↵ananta@chromium.org2009-11-191-0/+3
| | | | | | | | | | | | | full tab mode. This fixes bug http://code.google.com/p/chromium/issues/detail?id=22745 Test=Covered by unit test. Bug=22745 Review URL: http://codereview.chromium.org/402079 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32497 0039d316-1c4b-4281-b951-d872f2087c98
* Back/Forward support for url fragmentsamit@chromium.org2009-11-191-9/+43
| | | | | | | | | | | | | | | | | Added support for anchor (url fragments). this involves mainly implementing IPersistHistory. The rest of the stuff is a song and dance to get called in IPersistHistory in the first place and then behave correctly when we do. BUG=23981 TEst=unit tests added and back forward with '#' URLs, sub frames etc. Review URL: http://codereview.chromium.org/371004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32454 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeFrame HTTP requests would randomly fail if we navigated to multiple ↵ananta@chromium.org2009-11-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HTTP sites. This was because the automation resource message filter tracked HTTP requests based on the request ids which are generated by the renderer process. As a result a new request would get created say with id 0, while an existing request would end in ChromeFrame causing the new request to incorrectly shutdown. Fix is to revert back to the original way of tracking requests with an auto incrementing id. The automation url job maintains both ids now, i.e. the automation request id and the chrome request id. The download notification receives the automation id and basically looks up the associated automation request id and sends the notification back to ChromeFrame. This fixes bug http://code.google.com/p/chromium/issues/detail?id=27401 Other fixes in this CL include the following:- 1. The active document instance would never get destroyed. This was because we call ShowUI on the doc host which maintains a reference. We need to call HideUI in Setsite of NULL, which releases the reference. 2. When the active x instance is shutting down we try to shutdown all running requests in the OnDestroy handler. To ensure that the request is deleted from the request map and released in the same thread which created it we post a task back to the ui thread which never runs as the window is being destroyed. Fix is to create a message only window with every urlmonrequest instance which supports task marshaling. Tests in a future CL. Bug=27401 Review URL: http://codereview.chromium.org/386008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31731 0039d316-1c4b-4281-b951-d872f2087c98
* When Chrome hands off a URL to be opened by the external host by the ↵ananta@chromium.org2009-10-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | ViewHostMsg_OpenURL IPC, it needs to pass the referrer as well. The Chrome fixes in this CL are mostly related to passing the HTTP referer off to the browser and from there to the ExternalTabContainer to ChromeFrame and back. The ChromeFrame changes are basically around the same lines with one exception. When we handle the AutomationMsg_OpenURL IPC in the activex and the active document we pass the referer if applicable to the WebBrowser2::Navigate2 interface, which is then read by the BHO in BeforeNavigate2. We then save away an AddRef'ed BHO pointer in TLS which is then referenced by the Active document for reading the referer and passing it off to Chrome in the NavigateInExternalTab message. Added a unit test in ChromeFrame which tests this case. This fixes http://code.google.com/p/chromium/issues/detail?id=22994 Bug=22994 Review URL: http://codereview.chromium.org/274071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@29420 0039d316-1c4b-4281-b951-d872f2087c98
* This CL is for the needs of ChromeFrame.stoyan@google.com2009-10-131-0/+1
| | | | | | | | | | | | TabContentsDelegate implementation may override navigations caused by JsvaScript history object. Yet not perfect since webkit view of navigation stack differs from the view of external-non-Chrome-host-browser. We have to provide the full stack from host-browser (+visited links alongside) in the same way as Chrome-browser provides it to renderer. BUG=24004 Review URL: http://codereview.chromium.org/261046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28818 0039d316-1c4b-4281-b951-d872f2087c98
* Added support for specifying the BrowserFlags DWORD value when we register ↵ananta@chromium.org2009-10-061-0/+14
| | | | | | | | | | | | | | | | | | | | | | the ChromeFrame Active Document server. This allows the document server to receive a number of menu events like Find, View->Text Size, etc. Thanks to Stoyan for helping me debug this :) Clicking on Edit->Find in the menu in IE with this causes IEFrame to call our Active document's Exec implementation with the IDM_FIND command. The handling here is to invoke our default Find handling. Added support for honoring user text size selections. The next thing to be done is to honor the current text size setting while launching Chrome. I also fixed the rgs files to have LF as the terminating character. This fixes Bug http://code.google.com/p/chromium/issues/detail?id=23667 Bug=23667 Review URL: http://codereview.chromium.org/243082 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28085 0039d316-1c4b-4281-b951-d872f2087c98
* Currently in full tab mode IE displays the security zone as Unknown. This CL ↵ananta@chromium.org2009-09-251-10/+34
| | | | | | | | | | | | | | | | | | | | | | | fixes that by returning URLZONE_INTERNET for most of the URLs, as we cannot directly map them to internal/external URLs. The reason being Chrome would need to honor the security settings from IE based on the zone. We also disallow navigation in ChromeFrame for restricted URLs. This fixes bug http://b/issue?id=2059403 This CL also fixes the stray issues with cf:attach_external_tab being visible in the tab title at times. This can be easily reproduced if the tabs being opened are background tabs. To set the title we call Exec on the IOleCommandTarget exposed by the frame. This is queried off the IOleInPlaceSite interface which is maintained by the m_spInPlaceSite member variable in CComControlBase. This member is not set when the tab is opened as a background tab and only gets set when it is activated. The fix is to query the IOleInPlaceSite interface from the IOleClientSite interface if the m_spInPlaceSite is not set. This fixes http://b/issue?id=2119243 Bug=2059403,2119243 Review URL: http://codereview.chromium.org/220042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27274 0039d316-1c4b-4281-b951-d872f2087c98
* Initial import of the Chrome Frame codebase. Integration in chrome.gyp ↵slightlyoff@chromium.org2009-09-241-0/+258
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