summaryrefslogtreecommitdiffstats
path: root/chrome/browser/automation/automation_provider_win.cc
diff options
context:
space:
mode:
authorhansl@google.com <hansl@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-05 22:06:31 +0000
committerhansl@google.com <hansl@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-05 22:06:31 +0000
commit751bf4bbbfa669bfa9c21eef69c150b8bdbf2250 (patch)
tree38a1859c3d8e256161f98d3df29ca051a38fbed3 /chrome/browser/automation/automation_provider_win.cc
parenta18194ac534a98e9a6527fb3633fa38db9b6459f (diff)
downloadchromium_src-751bf4bbbfa669bfa9c21eef69c150b8bdbf2250.zip
chromium_src-751bf4bbbfa669bfa9c21eef69c150b8bdbf2250.tar.gz
chromium_src-751bf4bbbfa669bfa9c21eef69c150b8bdbf2250.tar.bz2
Add support for returning the session_id in both CreateExternalTab and 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
Diffstat (limited to 'chrome/browser/automation/automation_provider_win.cc')
-rw-r--r--chrome/browser/automation/automation_provider_win.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/chrome/browser/automation/automation_provider_win.cc b/chrome/browser/automation/automation_provider_win.cc
index 7843c83..a988a2f 100644
--- a/chrome/browser/automation/automation_provider_win.cc
+++ b/chrome/browser/automation/automation_provider_win.cc
@@ -241,12 +241,13 @@ void AutomationProvider::GetTabHWND(int handle, HWND* tab_hwnd) {
void AutomationProvider::CreateExternalTab(
const IPC::ExternalTabSettings& settings,
gfx::NativeWindow* tab_container_window, gfx::NativeWindow* tab_window,
- int* tab_handle) {
+ int* tab_handle, int* session_id) {
TRACE_EVENT_BEGIN("AutomationProvider::CreateExternalTab", 0, "");
*tab_handle = 0;
*tab_container_window = NULL;
*tab_window = NULL;
+ *session_id = -1;
scoped_refptr<ExternalTabContainer> external_tab_container =
new ExternalTabContainer(this, automation_resource_message_filter_);
@@ -266,6 +267,7 @@ void AutomationProvider::CreateExternalTab(
*tab_handle = external_tab_container->tab_handle();
*tab_container_window = external_tab_container->GetNativeView();
*tab_window = tab_contents->GetNativeView();
+ *session_id = tab_contents->controller().session_id().id();
} else {
external_tab_container->Uninitialize();
}
@@ -378,12 +380,14 @@ void AutomationProvider::ConnectExternalTab(
gfx::NativeWindow parent_window,
gfx::NativeWindow* tab_container_window,
gfx::NativeWindow* tab_window,
- int* tab_handle) {
+ int* tab_handle,
+ int* session_id) {
TRACE_EVENT_BEGIN("AutomationProvider::ConnectExternalTab", 0, "");
*tab_handle = 0;
*tab_container_window = NULL;
*tab_window = NULL;
+ *session_id = -1;
scoped_refptr<ExternalTabContainer> external_tab_container =
ExternalTabContainer::RemovePendingTab(static_cast<uintptr_t>(cookie));
@@ -400,6 +404,7 @@ void AutomationProvider::ConnectExternalTab(
*tab_handle = external_tab_container->tab_handle();
*tab_container_window = external_tab_container->GetNativeView();
*tab_window = tab_contents->GetNativeView();
+ *session_id = tab_contents->controller().session_id().id();
} else {
external_tab_container->Uninitialize();
}