Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(344)

Side by Side Diff: chrome/browser/renderer_host/browser_render_process_host.cc

Issue 27228: Fix BrowserTest.ThirtyFourTabs and possibly other ui tests in single-process ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Represents the browser side of the browser <--> renderer communication 5 // Represents the browser side of the browser <--> renderer communication
6 // channel. There will be one RenderProcessHost per renderer process. 6 // channel. There will be one RenderProcessHost per renderer process.
7 7
8 #include "chrome/browser/renderer_host/browser_render_process_host.h" 8 #include "chrome/browser/renderer_host/browser_render_process_host.h"
9 9
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 #include "chrome/common/temp_scaffolding_stubs.h" 64 #include "chrome/common/temp_scaffolding_stubs.h"
65 #endif 65 #endif
66 66
67 #include "skia/include/SkBitmap.h" 67 #include "skia/include/SkBitmap.h"
68 68
69 69
70 namespace { 70 namespace {
71 71
72 // ---------------------------------------------------------------------------- 72 // ----------------------------------------------------------------------------
73 73
74 // This class creates the IO thread for the renderer when running in
75 // single-process mode. It's not used in multi-process mode.
74 class RendererMainThread : public base::Thread { 76 class RendererMainThread : public base::Thread {
75 public: 77 public:
76 explicit RendererMainThread(const std::wstring& channel_id) 78 explicit RendererMainThread(const std::wstring& channel_id)
77 : base::Thread("Chrome_InProcRendererThread"), 79 : base::Thread("Chrome_InProcRendererThread"),
78 channel_id_(channel_id) { 80 channel_id_(channel_id),
81 render_process_(NULL) {
79 } 82 }
80 83
81 protected: 84 protected:
82 virtual void Init() { 85 virtual void Init() {
83 #if defined(OS_WIN) 86 #if defined(OS_WIN)
84 CoInitialize(NULL); 87 CoInitialize(NULL);
85 #endif 88 #endif
86 89
87 render_process_.reset(new RenderProcess(channel_id_)); 90 render_process_ = new RenderProcess(channel_id_);
88 // It's a little lame to manually set this flag. But the single process 91 // It's a little lame to manually set this flag. But the single process
89 // RendererThread will receive the WM_QUIT. We don't need to assert on 92 // RendererThread will receive the WM_QUIT. We don't need to assert on
90 // this thread, so just force the flag manually. 93 // this thread, so just force the flag manually.
91 // If we want to avoid this, we could create the InProcRendererThread 94 // If we want to avoid this, we could create the InProcRendererThread
92 // directly with _beginthreadex() rather than using the Thread class. 95 // directly with _beginthreadex() rather than using the Thread class.
93 base::Thread::SetThreadWasQuitProperly(true); 96 base::Thread::SetThreadWasQuitProperly(true);
94 } 97 }
95 98
96 virtual void CleanUp() { 99 virtual void CleanUp() {
97 render_process_.reset(); 100 delete render_process_;
98 101
99 #if defined(OS_WIN) 102 #if defined(OS_WIN)
100 CoUninitialize(); 103 CoUninitialize();
101 #endif 104 #endif
102 } 105 }
103 106
104 private: 107 private:
105 std::wstring channel_id_; 108 std::wstring channel_id_;
106 scoped_ptr<RenderProcess> render_process_; 109 // Deleted in CleanUp() on the renderer thread, so don't use a smart pointer.
110 RenderProcess* render_process_;
107 }; 111 };
108 112
109 // Used for a View_ID where the renderer has not been attached yet 113 // Used for a View_ID where the renderer has not been attached yet
110 const int32 kInvalidViewID = -1; 114 const int32 kInvalidViewID = -1;
111 115
112 // Get the path to the renderer executable, which is the same as the 116 // Get the path to the renderer executable, which is the same as the
113 // current executable. 117 // current executable.
114 bool GetRendererPath(std::wstring* cmd_line) { 118 bool GetRendererPath(std::wstring* cmd_line) {
115 return PathService::Get(base::FILE_EXE, cmd_line); 119 return PathService::Get(base::FILE_EXE, cmd_line);
116 } 120 }
(...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after
875 SendUserScriptsUpdate(shared_memory); 879 SendUserScriptsUpdate(shared_memory);
876 } 880 }
877 break; 881 break;
878 } 882 }
879 default: { 883 default: {
880 NOTREACHED(); 884 NOTREACHED();
881 break; 885 break;
882 } 886 }
883 } 887 }
884 } 888 }
OLDNEW
« chrome/browser/browser_uitest.cc ('K') | « chrome/browser/browser_uitest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698