summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_active_document.h
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup: Remove forward declarations in various directories.thestig@chromium.org2011-11-181-2/+1
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/8567022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110631 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a back forward bug in ChromeFrame reported on the field. The bug occurs ↵ananta@chromium.org2011-08-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | when multiple navigations are performed within IE + CF with some originating from IE and others within Chrome. The CF active document implementation had some code to reuse the active document instance in case a new CF navigation occurred within the current tab. This was for optimization, i.e. to ensure that we don't tear down and create a new instance of Chrome. This basically messed up the document destruction order causing the IE tab history to get populated with information coming from deleted active document instances at times. In any case this optimization is no longer necessary as we have a proxy cache maintained in the automation client in CF which ensures that we don't inadvarently tear down and create new chrome instances. Fixes bug http://code.google.com/p/chromium/issues/detail?id=90424 BUG=90424 Review URL: http://codereview.chromium.org/7627005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97177 0039d316-1c4b-4281-b951-d872f2087c98
* Move modified ATL sample code to third_partyamit@chromium.org2011-05-031-2/+2
| | | | | | | | | No code modifications other than removing chromium licence block. BUG=80617 TEST=none Review URL: http://codereview.chromium.org/6901059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83979 0039d316-1c4b-4281-b951-d872f2087c98
* Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h.tfarina@chromium.org2011-04-121-3/+3
| | | | | | | | | | | | | | | | | 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
* Chrome frame support for resizing popup windowsjoshia@google.com2011-03-291-6/+1
| | | | | | | | | | | | | Add necesssary plumbing for window.resizeTo to work within Chrome Frame. BUG=76649 TEST=create a popup window using window.open and resize it using window.resizeTo. Sample test page is here: http://testopenpopup.comuf.com/popUp.html Review URL: http://codereview.chromium.org/6748010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79737 0039d316-1c4b-4281-b951-d872f2087c98
* Move some files from base to base/memory.levin@chromium.org2011-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Remove includes of message headers in headers.jam@chromium.org2011-02-091-1/+1
| | | | | | Review URL: http://codereview.chromium.org/6458004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74257 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a ChromeFrame Back Forward navigation issue which occurs when we modify ↵ananta@chromium.org2011-01-151-2/+3
| | | | | | | | | | | | | | | | | | the IE history while processing a navigation update received for a tab loading state change. This is incorrectly treated as an internal navigation which messes up the history. Fix is to not treat the tab loading state change notification as an internal navigation. Fixes bug http://code.google.com/p/chromium/issues/detail?id=69096 BUG=69096 TEST=None at this point. Review URL: http://codereview.chromium.org/6284002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@71524 0039d316-1c4b-4281-b951-d872f2087c98
* Move base/thread.h to base/threading, fix up callers to use the new location.brettw@chromium.org2011-01-011-1/+1
| | | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6028009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70345 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up Automation and Chrome Frame IPC code.-only use routed messages when ↵jam@chromium.org2010-12-231-19/+15
| | | | | | | | needed-use routing IDs to avoid manually unpacking messages-remove data structures from IPC namespace (that should only be used for IPC code, and param traits)Note that I temporarily commented out part of a test in external_tab_test.cc because I couldn't figure out how to get the updated gmock macros to compile. Review URL: http://codereview.chromium.org/5998006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70105 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for gcf:about:plugins in chrome frame full tab mode. The URL ↵ananta@chromium.org2010-12-141-0/+3
| | | | | | | | | | | | | | | | | | | validation code path in ChromeFrame now takes in an interface NavigationConstraints which allows the delegateslike the ActiveX, ActiveDocument and the NPAPI plugins to control the navigation decisions. We no longer refer to the InternetSecurityManager interface which is IE only for performing zone decisions in the ChromeFrame NPAPI plugin. Fixes bug http://code.google.com/p/chromium/issues/detail?id=66118 BUG=66118 TEST=Covered by additional CanNavigate unit tests. Review URL: http://codereview.chromium.org/5698005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69101 0039d316-1c4b-4281-b951-d872f2087c98
* Reapply part of r64637, which caused mysterious failures on mac waterfall.erg@google.com2010-11-081-1/+2
| | | | | | | | | | | | | This applies only the rename of IPC::ContextMenuParams to IPC::MiniContextMenuParams so that it doesn't conflict with ::ContextMenuParams (defined in webkit). This is about half the original patch. BUG=51409 TEST=compiles Review URL: http://codereview.chromium.org/4669005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65429 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Refactor automation messages." due to mysterious problems on mac.erg@google.com2010-11-011-2/+1
| | | | | | | | | | | | | This reverts commit c1c1fed998ee4d839bfe256150e5e59220ebc0ef (r64637). TBR=nirnimesh@ BUG=51409 TEST=none Review URL: http://codereview.chromium.org/4194007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64644 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor automation messages.erg@google.com2010-11-011-1/+2
| | | | | | | | | | | | | | | | | automation_messages used to live in chrome/test/automation, when it's needed by browser and chrome_frame. When I started lifting code out of headers and into implementation files, I was getting link errors and temporarily solved the problem by compiling the cc files manually into libbrowser.a. Now this is part of chrome/common/ which is included by all targets needed. While doing this, discover that automation IPC redefines the ContextMenuParams struct. Rename it to MiniContextMenuParams. BUG=51409 TEST=none Review URL: http://codereview.chromium.org/4200007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64637 0039d316-1c4b-4281-b951-d872f2087c98
* In ChromeFrame in full tab mode at times the address bar would display the ↵ananta@chromium.org2010-10-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | old URL. This would typically occur during redirects or performing back forward operations when the current and the target URLs were both rendered in ChromeFrame. A scenario where this would occur is as below:- 1. Navigation to a URL in chrome frame. 2. Clicking on a link which would navigate the current tab to a chrome frame URL. 3. Now hitting back in IE would navigate back. however the address bar would still display the URL in step 2. The reason this occurs is step 2 causes a top level navigation in IE via webbrowser::Navigate. This initiates a navigation sequence which updates the address bar to the URL in step 2. Eventually we receive navigation updates from chrome where the navigation index is changed due to a new navigation from step 1 to 2. We end up firing internal navigation events which cause the IE history to get messed up leading to the problem. Fix is to only fire internal navigation events if the following are true. 1. navigation indexes are different. 2. urls are different. 3. referrer differs. 4. navigation type is different. Fixes bug http://code.google.com/p/chromium/issues/detail?id=57207 Bug=57207 Test=Will send out a test in a separate CL. Need to brush up on using accessibility for link clicks, etc. Review URL: http://codereview.chromium.org/3988004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63414 0039d316-1c4b-4281-b951-d872f2087c98
* Added full support for invoking before unload and unload handlers on ↵ananta@chromium.org2010-09-171-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | ChromeFrame rendered pages. This allows a webpage to put up a confirmation dialog in its beforeunload handler and potentially cancel the operation. We only support invoking unload handlers on the page for IE full tab mode. To achieve this the active document handles the OLECMDID_ONUNLOAD exec command which is passed by the DOCHOST to the object which allows us to potentially cancel the operation. Thanks to Stoyan for his help in authoring parts of this CL. The AutomationMsg_RunUnloadHandlers message which is used only by ChromeFrame is now a sync message which returns back a bool indicating whether the unload operation can be continued or not. The ExternalTabContainer now implements the BeforeUnloadFired method in the TabContentsDelegate and aborts the unload operation if the user chose to not proceed with the unload. Fixes bug http://code.google.com/p/chromium/issues/detail?id=33200 Bug=33200 Test=Covered by existing unload event test. Will add a test which validates whether a page can cancel the unload operation in a subsequent CL. Review URL: http://codereview.chromium.org/3450014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59854 0039d316-1c4b-4281-b951-d872f2087c98
* Restrict unsafe URLs in Chrome Frameamit@chromium.org2010-08-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Handle automation server crashes. When Chrome crashes, we now handle the ↵tommi@chromium.org2010-08-101-5/+2
| | | | | | | | | | | | | | case and support document refresh or reload. When chrome crashes, we draw a poor man's sad tab (":-("), so that can clearly be improved. Another thing is that if the chrome instance that crashed held several navigational entries, then that history is lost. TEST=There are a couple of tests included, so run those (*TabCrash*) and also verify that when the chrome automation server is killed that we do the right thing. Also check info in bug report. BUG=25839 Review URL: http://codereview.chromium.org/3061036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55565 0039d316-1c4b-4281-b951-d872f2087c98
* Added support in Chromeframe full tab mode IE for setting zoom levels via ↵ananta@chromium.org2010-08-091-0/+12
| | | | | | | | | | | | | | | | | | | | View->Zoom. Currently we only support Zoom in and zoom out as Chrome only supports these zoom levels. Added an automation IPC message AutomationMsg_SetZoomLevel to set the zoom level in ChromeFrame. The other change is in the active document in the handling of the attach external tab message. We now honor the dimensions if any when we Launch the URL. This ensures that any windows opened outside chrome frame also honor these dimensions. Fixes bug http://code.google.com/p/chromium/issues/detail?id=36000 Bug=36000 Review URL: http://codereview.chromium.org/3064049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55494 0039d316-1c4b-4281-b951-d872f2087c98
* Allow non-IE hosts to handle accelerators without having tojoi@chromium.org2010-08-021-1/+3
| | | | | | | | | | | | implement the huge IBrowserService2 interface. BUG=none TEST=none Review URL: http://codereview.chromium.org/2847071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54550 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that window.open requests issued by ChromeFrame carry the correct ↵ananta@chromium.org2010-07-281-16/+3
| | | | | | | | | | | | | | | | | | | | | 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
* ChromeFrame host browser commands need to account for the command group guid ↵ananta@chromium.org2010-07-261-3/+6
| | | | | | | | | | | | | | and the command id in all cases. We were detecting MSHTML command ids based on the command id only while ignoring the group which was wrong. Part of the fix for http://code.google.com/p/chromium/issues/detail?id=24034 Bug=24034 Review URL: http://codereview.chromium.org/2873070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53699 0039d316-1c4b-4281-b951-d872f2087c98
* Fix incorrect focus cycling issues in ChromeFrame full tab mode. This ↵ananta@chromium.org2010-07-211-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | happens whenever a tab rendering a chrome frame page receives focus by switching to it. Whenever we receive focus in ChromeFrame we send over an IPC to set the initial focus to Chrome. In this IPc we invoke the FocusThroughTabTraversal function on the TabContents which basically cycles through the focus on the page which is not correct for full tab mode. Fix is to handle the WM_SETFOCUS message in the active document and invoke the GiveFocusToChrome with false indicating that we don't want to invoke the FocusThroughTabTraversal function which cycles through the view. It is sufficient to set focus to the tab. We also handle the WM_SHOWWINDOW message in the active document and set focus to the document if it is visible. This ensures that the page gets focused correctly. Fixes bug http://code.google.com/p/chromium/issues/detail?id=48459 Fixes bug http://code.google.com/p/chromium/issues/detail?id=25890 Bug=48459, 25890 Review URL: http://codereview.chromium.org/2825061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53206 0039d316-1c4b-4281-b951-d872f2087c98
* Not firing DocumentComplete in the presence of buggy BHOs.tommi@chromium.org2010-07-161-15/+20
| | | | | | | | | TEST=should be no functional change except if there are buggy BHOs that we know of loaded in IE. BUG=44463 Review URL: http://codereview.chromium.org/2906011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52668 0039d316-1c4b-4281-b951-d872f2087c98
* Small refactoring in preparation of the assassination of HttpNegotiate patch ↵stoyan@chromium.org2010-07-151-1/+2
| | | | | | | | (and possible murder of NavigationManager). Review URL: http://codereview.chromium.org/2813053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52547 0039d316-1c4b-4281-b951-d872f2087c98
* 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