summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_frame_automation.cc
Commit message (Collapse)AuthorAgeFilesLines
* Move CancellationFlag and WaitableEvent to the synchronization subdirectory.brettw@chromium.org2011-01-021-1/+1
| | | | | | | | TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/5977010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70369 0039d316-1c4b-4281-b951-d872f2087c98
* Move platform_thread to base/threading and put in the base namespace. I left abrettw@chromium.org2010-12-311-14/+14
| | | | | | | | | | | stub and "using" declarations in the old location to avoid having to change the entire project at once. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/6001010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70342 0039d316-1c4b-4281-b951-d872f2087c98
* Fix build break, againjam@chromium.org2010-12-241-2/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70147 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 70144 and 70145 and add a build fix.jam@chromium.org2010-12-241-5/+7
| | | | | | | TBR=gfeher Review URL: http://codereview.chromium.org/5959006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70146 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 70141 - Make a few more places use bool for OnMessageReceived.gfeher@chromium.org2010-12-241-4/+3
| | | | | | | | | | TBR=brettw Review URL: http://codereview.chromium.org/6005006 TBR=jam@chromium.org Review URL: http://codereview.chromium.org/6094002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70145 0039d316-1c4b-4281-b951-d872f2087c98
* Make a few more places use bool for OnMessageReceived.jam@chromium.org2010-12-241-3/+4
| | | | | | | TBR=brettw Review URL: http://codereview.chromium.org/6005006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70141 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up Automation and Chrome Frame IPC code.-only use routed messages when ↵jam@chromium.org2010-12-231-29/+26
| | | | | | | | 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
* Revert 68944 - Revert "Add named testing interface."nirnimesh@chromium.org2010-12-231-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverting the revert of named interface CL. Followup CL which addresses Pawel's comments is up at http://codereview.chromium.org/5967003/ http://src.chromium.org/viewvc/chrome?view=rev&revision=67300 The change has been approved conditionally, i.e. if the outstanding review comments are handled in a follow-up as the top priority. Two weeks have passed, and I have not seen the follow-up. It is risky to keep this change in the tree, as it is already non-trivial to revert. Conflicts: chrome/browser/automation/automation_provider.cc chrome/test/ui/named_interface_uitest.cc ipc/ipc_channel_posix.cc TBR=nirnimesh BUG=chromium-os:8512 TEST=none Review URL: http://codereview.chromium.org/5707006 TBR=phajdan.jr@chromium.org BUG=chromium-os:8512 TEST=ui_tests --gtest_filter=NamedInterfaceTest.FLAKY_BasicNamedInterface Review URL: http://codereview.chromium.org/6012006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70089 0039d316-1c4b-4281-b951-d872f2087c98
* Create a message filter for message port and worker messages. This allows a ↵jam@chromium.org2010-12-211-6/+6
| | | | | | | | nice cleanup of getting rid of the notifications when RenderMessageFilter and WorkerProcessHost go away. SafeBrowsingResourceHandler doesn't need it anymore as well, since it now overrides OnRequestClosed() which does the same thing. Review URL: http://codereview.chromium.org/6055002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69862 0039d316-1c4b-4281-b951-d872f2087c98
* Add the ChromeFrame UA in the post platform section in the IE user agent ↵ananta@chromium.org2010-12-161-9/+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
* Keep deinlining stuff.erg@google.com2010-12-151-16/+14
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5783004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69273 0039d316-1c4b-4281-b951-d872f2087c98
* Make members of Singleton<T> private and only visible to the singleton type. ↵satish@chromium.org2010-12-141-3/+5
| | | | | | | | | | | | | | | This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69107 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for gcf:about:plugins in chrome frame full tab mode. The URL ↵ananta@chromium.org2010-12-141-13/+6
| | | | | | | | | | | | | | | | | | | 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
* Revert "Add named testing interface."phajdan.jr@chromium.org2010-12-111-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | http://src.chromium.org/viewvc/chrome?view=rev&revision=67300 The change has been approved conditionally, i.e. if the outstanding review comments are handled in a follow-up as the top priority. Two weeks have passed, and I have not seen the follow-up. It is risky to keep this change in the tree, as it is already non-trivial to revert. Conflicts: chrome/browser/automation/automation_provider.cc chrome/test/ui/named_interface_uitest.cc ipc/ipc_channel_posix.cc TBR=nirnimesh BUG=chromium-os:8512 TEST=none Review URL: http://codereview.chromium.org/5707006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68944 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 68932 - Make members of Singleton<T> private and only visible to the ↵satish@chromium.org2010-12-111-5/+3
| | | | | | | | | | | | | | | | | | singleton type. This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 TBR=satish@chromium.org Review URL: http://codereview.chromium.org/5721005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68936 0039d316-1c4b-4281-b951-d872f2087c98
* Make members of Singleton<T> private and only visible to the singleton type. ↵satish@chromium.org2010-12-111-3/+5
| | | | | | | | | | | | | | | This enforces that the Singleton<T> pattern can only be used within classes which want singleton-ness. As part of this CL I have also fixed up files which got missed in my previous CLs to use a GetInstance() method and use Singleton<T> from the source file. There are a small number of places where I have also switched to LazyInstance as that was more appropriate for types used in a single source file. BUG=65298 TEST=all existing tests should continue to pass. Review URL: http://codereview.chromium.org/5682008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68932 0039d316-1c4b-4281-b951-d872f2087c98
* Add a Chrome Frame metric to track channel errors that result in sad tabs.robertshield@chromium.org2010-12-081-0/+5
| | | | | | | | | BUG=65899 TEST=None Review URL: http://codereview.chromium.org/5665003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68631 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash reported seen in ChromeFrame in version 8.0.552.215 which was ↵ananta@chromium.org2010-12-031-5/+6
| | | | | | | | | | | | | pushed to stable. Crash occurs while dereferencing a NULL TabProxy pointer. BUG=65319 TEST=none Review URL: http://codereview.chromium.org/5625004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68210 0039d316-1c4b-4281-b951-d872f2087c98
* Add named testing interface. This allows you to connect to a pre-existing ↵nirnimesh@chromium.org2010-11-241-3/+8
| | | | | | | | | | | | | | | | | | | | | Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67300 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66840 - Add named testing interface. This allows you to connect to a ↵kkania@chromium.org2010-11-201-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | pre-existing Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 TBR=nirnimesh@chromium.org Review URL: http://codereview.chromium.org/5177007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66856 0039d316-1c4b-4281-b951-d872f2087c98
* Add named testing interface. This allows you to connect to a pre-existing ↵nirnimesh@chromium.org2010-11-191-3/+8
| | | | | | | | | | | | | | | | | | | | | Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66840 0039d316-1c4b-4281-b951-d872f2087c98
* Make use of the new version flag in Chrome to load the correct chrome.dll ↵robertshield@chromium.org2010-11-171-8/+14
| | | | | | | | | | | | | | version. Also fix a memory leak in the Chrome Frame automation code. BUG=61609 TEST=Chrome.exe always loads the specified chrome.dll when run by Chrome Frame. Review URL: http://codereview.chromium.org/5090001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66462 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66350 - Add named testing interface. This allows you to connect to a ↵nirnimesh@chromium.org2010-11-171-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | pre-existing Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 TBR=nirnimesh@chromium.org Review URL: http://codereview.chromium.org/5139001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66368 0039d316-1c4b-4281-b951-d872f2087c98
* Add named testing interface. This allows you to connect to a pre-existing ↵nirnimesh@chromium.org2010-11-171-1/+3
| | | | | | | | | | | | | | | | | | | | | Chrome process and run tests on it. This is an addition to the low level interface underlying testing frameworks like PyAuto and WebDriver. Normally, test frameworks communicate with Chrome over an unnamed socket pair on POSIX. The test creates the socket pair and then launches the browser as a child process, passing an open file descriptor for one end of the socket to the browser. This change adds a command line switch that, when passed to the browser, causes it to listen on a named socket instead, eliminating this parent/child process requirement. Therefore, you can potentially connect any number of tests to a preexisting browser process. For ChromeOS, this allows you to run tests on the instance of Chrome that is launched on startup, which controls things like the login and lock screens, the battery meter, the wireless UI, etc. Currently there is no way to run tests on a pre-existing Chrome instance. Eventually this will also allow you to connect both PyAuto and WebDriver to the same Chrome instance and run both in the same test. If you pass the browser the following command line switch: ./chrome --testing-channel=NamedTestingInterface:/path/to/file This causes the browser to listen for incoming connections. An AutomationProxy can connect to the browser by connecting a Unix domain socket to the specified path and control the browser over the socket. This is currently only for POSIX. Windows support will come in a future change. Also, this initial change only allows one connection; multiple connection support will come in a future change. BUG=chromium-os:8512 TEST=Run Chrome with --testing-interface=/var/tmp/NamedTestingInterface, then run NamedInterfaceTest.BasicNamedInterface under ui_tests. Review URL: http://codereview.chromium.org/4202004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66350 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for returning the session_id in both CreateExternalTab and ↵hansl@google.com2010-11-051-4/+10
| | | | | | | | | | | | ConnectExternalTab. The ChromeFrame objects now provides an unfrozen interface called IChromeFramePrivate. This interface provides a GetSessionId() which returns the ID used by Chrome in its Tab javascript object. This ID is necessary in CEEE for its tabs management. BUG=None TEST=None Review URL: http://codereview.chromium.org/4467002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65257 0039d316-1c4b-4281-b951-d872f2087c98
* Use the LeakyLazyInstanceTraits in the ProxyFactory and metrics upload ↵ananta@chromium.org2010-11-041-1/+1
| | | | | | | | | | | | | thread objects in ChromeFrame as we don't control the threads on which these objects are instantiated and thus cannot terminate them gracefully. This should suppress the annoying DCHECKS during IE shutdown. Review URL: http://codereview.chromium.org/4517002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65136 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting this to see if this fixes ChromeFrame tests. Please reland with ↵ananta@chromium.org2010-10-281-8/+2
| | | | | | | | | | | | | the tests fixed. Revert 64252 - The ChromeFrame objects now provides an unfrozen interface called IChromeFramePrivate. This interface provides a GetSessionId() which returns the ID used by Chrome in its Tab javascript object. Review URL: http://codereview.chromium.org/3541017 TBR=hansl@google.com Review URL: http://codereview.chromium.org/4134008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64287 0039d316-1c4b-4281-b951-d872f2087c98
* The ChromeFrame objects now provides an unfrozen interface called ↵hansl@google.com2010-10-281-2/+8
| | | | | | | | IChromeFramePrivate. This interface provides a GetSessionId() which returns the ID used by Chrome in its Tab javascript object. Review URL: http://codereview.chromium.org/3541017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64252 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash in ChromeFrame if chrome launch timeouts.stoyan@chromium.org2010-10-261-2/+3
| | | | | | | BUG=60550 Review URL: http://codereview.chromium.org/4096003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63958 0039d316-1c4b-4281-b951-d872f2087c98
* Move debug-related stuff from base to the base/debug directory and use thebrettw@chromium.org2010-10-261-1/+1
| | | | | | | | | | | | | | | | base::debug namespace. This splits apart debug_util into base/debugger and base/stack_trace There are still two functions in debug_util that I'm not sure what to do with. Since this uses the base::debug namespace, I removed the functions in debugger.h from the static class and just made them free functions in the namespace. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3945002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63859 0039d316-1c4b-4281-b951-d872f2087c98
* Revert of a revert of a patch that re-enabled automation protocol version ↵robertshield@chromium.org2010-10-211-0/+4
| | | | | | | | | | | | | | mismatch checking in CF. Original revision: r63211 Revert revision: r63239 Previously, our version information wasn't getting updated properly through incremental builds which made the test builders unhappy. That was fixed in r63355. This should now be safe to commit. Review URL: http://codereview.chromium.org/4034004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63364 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting this as this causes a message box to show up on the builders ↵ananta@chromium.org2010-10-201-4/+0
| | | | | | | | | | | | | | | | | | | | | indicating that the chrome and chrome frame versions are different which they are. Perhaps the version resource in chrome frame is just wrong and needs a clobber. Robert please investigate and reland Revert 63211 - Re-add the version mismatch checking which was removed at some point. Also add version information to chrome_frame_tests.exe. This will be needed for subsequent tests. Review URL: http://codereview.chromium.org/3879001 TBR=robertshield@chromium.org Review URL: http://codereview.chromium.org/3939002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63239 0039d316-1c4b-4281-b951-d872f2087c98
* Re-add the version mismatch checking which was removed at some point. Also ↵robertshield@chromium.org2010-10-201-0/+4
| | | | | | | | add version information to chrome_frame_tests.exe. This will be needed for subsequent tests. Review URL: http://codereview.chromium.org/3879001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63211 0039d316-1c4b-4281-b951-d872f2087c98
* Various changes to make GCF nicer for the non-en-US world:grt@chromium.org2010-10-201-2/+7
| | | | | | | | | | | | | - Chrome Frame now uses MUI on Vista+ to detect IE's UX language. - Chrome Frame now tells Chrome (via the --lang command-line option) what the current langauge is. - Chrome Frame now respects Chrome's "ApplicationLocaleValue" group policy setting. BUG=56435,59582 TEST=chrome_frame_unittests and chrome_frame_tests updated Review URL: http://codereview.chromium.org/3757007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63208 0039d316-1c4b-4281-b951-d872f2087c98
* Convert LOG(INFO) to VLOG(1) - chrome_frame/.pkasting@chromium.org2010-10-191-5/+5
| | | | | | | | | | 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
* Top level navigations are not sent to the host browser in the ChromeFrame ↵ananta@chromium.org2010-09-301-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NPAPI implementation. These include window.open requests, hrefs with target _blank, etc. The ChromeFrame NPAPI plugin needs to set the renderer pref which indicates that the host browser can handle top level requests. We also pass an additional flag in the CreateExternal tab IPC which indicates whether the host browser supports full tab mode browsing or not. This defaults to true for IE, as the activex implementation relies on being able to launch a new window with the attach external tab prefix. which assumes support for full tab mode for IE being available. If the host browser does not support full tab browsing the window.open request which comes into the ExternalTabContainer instance creates a dummy ExternalTabContainer instance which is destroyed when the top level navigation info is sent back to the host browser. This CL is a short term fix for the issues with the NPAPI ChromeFrame plugin. Will do some investigation into a better approach. Fixes bug http://code.google.com/p/chromium/issues/detail?id=57319 Test=Covered by existing ChromeFrame widget mode tests WidgetModeIE_SrcProperty and WidgetModeFF_SrcProperty Fixed incorrect assumptions in the test files used by these tests. Bug=57319 Review URL: http://codereview.chromium.org/3549006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61117 0039d316-1c4b-4281-b951-d872f2087c98
* Remove code that enables renderer accessibility based on the ↵ctguil@chromium.org2010-09-181-0/+5
| | | | | | | | | | | | | SPI_GETSCREENREADER parameter. Update chrome frame so that its test automation can still use renderer accessibility. BUG=55902 TEST=none Review URL: http://codereview.chromium.org/3383010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59899 0039d316-1c4b-4281-b951-d872f2087c98
* Added full support for invoking before unload and unload handlers on ↵ananta@chromium.org2010-09-171-13/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add lock since the add/remove tabproxy is invoked from different threads.stoyan@chromium.org2010-09-021-0/+3
| | | | | | | BUG=53963 Review URL: http://codereview.chromium.org/3306003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58367 0039d316-1c4b-4281-b951-d872f2087c98
* Silencing a couple of dchecks that occur when running the debug version of ↵tommi@chromium.org2010-08-311-1/+6
| | | | | | | | | | | the *TabCrashReload* tests. TEST=Run debug versions of *TabCrashReload* tests. There should be no more dchecks. BUG=none Review URL: http://codereview.chromium.org/3241008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58067 0039d316-1c4b-4281-b951-d872f2087c98
* When GCF is the default renderer, use Chrome's User-agent header instead of ↵tommi@chromium.org2010-08-311-2/+5
| | | | | | | | | | | IE's. TEST=Set IsDefaultRenderer to 1 (REG_DWORD) under the ChromeFrame registry key. Check if the User agent header in requests is the Chrome user agent. Then set the value to 0 and make sure the regular user-agent header is there. BUG=50788 Review URL: http://codereview.chromium.org/3130016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57991 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that ChromeFrame link navigations which occur when the opener frame ↵ananta@chromium.org2010-08-271-1/+5
| | | | | | | | | | | | | | | | | | | is NULL are always reported back to the host browser as top level navigations. The other change is to always send over navigation requests from the automation client even if the url remains the same if the client is already initialized, i.e this is treated as a new navigation. Fixes bug http://code.google.com/p/chromium/issues/detail?id=38456 Bug=38456 Test=The ChromeFrame side of the change is covered by a new chrome frame mock test. Will add a test for the render view change in a subsequent CL. Review URL: http://codereview.chromium.org/3235001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57748 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: After timeout, all further automation calls should fail immediately.phajdan.jr@chromium.org2010-08-191-1/+1
| | | | | | | | | | | | | If IPC send fails, further automation calls are extremely likely to fail. Avoid wasting a lot of time on further timeouts by closing the channel immediately on the first error. TEST=ui_tests BUG=51346 Review URL: http://codereview.chromium.org/3131020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56722 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
* Restrict unsafe URLs in Chrome Frameamit@chromium.org2010-08-131-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Attempt to fix chrome frame tests crash on the IE6 builder. The crash occurs ↵ananta@chromium.org2010-08-121-0/+10
| | | | | | | | | | | | | | | | | | | when ProxyCache singleton object is being torn down with valid AutomationProxyCache entries. These objects in turn try to take down the AutomationProxy which causes a crash in the sync channel while dereferencing a NULL message loop. This appears to be a sideeffect of the changes to display a sad tab in ChromeFrame when chrome crashes. Proposed hack/fix is to leak the automation proxy in this case, which basically falls back to the old behavior. The correct fix would be to refactor/fix the AutomationProxy code to avoid the use of the sync channel if possible. TBR=tommi Review URL: http://codereview.chromium.org/3159009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55849 0039d316-1c4b-4281-b951-d872f2087c98
* Handle automation server crashes. When Chrome crashes, we now handle the ↵tommi@chromium.org2010-08-101-174/+270
| | | | | | | | | | | | | | 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/+7
| | | | | | | | | | | | | | | | | | | | 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
* Convert a bunch of easy AppendSwitchWithValue to *ASCII.evan@chromium.org2010-07-301-2/+2
| | | | | | | | | For this patch, I skipped over any instance where it wasn't a nearly trivial change. Review URL: http://codereview.chromium.org/3069014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54285 0039d316-1c4b-4281-b951-d872f2087c98
* Miscellaneous ChromeFrame code cleanup. The automation client class ↵ananta@chromium.org2010-07-301-21/+27
| | | | | | | | | | | | | | maintained GURL members holding the url and referrer. We can stuff this information into the ChromeFrameLaunchParams member maintained by the client. This reduces the complexity in the code related to detecting whether we can navigate up front or after chrome initialization. The ChromeFrame ActiveX now launches the automation server in its implementation of IPersistPropertyBag::Load. This avoids race conditions between launching the automation server and navigating to it via put_src. Review URL: http://codereview.chromium.org/3038038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54284 0039d316-1c4b-4281-b951-d872f2087c98