Index: chrome/browser/browser_init.cc |
=================================================================== |
--- chrome/browser/browser_init.cc (revision 5533) |
+++ chrome/browser/browser_init.cc (working copy) |
@@ -667,6 +667,44 @@ |
return true; |
} |
+ // Check if we're running as an embedded client |
+ if (parsed_command_line.HasSwitch(switches::kEmbeddedProcess)) { |
+ std::wstring settings = parsed_command_line.GetSwitchValue(switches::kEmbeddedSettings); |
+ |
+ HWND hwnd = NULL; |
+ gfx::Rect rect; |
+ std::wstring url = L"http://www.google.com"; |
+ |
+ // Parse the embedded settings argument |
+ wchar_t* tok = wcstok(const_cast<wchar_t*>(settings.c_str()), L","); |
+ for(int i = 0; tok; i++) |
+ { |
+ if(i == 0) |
+ hwnd = (HWND)_wtol(tok); |
+ else if(i == 1) |
+ rect.set_x(_wtoi(tok)); |
+ else if(i == 2) |
+ rect.set_y(_wtoi(tok)); |
+ else if(i == 3) |
+ rect.set_width(_wtoi(tok)); |
+ else if(i == 4) |
+ rect.set_height(_wtoi(tok)); |
+ else if(i == 5) |
+ url = tok; |
+ else |
+ break; |
+ |
+ tok = wcstok(NULL, L","); |
+ } |
+ |
+ // Create the embedded browser window |
+ Browser* browser = Browser::CreateForEmbedded(hwnd, rect, profile); |
+ browser->ShowNativeUITab(GURL(url)); |
+ browser->window()->Show(); |
+ |
+ return true; |
+ } |
+ |
LaunchWithProfile lwp(cur_dir, parsed_command_line.command_line_string()); |
bool launched = lwp.Launch(profile, process_startup); |
if (!launched) { |