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

Side by Side Diff: chrome/browser/remoting/remoting_setup_flow.cc

Issue 3153029: Resubmit r56600 - Start/stop service process when browser starts and stop (Closed)
Patch Set: Created 10 years, 4 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "chrome/browser/remoting/remoting_setup_flow.h" 5 #include "chrome/browser/remoting/remoting_setup_flow.h"
6 6
7 #include "app/gfx/font_util.h" 7 #include "app/gfx/font_util.h"
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/singleton.h" 9 #include "base/singleton.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 } 61 }
62 62
63 // A callback to notify the delegate that the dialog closed. 63 // A callback to notify the delegate that the dialog closed.
64 void RemotingSetupFlow::OnDialogClosed(const std::string& json_retval) { 64 void RemotingSetupFlow::OnDialogClosed(const std::string& json_retval) {
65 // If we are fetching the token then cancel the request. 65 // If we are fetching the token then cancel the request.
66 if (authenticator_.get()) 66 if (authenticator_.get())
67 authenticator_->CancelRequest(); 67 authenticator_->CancelRequest();
68 delete this; 68 delete this;
69 } 69 }
70 70
71 // static
72 void RemotingSetupFlow::GetArgsForGaiaLogin(DictionaryValue* args) {
73 args->SetString("iframeToShow", "login");
74 args->SetString("user", "");
75 args->SetInteger("error", 0);
76 args->SetBoolean("editable_user", true);
77 }
78
79 void RemotingSetupFlow::GetDOMMessageHandlers( 71 void RemotingSetupFlow::GetDOMMessageHandlers(
80 std::vector<DOMMessageHandler*>* handlers) const { 72 std::vector<DOMMessageHandler*>* handlers) const {
81 // Create the message handler only after we are asked. 73 // Create the message handler only after we are asked.
82 handlers->push_back(message_handler_); 74 handlers->push_back(message_handler_);
83 } 75 }
84 76
85 void RemotingSetupFlow::Focus() { 77 void RemotingSetupFlow::Focus() {
86 // TODO(pranavk): implement this method. 78 // TODO(pranavk): implement this method.
87 NOTIMPLEMENTED(); 79 NOTIMPLEMENTED();
88 } 80 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 ChromeThread::UI, 153 ChromeThread::UI,
162 FROM_HERE, 154 FROM_HERE,
163 NewRunnableMethod(this, &RemotingSetupFlow::OnProcessLaunched)); 155 NewRunnableMethod(this, &RemotingSetupFlow::OnProcessLaunched));
164 return; 156 return;
165 } 157 }
166 158
167 DCHECK(process_control_->is_connected()); 159 DCHECK(process_control_->is_connected());
168 process_control_->EnableRemotingWithTokens(login_, remoting_token_, 160 process_control_->EnableRemotingWithTokens(login_, remoting_token_,
169 sync_token_); 161 sync_token_);
170 message_handler_->ShowSetupDone(); 162 message_handler_->ShowSetupDone();
163
164 // Save the preference that we have completed the setup of remoting.
165 profile_->GetPrefs()->SetBoolean(prefs::kRemotingHasSetupCompleted, true);
171 } 166 }
172 167
173 // static 168 // static
174 RemotingSetupFlow* RemotingSetupFlow::Run(Profile* profile) { 169 RemotingSetupFlow* RemotingSetupFlow::Run(Profile* profile) {
175 // Set the arguments for showing the gaia login page. 170 // Set the arguments for showing the gaia login page.
176 DictionaryValue args; 171 DictionaryValue args;
177 GetArgsForGaiaLogin(&args); 172 args.SetString("iframeToShow", "login");
173 args.SetString("user", "");
174 args.SetInteger("error", 0);
175 args.SetBoolean("editable_user", true);
176
177 if (profile->GetPrefs()->GetBoolean(prefs::kRemotingHasSetupCompleted)) {
178 args.SetString("iframeToShow", "done");
179 }
180
178 std::string json_args; 181 std::string json_args;
179 base::JSONWriter::Write(&args, false, &json_args); 182 base::JSONWriter::Write(&args, false, &json_args);
180 183
181 RemotingSetupFlow* flow = new RemotingSetupFlow(json_args, profile); 184 RemotingSetupFlow* flow = new RemotingSetupFlow(json_args, profile);
182 Browser* b = BrowserList::GetLastActive(); 185 Browser* b = BrowserList::GetLastActive();
183 if (b) { 186 if (b) {
184 b->BrowserShowHtmlDialog(flow, NULL); 187 b->BrowserShowHtmlDialog(flow, NULL);
185 } else { 188 } else {
186 delete flow; 189 delete flow;
187 return NULL; 190 return NULL;
188 } 191 }
189 return flow; 192 return flow;
190 } 193 }
191 194
192 // Global function to start the remoting setup dialog. 195 // Global function to start the remoting setup dialog.
193 void OpenRemotingSetupDialog(Profile* profile) { 196 void OpenRemotingSetupDialog(Profile* profile) {
194 RemotingSetupFlow::Run(profile->GetOriginalProfile()); 197 RemotingSetupFlow::Run(profile->GetOriginalProfile());
195 } 198 }
196 199
197 // TODO(hclam): Need to refcount RemotingSetupFlow. I need to lifetime of 200 // TODO(hclam): Need to refcount RemotingSetupFlow. I need to fix
198 // objects are all correct. 201 // lifetime of objects.
199 DISABLE_RUNNABLE_METHOD_REFCOUNT(RemotingSetupFlow); 202 DISABLE_RUNNABLE_METHOD_REFCOUNT(RemotingSetupFlow);
200 DISABLE_RUNNABLE_METHOD_REFCOUNT(RemotingSetupMessageHandler); 203 DISABLE_RUNNABLE_METHOD_REFCOUNT(RemotingSetupMessageHandler);
OLDNEW
« no previous file with comments | « chrome/browser/remoting/remoting_resources_source.cc ('k') | chrome/browser/remoting/resources/setup_done.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698