| Index: chrome/browser/renderer_host/browser_render_process_host.cc
|
| ===================================================================
|
| --- chrome/browser/renderer_host/browser_render_process_host.cc (revision 22989)
|
| +++ chrome/browser/renderer_host/browser_render_process_host.cc (working copy)
|
| @@ -47,7 +47,6 @@
|
| #include "chrome/browser/visitedlink_master.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/child_process_info.h"
|
| -#include "chrome/common/child_process_host.h"
|
| #include "chrome/common/chrome_descriptors.h"
|
| #include "chrome/common/logging_chrome.h"
|
| #include "chrome/common/notification_service.h"
|
| @@ -202,6 +201,16 @@
|
| VisitedLinkCommon::Fingerprints pending_;
|
| };
|
|
|
| +
|
| +// Used for a View_ID where the renderer has not been attached yet
|
| +const int32 kInvalidViewID = -1;
|
| +
|
| +// Get the path to the renderer executable, which is the same as the
|
| +// current executable.
|
| +bool GetRendererPath(std::wstring* cmd_line) {
|
| + return PathService::Get(base::FILE_EXE, cmd_line);
|
| +}
|
| +
|
| BrowserRenderProcessHost::BrowserRenderProcessHost(Profile* profile)
|
| : RenderProcessHost(profile),
|
| visible_widgets_(0),
|
| @@ -298,12 +307,15 @@
|
|
|
| // Build command line for renderer, we have to quote the executable name to
|
| // deal with spaces.
|
| - std::wstring renderer_path = ChildProcessHost::GetChildPath();
|
| + std::wstring renderer_path =
|
| + browser_command_line.GetSwitchValue(switches::kBrowserSubprocessPath);
|
| if (renderer_path.empty()) {
|
| - // Need to reset the channel we created above or others might think the
|
| - // connection is live.
|
| - channel_.reset();
|
| - return false;
|
| + if (!GetRendererPath(&renderer_path)) {
|
| + // Need to reset the channel we created above or others might think the
|
| + // connection is live.
|
| + channel_.reset();
|
| + return false;
|
| + }
|
| }
|
| CommandLine cmd_line(renderer_path);
|
| if (logging::DialogsAreSuppressed())
|
|
|