OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/print_dialog_cloud.h" | 5 #include "chrome/browser/printing/print_dialog_cloud.h" |
6 #include "chrome/browser/printing/print_dialog_cloud_internal.h" | 6 #include "chrome/browser/printing/print_dialog_cloud_internal.h" |
7 | 7 |
8 #include "base/base64.h" | 8 #include "base/base64.h" |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 // hitting the print button), the delegate is notified, and responds | 99 // hitting the print button), the delegate is notified, and responds |
100 // that the dialog should be closed, at which point things are torn | 100 // that the dialog should be closed, at which point things are torn |
101 // down and released. | 101 // down and released. |
102 | 102 |
103 // TODO(scottbyer): | 103 // TODO(scottbyer): |
104 // http://code.google.com/p/chromium/issues/detail?id=44093 The | 104 // http://code.google.com/p/chromium/issues/detail?id=44093 The |
105 // high-level flow (where the data is generated before even | 105 // high-level flow (where the data is generated before even |
106 // bringing up the dialog) isn't what we want. | 106 // bringing up the dialog) isn't what we want. |
107 | 107 |
108 using content::BrowserThread; | 108 using content::BrowserThread; |
| 109 using content::NavigationController; |
109 using content::NavigationEntry; | 110 using content::NavigationEntry; |
110 using content::WebContents; | 111 using content::WebContents; |
111 using content::WebUIMessageHandler; | 112 using content::WebUIMessageHandler; |
112 | 113 |
113 namespace internal_cloud_print_helpers { | 114 namespace internal_cloud_print_helpers { |
114 | 115 |
115 // From the JSON parsed value, get the entries for the page setup | 116 // From the JSON parsed value, get the entries for the page setup |
116 // parameters. | 117 // parameters. |
117 bool GetPageSetupParameters(const std::string& json, | 118 bool GetPageSetupParameters(const std::string& json, |
118 PrintMsg_Print_Params& parameters) { | 119 PrintMsg_Print_Params& parameters) { |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
296 web_ui()->RegisterMessageCallback("SendPrintData", | 297 web_ui()->RegisterMessageCallback("SendPrintData", |
297 base::Bind(&CloudPrintFlowHandler::HandleSendPrintData, | 298 base::Bind(&CloudPrintFlowHandler::HandleSendPrintData, |
298 base::Unretained(this))); | 299 base::Unretained(this))); |
299 web_ui()->RegisterMessageCallback("SetPageParameters", | 300 web_ui()->RegisterMessageCallback("SetPageParameters", |
300 base::Bind(&CloudPrintFlowHandler::HandleSetPageParameters, | 301 base::Bind(&CloudPrintFlowHandler::HandleSetPageParameters, |
301 base::Unretained(this))); | 302 base::Unretained(this))); |
302 | 303 |
303 // Register for appropriate notifications, and re-direct the URL | 304 // Register for appropriate notifications, and re-direct the URL |
304 // to the real server URL, now that we've gotten an HTML dialog | 305 // to the real server URL, now that we've gotten an HTML dialog |
305 // going. | 306 // going. |
306 content::NavigationController* controller = | 307 NavigationController* controller = |
307 &web_ui()->web_contents()->GetController(); | 308 &web_ui()->web_contents()->GetController(); |
308 NavigationEntry* pending_entry = controller->GetPendingEntry(); | 309 NavigationEntry* pending_entry = controller->GetPendingEntry(); |
309 if (pending_entry) { | 310 if (pending_entry) { |
310 Profile* profile = Profile::FromWebUI(web_ui()); | 311 Profile* profile = Profile::FromWebUI(web_ui()); |
311 pending_entry->SetURL( | 312 pending_entry->SetURL( |
312 CloudPrintURL(profile).GetCloudPrintServiceDialogURL()); | 313 CloudPrintURL(profile).GetCloudPrintServiceDialogURL()); |
313 } | 314 } |
314 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, | 315 registrar_.Add(this, content::NOTIFICATION_LOAD_STOP, |
315 content::Source<content::NavigationController>(controller)); | 316 content::Source<NavigationController>(controller)); |
316 } | 317 } |
317 | 318 |
318 void CloudPrintFlowHandler::Observe( | 319 void CloudPrintFlowHandler::Observe( |
319 int type, | 320 int type, |
320 const content::NotificationSource& source, | 321 const content::NotificationSource& source, |
321 const content::NotificationDetails& details) { | 322 const content::NotificationDetails& details) { |
322 if (type == content::NOTIFICATION_LOAD_STOP) { | 323 if (type == content::NOTIFICATION_LOAD_STOP) { |
323 // Take the opportunity to set some (minimal) additional | 324 // Take the opportunity to set some (minimal) additional |
324 // script permissions required for the web UI. | 325 // script permissions required for the web UI. |
325 GURL url = web_ui()->web_contents()->GetURL(); | 326 GURL url = web_ui()->web_contents()->GetURL(); |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 file_type, | 725 file_type, |
725 false, | 726 false, |
726 delete_on_close); | 727 delete_on_close); |
727 return true; | 728 return true; |
728 } | 729 } |
729 } | 730 } |
730 return false; | 731 return false; |
731 } | 732 } |
732 | 733 |
733 } // end namespace | 734 } // end namespace |
OLD | NEW |