| OLD | NEW |
| 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 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" | 5 #include "chrome/browser/printing/cloud_print/cloud_print_setup_flow.h" |
| 6 | 6 |
| 7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
| 8 #include "base/memory/singleton.h" | 8 #include "base/memory/singleton.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 args.SetInteger("error", 0); | 69 args.SetInteger("error", 0); |
| 70 args.SetBoolean("editable_user", true); | 70 args.SetBoolean("editable_user", true); |
| 71 | 71 |
| 72 bool setup_done = false; | 72 bool setup_done = false; |
| 73 if (profile->GetPrefs()->HasPrefPath(prefs::kCloudPrintEmail) && | 73 if (profile->GetPrefs()->HasPrefPath(prefs::kCloudPrintEmail) && |
| 74 !profile->GetPrefs()->GetString(prefs::kCloudPrintEmail).empty()) | 74 !profile->GetPrefs()->GetString(prefs::kCloudPrintEmail).empty()) |
| 75 setup_done = true; | 75 setup_done = true; |
| 76 args.SetString("pageToShow", setup_done ? "setupdone" : "cloudprintsetup"); | 76 args.SetString("pageToShow", setup_done ? "setupdone" : "cloudprintsetup"); |
| 77 | 77 |
| 78 std::string json_args; | 78 std::string json_args; |
| 79 base::JSONWriter::Write(&args, false, &json_args); | 79 base::JSONWriter::Write(&args, &json_args); |
| 80 | 80 |
| 81 CloudPrintSetupFlow* flow = new CloudPrintSetupFlow(json_args, profile, | 81 CloudPrintSetupFlow* flow = new CloudPrintSetupFlow(json_args, profile, |
| 82 delegate, setup_done); | 82 delegate, setup_done); |
| 83 // We may not always have a browser. This can happen when we are being | 83 // We may not always have a browser. This can happen when we are being |
| 84 // invoked in the context of a "token expired" notfication. If we don't have | 84 // invoked in the context of a "token expired" notfication. If we don't have |
| 85 // a brower, use the underlying dialog system to show the dialog without | 85 // a brower, use the underlying dialog system to show the dialog without |
| 86 // using a browser. | 86 // using a browser. |
| 87 if (!parent_window && browser && browser->window()) | 87 if (!parent_window && browser && browser->window()) |
| 88 parent_window = browser->window()->GetNativeHandle(); | 88 parent_window = browser->window()->GetNativeHandle(); |
| 89 browser::ShowHtmlDialog(parent_window, profile, browser, flow, STYLE_GENERIC); | 89 browser::ShowHtmlDialog(parent_window, profile, browser, flow, STYLE_GENERIC); |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 web_ui_->GetWebContents()->OpenURL(params); | 273 web_ui_->GetWebContents()->OpenURL(params); |
| 274 } | 274 } |
| 275 | 275 |
| 276 /////////////////////////////////////////////////////////////////////////////// | 276 /////////////////////////////////////////////////////////////////////////////// |
| 277 // Helper methods for showing contents of the Web UI | 277 // Helper methods for showing contents of the Web UI |
| 278 void CloudPrintSetupFlow::ShowGaiaLogin(const DictionaryValue& args) { | 278 void CloudPrintSetupFlow::ShowGaiaLogin(const DictionaryValue& args) { |
| 279 if (web_ui_) | 279 if (web_ui_) |
| 280 web_ui_->CallJavascriptFunction("cloudprint.showSetupLogin"); | 280 web_ui_->CallJavascriptFunction("cloudprint.showSetupLogin"); |
| 281 | 281 |
| 282 std::string json; | 282 std::string json; |
| 283 base::JSONWriter::Write(&args, false, &json); | 283 base::JSONWriter::Write(&args, &json); |
| 284 string16 javascript = UTF8ToUTF16("cloudprint.showGaiaLogin(" + json + ");"); | 284 string16 javascript = UTF8ToUTF16("cloudprint.showGaiaLogin(" + json + ");"); |
| 285 | 285 |
| 286 ExecuteJavascriptInIFrame(SetupIframeXPath(), javascript); | 286 ExecuteJavascriptInIFrame(SetupIframeXPath(), javascript); |
| 287 } | 287 } |
| 288 | 288 |
| 289 void CloudPrintSetupFlow::ShowGaiaSuccessAndSettingUp() { | 289 void CloudPrintSetupFlow::ShowGaiaSuccessAndSettingUp() { |
| 290 ExecuteJavascriptInIFrame( | 290 ExecuteJavascriptInIFrame( |
| 291 SetupIframeXPath(), | 291 SetupIframeXPath(), |
| 292 ASCIIToUTF16("cloudprint.showGaiaSuccessAndSettingUp();")); | 292 ASCIIToUTF16("cloudprint.showGaiaSuccessAndSettingUp();")); |
| 293 } | 293 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 334 | 334 |
| 335 void CloudPrintSetupFlow::ExecuteJavascriptInIFrame( | 335 void CloudPrintSetupFlow::ExecuteJavascriptInIFrame( |
| 336 const string16& iframe_xpath, | 336 const string16& iframe_xpath, |
| 337 const string16& js) { | 337 const string16& js) { |
| 338 if (web_ui_) { | 338 if (web_ui_) { |
| 339 content::RenderViewHost* rvh = | 339 content::RenderViewHost* rvh = |
| 340 web_ui_->GetWebContents()->GetRenderViewHost(); | 340 web_ui_->GetWebContents()->GetRenderViewHost(); |
| 341 rvh->ExecuteJavascriptInWebFrame(iframe_xpath, js); | 341 rvh->ExecuteJavascriptInWebFrame(iframe_xpath, js); |
| 342 } | 342 } |
| 343 } | 343 } |
| OLD | NEW |