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

Side by Side Diff: chrome/browser/process_singleton.h

Issue 10542151: Move the window destruction and registration out of cleanup and into BrowserProcessImpl::EndSession… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 6 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROME_BROWSER_PROCESS_SINGLETON_H_ 5 #ifndef CHROME_BROWSER_PROCESS_SINGLETON_H_
6 #define CHROME_BROWSER_PROCESS_SINGLETON_H_ 6 #define CHROME_BROWSER_PROCESS_SINGLETON_H_
7 #pragma once 7 #pragma once
8 8
9 #include "build/build_config.h" 9 #include "build/build_config.h"
10 10
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 102
103 #if defined(OS_WIN) && !defined(USE_AURA) 103 #if defined(OS_WIN) && !defined(USE_AURA)
104 // Used in specific cases to let us know that there is an existing instance 104 // Used in specific cases to let us know that there is an existing instance
105 // of Chrome running with this profile. In general, you should not use this 105 // of Chrome running with this profile. In general, you should not use this
106 // function. Instead consider using NotifyOtherProcessOrCreate(). 106 // function. Instead consider using NotifyOtherProcessOrCreate().
107 // For non profile-specific method, use 107 // For non profile-specific method, use
108 // browser_util::IsBrowserAlreadyRunning(). 108 // browser_util::IsBrowserAlreadyRunning().
109 bool FoundOtherProcessWindow() const { 109 bool FoundOtherProcessWindow() const {
110 return (NULL != remote_window_); 110 return (NULL != remote_window_);
111 } 111 }
112 #endif // defined(OS_WIN) 112 #endif // defined(OS_WIN) && !defined(USE_AURA)
113 113
114 // Sets ourself up as the singleton instance. Returns true on success. If 114 // Sets ourself up as the singleton instance. Returns true on success. If
115 // false is returned, we are not the singleton instance and the caller must 115 // false is returned, we are not the singleton instance and the caller must
116 // exit. Otherwise, stores the provided callback for notification from 116 // exit. Otherwise, stores the provided callback for notification from
117 // future processes. 117 // future processes.
118 bool Create( 118 bool Create(
119 const NotificationCallback& notification_callback); 119 const NotificationCallback& notification_callback);
120 120
121 // Clear any lock state during shutdown. 121 // Clear any lock state during shutdown.
122 void Cleanup(); 122 void Cleanup();
123 123
124 #if defined(OS_WIN)
125 // We need to unregister the window as late as possible so that we can detect
126 // another instance of chrome running. Otherwise we may end up writing out
127 // data while a new chrome is starting up.
128 void UnregisterWindowClass();
129 #endif // defined(OS_WIN)
130
124 // Blocks the dispatch of CopyData messages. foreground_window refers 131 // Blocks the dispatch of CopyData messages. foreground_window refers
125 // to the window that should be set to the foreground if a CopyData message 132 // to the window that should be set to the foreground if a CopyData message
126 // is received while the ProcessSingleton is locked. 133 // is received while the ProcessSingleton is locked.
127 void Lock(gfx::NativeWindow foreground_window) { 134 void Lock(gfx::NativeWindow foreground_window) {
128 DCHECK(CalledOnValidThread()); 135 DCHECK(CalledOnValidThread());
129 locked_ = true; 136 locked_ = true;
130 foreground_window_ = foreground_window; 137 foreground_window_ = foreground_window;
131 } 138 }
132 139
133 // Changes the foreground window without changing the locked state. 140 // Changes the foreground window without changing the locked state.
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 #endif 228 #endif
222 229
223 // If messages are received in the locked state, the corresponding command 230 // If messages are received in the locked state, the corresponding command
224 // lines are saved here to be replayed later. 231 // lines are saved here to be replayed later.
225 std::vector<DelayedStartupMessage> saved_startup_messages_; 232 std::vector<DelayedStartupMessage> saved_startup_messages_;
226 233
227 DISALLOW_COPY_AND_ASSIGN(ProcessSingleton); 234 DISALLOW_COPY_AND_ASSIGN(ProcessSingleton);
228 }; 235 };
229 236
230 #endif // CHROME_BROWSER_PROCESS_SINGLETON_H_ 237 #endif // CHROME_BROWSER_PROCESS_SINGLETON_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698