| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/renderer/print_web_view_helper.h" | 5 #include "chrome/renderer/print_web_view_helper.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "chrome/common/render_messages.h" | 9 #include "chrome/common/render_messages.h" |
| 10 #include "chrome/renderer/render_view.h" | 10 #include "chrome/renderer/render_view.h" |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 146 | 146 |
| 147 // The routing id is sent across as it is needed to look up the | 147 // The routing id is sent across as it is needed to look up the |
| 148 // corresponding RenderViewHost instance to signal and reset the | 148 // corresponding RenderViewHost instance to signal and reset the |
| 149 // pump messages event. | 149 // pump messages event. |
| 150 params.routing_id = routing_id(); | 150 params.routing_id = routing_id(); |
| 151 // host_window_ may be NULL at this point if the current window is a popup | 151 // host_window_ may be NULL at this point if the current window is a popup |
| 152 // and the print() command has been issued from the parent. The receiver | 152 // and the print() command has been issued from the parent. The receiver |
| 153 // of this message has to deal with this. | 153 // of this message has to deal with this. |
| 154 params.host_window_id = render_view_->host_window(); | 154 params.host_window_id = render_view_->host_window(); |
| 155 params.cookie = default_settings.document_cookie; | 155 params.cookie = default_settings.document_cookie; |
| 156 // TODO(maruel): Reenable once http://crbug.com/22937 is fixed. | 156 params.has_selection = frame->hasSelection(); |
| 157 // Print selection is broken because DidStopLoading is never called. | |
| 158 // params.has_selection = frame->hasSelection(); | |
| 159 params.has_selection = false; | |
| 160 params.expected_pages_count = expected_pages_count; | 157 params.expected_pages_count = expected_pages_count; |
| 161 params.use_overlays = use_browser_overlays; | 158 params.use_overlays = use_browser_overlays; |
| 162 | 159 |
| 163 msg = new ViewHostMsg_ScriptedPrint(routing_id(), params, | 160 msg = new ViewHostMsg_ScriptedPrint(routing_id(), params, |
| 164 &print_settings); | 161 &print_settings); |
| 165 msg->EnableMessagePumping(); | 162 msg->EnableMessagePumping(); |
| 166 if (Send(msg)) { | 163 if (Send(msg)) { |
| 167 msg = NULL; | 164 msg = NULL; |
| 168 | 165 |
| 169 // If the settings are invalid, early quit. | 166 // If the settings are invalid, early quit. |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 WebFrame* web_frame) { | 230 WebFrame* web_frame) { |
| 234 // Create a new WebView with the same settings as the current display one. | 231 // Create a new WebView with the same settings as the current display one. |
| 235 // Except that we disable javascript (don't want any active content running | 232 // Except that we disable javascript (don't want any active content running |
| 236 // on the page). | 233 // on the page). |
| 237 WebPreferences prefs = render_view_->webkit_preferences(); | 234 WebPreferences prefs = render_view_->webkit_preferences(); |
| 238 prefs.javascript_enabled = false; | 235 prefs.javascript_enabled = false; |
| 239 prefs.java_enabled = false; | 236 prefs.java_enabled = false; |
| 240 | 237 |
| 241 print_web_view_ = WebView::create(this); | 238 print_web_view_ = WebView::create(this); |
| 242 prefs.Apply(print_web_view_); | 239 prefs.Apply(print_web_view_); |
| 243 print_web_view_->initializeMainFrame(NULL); | 240 print_web_view_->initializeMainFrame(this); |
| 244 | 241 |
| 245 print_pages_params_.reset(new ViewMsg_PrintPages_Params(params)); | 242 print_pages_params_.reset(new ViewMsg_PrintPages_Params(params)); |
| 246 print_pages_params_->pages.clear(); // Print all pages of selection. | 243 print_pages_params_->pages.clear(); // Print all pages of selection. |
| 247 | 244 |
| 248 std::string html = web_frame->selectionAsMarkup().utf8(); | 245 std::string html = web_frame->selectionAsMarkup().utf8(); |
| 249 std::string url_str = "data:text/html;charset=utf-8,"; | 246 std::string url_str = "data:text/html;charset=utf-8,"; |
| 250 url_str.append(html); | 247 url_str.append(html); |
| 251 GURL url(url_str); | 248 GURL url(url_str); |
| 252 | 249 |
| 253 // When loading is done this will call DidStopLoading that will do the | 250 // When loading is done this will call DidStopLoading that will do the |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 } | 327 } |
| 331 | 328 |
| 332 int32 PrintWebViewHelper::routing_id() { | 329 int32 PrintWebViewHelper::routing_id() { |
| 333 return render_view_->routing_id(); | 330 return render_view_->routing_id(); |
| 334 } | 331 } |
| 335 | 332 |
| 336 void PrintWebViewHelper::didStopLoading() { | 333 void PrintWebViewHelper::didStopLoading() { |
| 337 DCHECK(print_pages_params_.get() != NULL); | 334 DCHECK(print_pages_params_.get() != NULL); |
| 338 PrintPages(*print_pages_params_.get(), print_web_view_->mainFrame()); | 335 PrintPages(*print_pages_params_.get(), print_web_view_->mainFrame()); |
| 339 } | 336 } |
| OLD | NEW |