Skip to content

Commit

Permalink
Moved SimplifyDocumentTitle from printing/backend
Browse files Browse the repository at this point in the history
TBR=noamsml

Review URL: https://codereview.chromium.org/59903019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234127 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
vitalybuka@chromium.org committed Nov 9, 2013
1 parent 014a62c commit ec91bfa
Show file tree
Hide file tree
Showing 10 changed files with 78 additions and 51 deletions.
6 changes: 3 additions & 3 deletions chrome/browser/printing/print_job_worker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
#include "grit/generated_resources.h"
#include "printing/backend/print_backend.h"
#include "printing/print_job_constants.h"
#include "printing/printed_document.h"
#include "printing/printed_page.h"
#include "printing/printing_utils.h"
#include "ui/base/l10n/l10n_util.h"

using content::BrowserThread;
Expand Down Expand Up @@ -215,9 +215,9 @@ void PrintJobWorker::StartPrinting(PrintedDocument* new_document) {
}

string16 document_name =
printing::PrintBackend::SimplifyDocumentTitle(document_->name());
printing::SimplifyDocumentTitle(document_->name());
if (document_name.empty()) {
document_name = printing::PrintBackend::SimplifyDocumentTitle(
document_name = printing::SimplifyDocumentTitle(
l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
}
PrintingContext::Result result =
Expand Down
4 changes: 2 additions & 2 deletions chrome/service/cloud_print/print_system_win.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#include "printing/emf_win.h"
#include "printing/page_range.h"
#include "printing/pdf_render_settings.h"
#include "printing/printing_utils.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/rect.h"

Expand Down Expand Up @@ -431,8 +432,7 @@ class PrintSystemWin : public PrintSystem {
DOCINFO di = {0};
di.cbSize = sizeof(DOCINFO);
string16 doc_name = UTF8ToUTF16(job_title);
DCHECK(printing::PrintBackend::SimplifyDocumentTitle(doc_name) ==
doc_name);
DCHECK(printing::SimplifyDocumentTitle(doc_name) == doc_name);
di.lpszDocName = doc_name.c_str();
job_id_ = StartDoc(dc, &di);
if (job_id_ <= 0)
Expand Down
7 changes: 3 additions & 4 deletions chrome/service/cloud_print/printer_job_handler.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include "net/base/mime_util.h"
#include "net/http/http_response_headers.h"
#include "net/http/http_status_code.h"
#include "printing/backend/print_backend.h"
#include "printing/printing_utils.h"
#include "ui/base/l10n/l10n_util.h"
#include "url/gurl.h"

Expand Down Expand Up @@ -767,10 +767,9 @@ void PrinterJobHandler::DoPrint(const JobDetails& job_details,
if (!job_spooler_.get())
return;
string16 document_name =
printing::PrintBackend::SimplifyDocumentTitle(
UTF8ToUTF16(job_details.job_title_));
printing::SimplifyDocumentTitle(UTF8ToUTF16(job_details.job_title_));
if (document_name.empty()) {
document_name = printing::PrintBackend::SimplifyDocumentTitle(
document_name = printing::SimplifyDocumentTitle(
l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
}
UMA_HISTOGRAM_ENUMERATION("CloudPrint.JobHandlerEvent",
Expand Down
18 changes: 0 additions & 18 deletions printing/backend/print_backend.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,6 @@

#include "printing/backend/print_backend.h"

#include <algorithm>

#include "third_party/icu/source/common/unicode/uchar.h"
#include "ui/gfx/text_elider.h"

const int kMaxDocumentTitleLength = 50;

namespace printing {

PrinterBasicInfo::PrinterBasicInfo()
Expand All @@ -33,15 +26,4 @@ PrinterCapsAndDefaults::~PrinterCapsAndDefaults() {}

PrintBackend::~PrintBackend() {}

base::string16 PrintBackend::SimplifyDocumentTitle(
const base::string16& title) {
base::string16 no_controls(title);
no_controls.erase(
std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl),
no_controls.end());
base::string16 result;
gfx::ElideString(no_controls, kMaxDocumentTitleLength, &result);
return result;
}

} // namespace printing
4 changes: 0 additions & 4 deletions printing/backend/print_backend.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include <vector>

#include "base/memory/ref_counted.h"
#include "base/strings/string16.h"
#include "printing/print_job_constants.h"
#include "printing/printing_export.h"

Expand Down Expand Up @@ -98,9 +97,6 @@ class PRINTING_EXPORT PrintBackend
// Returns true if printer_name points to a valid printer.
virtual bool IsValidPrinter(const std::string& printer_name) = 0;

// Simplify title to resolve issue with some drivers.
static base::string16 SimplifyDocumentTitle(const base::string16& title);

// Allocate a print backend. If |print_backend_settings| is NULL, default
// settings will be used.
// Return NULL if no print backend available.
Expand Down
32 changes: 17 additions & 15 deletions printing/printing.gyp
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@
'emf_win.cc',
'emf_win.h',
'image.cc',
'image.h',
'image_android.cc',
'image_linux.cc',
'image_mac.cc',
'image_win.cc',
'image.h',
'metafile.h',
'metafile_impl.h',
'metafile_skia_wrapper.h',
'metafile_skia_wrapper.cc',
'metafile_skia_wrapper.h',
'page_number.cc',
'page_number.h',
'page_range.cc',
Expand All @@ -57,21 +57,11 @@
'page_size_margins.h',
'pdf_metafile_cg_mac.cc',
'pdf_metafile_cg_mac.h',
'pdf_metafile_skia.h',
'pdf_metafile_skia.cc',
'pdf_metafile_skia.h',
'print_destination_interface.h',
'print_destination_none.cc',
'print_destination_win.cc',
'printed_document_gtk.cc',
'printed_document.cc',
'printed_document.h',
'printed_document_mac.cc',
'printed_document_win.cc',
'printed_page.cc',
'printed_page.h',
'printed_pages_source.h',
'printing_context.cc',
'printing_context.h',
'print_dialog_gtk_interface.h',
'print_job_constants.cc',
'print_job_constants.h',
Expand All @@ -85,6 +75,18 @@
'print_settings_initializer_mac.h',
'print_settings_initializer_win.cc',
'print_settings_initializer_win.h',
'printed_document.cc',
'printed_document.h',
'printed_document_gtk.cc',
'printed_document_mac.cc',
'printed_document_win.cc',
'printed_page.cc',
'printed_page.h',
'printed_pages_source.h',
'printing_context.cc',
'printing_context.h',
'printing_utils.cc',
'printing_utils.h',
'units.cc',
'units.h',
],
Expand Down Expand Up @@ -244,15 +246,15 @@
'../ui/ui.gyp:ui',
],
'sources': [
'backend/print_backend_unittest.cc',
'emf_win_unittest.cc',
'printing_test.h',
'page_number_unittest.cc',
'page_range_unittest.cc',
'page_setup_unittest.cc',
'pdf_metafile_cg_mac_unittest.cc',
'printed_page_unittest.cc',
'printing_context_win_unittest.cc',
'printing_test.h',
'printing_utils_unittest.cc',
'units_unittest.cc',
],
'conditions': [
Expand Down
3 changes: 2 additions & 1 deletion printing/printing_context_win.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include "printing/print_job_constants.h"
#include "printing/print_settings_initializer_win.h"
#include "printing/printed_document.h"
#include "printing/printing_utils.h"
#include "printing/units.h"
#include "skia/ext/platform_device.h"
#include "win8/util/win8_util.h"
Expand Down Expand Up @@ -431,7 +432,7 @@ PrintingContext::Result PrintingContextWin::NewDocument(
if (SP_ERROR == SetAbortProc(context_, &AbortProc))
return OnError();

DCHECK(PrintBackend::SimplifyDocumentTitle(document_name) == document_name);
DCHECK(SimplifyDocumentTitle(document_name) == document_name);
DOCINFO di = { sizeof(DOCINFO) };
const std::wstring& document_name_wide = UTF16ToWide(document_name);
di.lpszDocName = document_name_wide.c_str();
Expand Down
28 changes: 28 additions & 0 deletions printing/printing_utils.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "printing/printing_utils.h"

#include <algorithm>

#include "third_party/icu/source/common/unicode/uchar.h"
#include "ui/gfx/text_elider.h"

namespace {
const int kMaxDocumentTitleLength = 50;
}

namespace printing {

base::string16 SimplifyDocumentTitle(const base::string16& title) {
base::string16 no_controls(title);
no_controls.erase(
std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl),
no_controls.end());
base::string16 result;
gfx::ElideString(no_controls, kMaxDocumentTitleLength, &result);
return result;
}

} // namespace printing
19 changes: 19 additions & 0 deletions printing/printing_utils.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef PRINTING_PRINTING_UTILS_H_
#define PRINTING_PRINTING_UTILS_H_

#include "base/strings/string16.h"
#include "printing/printing_export.h"

namespace printing {

// Simplify title to resolve issue with some drivers.
PRINTING_EXPORT base::string16 SimplifyDocumentTitle(
const base::string16& title);

} // namespace printing

#endif // PRINTING_PRINTING_UTILS_H_
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "base/strings/utf_string_conversions.h"
#include "printing/backend/print_backend.h"
#include "printing/printing_utils.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace printing {

std::string Simplify(const char* title) {
return UTF16ToUTF8(PrintBackend::SimplifyDocumentTitle(ASCIIToUTF16(title)));
return UTF16ToUTF8(SimplifyDocumentTitle(ASCIIToUTF16(title)));
}

TEST(PrintBackendTest, SimplifyDocumentTitle) {
TEST(PrintingUtilsTest, SimplifyDocumentTitle) {
EXPECT_STREQ("", Simplify("").c_str());
EXPECT_STREQ("Long string. Long string...ng string. Long string.",
Simplify("Long string. Long string. Long string. Long string. "
Expand Down

0 comments on commit ec91bfa

Please sign in to comment.