Commit 86836ab2 authored by Evan Stade's avatar Evan Stade Committed by Commit Bot

Don't implicitly convert between mojo type string and C++ base::string16

Update most .mojom files to use mojo_base.mojom.String16. This implicit
conversion adds extra UTF8<->UTF16 conversions and makes mojo definitions
less self documenting.

CredentialManager is the last hold out. Fixing that and removing
string_traits_string16.cc/h is punted for now.

Bug: 816970
Change-Id: Ibf214e8f4096616291ff493f5ddf5c79c6a16cf4
Reviewed-on: https://chromium-review.googlesource.com/920688
Commit-Queue: Evan Stade <estade@chromium.org>
Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Reviewed-by: default avatarTom Sepez <tsepez@chromium.org>
Reviewed-by: default avatarKen Rockot <rockot@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539553}
parent 69246b89
......@@ -73,9 +73,8 @@ class TestTextInputClient : public ui::mojom::TextInputClient {
if (run_loop_)
run_loop_->Quit();
}
void InsertText(const std::string& text) override {
CompositionEvent ev = {CompositionEventType::INSERT_TEXT,
base::UTF8ToUTF16(text), 0};
void InsertText(const base::string16& text) override {
CompositionEvent ev = {CompositionEventType::INSERT_TEXT, text, 0};
receieved_event_ = ev;
if (run_loop_)
run_loop_->Quit();
......
......@@ -4,8 +4,6 @@
#include "chrome/browser/ui/views/ime_driver/remote_text_input_client.h"
#include "base/strings/utf_string_conversions.h"
RemoteTextInputClient::RemoteTextInputClient(
ui::mojom::TextInputClientPtr remote_client,
ui::TextInputType text_input_type,
......@@ -45,7 +43,7 @@ void RemoteTextInputClient::ClearCompositionText() {
}
void RemoteTextInputClient::InsertText(const base::string16& text) {
remote_client_->InsertText(base::UTF16ToUTF8(text));
remote_client_->InsertText(text);
}
void RemoteTextInputClient::InsertChar(const ui::KeyEvent& event) {
......
......@@ -25,6 +25,7 @@ mojom("mojo_types") {
public_deps = [
"//mojo/common:common_custom_types",
"//mojo/public/mojom/base",
"//url/mojom:url_mojom_gurl",
"//url/mojom:url_mojom_origin",
]
......
......@@ -6,6 +6,7 @@ module autofill.mojom;
import "mojo/common/text_direction.mojom";
import "mojo/common/time.mojom";
import "mojo/public/mojom/base/string16.mojom";
import "url/mojom/origin.mojom";
import "url/mojom/url.mojom";
......@@ -101,14 +102,14 @@ enum LabelSource {
// autofill::FormFieldData
struct FormFieldData {
string label;
string name;
string id;
string value;
mojo_base.mojom.String16 label;
mojo_base.mojom.String16 name;
mojo_base.mojom.String16 id;
mojo_base.mojom.String16 value;
string form_control_type;
string autocomplete_attribute;
string placeholder;
string css_classes;
mojo_base.mojom.String16 placeholder;
mojo_base.mojom.String16 css_classes;
uint32 properties_mask;
uint64 max_length;
......@@ -119,15 +120,15 @@ struct FormFieldData {
RoleAttribute role;
mojo.common.mojom.TextDirection text_direction;
array<string> option_values;
array<string> option_contents;
array<mojo_base.mojom.String16> option_values;
array<mojo_base.mojom.String16> option_contents;
LabelSource label_source;
};
// autofill::FormData
struct FormData {
string name;
mojo_base.mojom.String16 name;
// TODO(crbug.com/788181): Either change type to Origin or rename to URL.
url.mojom.Url origin;
url.mojom.Url action;
......@@ -156,20 +157,19 @@ struct FormDataPredictions {
// autofill::PasswordAndRealm
struct PasswordAndRealm {
string password;
mojo_base.mojom.String16 password;
string realm;
};
// autofill::PasswordFormFillData
struct PasswordFormFillData {
string name;
mojo_base.mojom.String16 name;
url.mojom.Url origin;
url.mojom.Url action;
FormFieldData username_field;
FormFieldData password_field;
string preferred_realm;
map<string, PasswordAndRealm> additional_logins;
map<mojo_base.mojom.String16, PasswordAndRealm> additional_logins;
bool wait_for_username;
bool is_possible_change_password_form;
};
......@@ -184,8 +184,8 @@ struct PasswordFormGenerationData {
// autofill::PossibleUsernamePair
struct PossibleUsernamePair {
string value;
string field_name;
mojo_base.mojom.String16 value;
mojo_base.mojom.String16 field_name;
};
// autofill::PasswordForm
......@@ -195,21 +195,21 @@ struct PasswordForm {
url.mojom.Url origin_with_path;
url.mojom.Url action;
string affiliated_web_realm;
string submit_element;
string username_element;
mojo_base.mojom.String16 submit_element;
mojo_base.mojom.String16 username_element;
bool username_marked_by_site;
string username_value;
mojo_base.mojom.String16 username_value;
array<PossibleUsernamePair> other_possible_usernames;
array<string> all_possible_passwords;
array<mojo_base.mojom.String16> all_possible_passwords;
bool form_has_autofilled_value;
string password_element;
string password_value;
mojo_base.mojom.String16 password_element;
mojo_base.mojom.String16 password_value;
bool password_value_is_default;
string new_password_element;
string new_password_value;
mojo_base.mojom.String16 new_password_element;
mojo_base.mojom.String16 new_password_value;
bool new_password_value_is_default;
bool new_password_marked_by_site;
string confirmation_password_element;
mojo_base.mojom.String16 confirmation_password_element;
bool preferred;
mojo.common.mojom.Time date_created;
mojo.common.mojom.Time date_synced;
......@@ -218,7 +218,7 @@ struct PasswordForm {
int32 times_used;
FormData form_data;
GenerationUploadStatus generation_upload_status;
string display_name;
mojo_base.mojom.String16 display_name;
url.mojom.Url icon_url;
url.mojom.Origin federation_origin;
bool skip_zero_click;
......
......@@ -7,6 +7,7 @@
#include "base/i18n/rtl.h"
#include "mojo/common/common_custom_types_struct_traits.h"
#include "mojo/common/time_struct_traits.h"
#include "mojo/public/cpp/base/string16_mojom_traits.h"
#include "url/mojom/origin_mojom_traits.h"
#include "url/mojom/url_gurl_mojom_traits.h"
......
include_rules = [
"+ipc",
"+mojo/public",
]
......@@ -85,5 +85,5 @@ struct SpellCheckResult {
Decoration decoration;
int32 location;
int32 length;
array<string> replacements;
array<mojo_base.mojom.String16> replacements;
};
......@@ -4,6 +4,8 @@
#include "components/spellcheck/common/spellcheck_struct_traits.h"
#include "mojo/public/cpp/base/string16_mojom_traits.h"
namespace mojo {
spellcheck::mojom::Decoration
......
......@@ -5,6 +5,7 @@
module translate.mojom;
import "mojo/common/time.mojom";
import "mojo/public/mojom/base/string16.mojom";
import "url/mojom/url.mojom";
enum TranslateError {
......@@ -31,7 +32,7 @@ struct LanguageDetectionDetails {
bool has_notranslate;
string html_root_language;
string adopted_language;
string contents;
mojo_base.mojom.String16 contents;
};
interface Page {
......
......@@ -5,6 +5,7 @@
#include "components/translate/content/common/translate_struct_traits.h"
#include "mojo/common/time_struct_traits.h"
#include "mojo/public/cpp/base/string16_mojom_traits.h"
#include "url/mojom/url_gurl_mojom_traits.h"
namespace mojo {
......
......@@ -33,7 +33,7 @@ class TestTextInputClient : public ui::mojom::TextInputClient {
void SetCompositionText(const ui::CompositionText& composition) override {}
void ConfirmCompositionText() override {}
void ClearCompositionText() override {}
void InsertText(const std::string& text) override {}
void InsertText(const base::string16& text) override {}
void InsertChar(std::unique_ptr<ui::Event> event) override {
receieved_event_ = std::move(event);
if (run_loop_)
......
......@@ -5,6 +5,7 @@
module ui.mojom;
import "mojo/common/text_direction.mojom";
import "mojo/public/mojom/base/string16.mojom";
import "ui/events/mojo/event.mojom";
import "ui/gfx/geometry/mojo/geometry.mojom";
import "ui/gfx/range/mojo/range.mojom";
......@@ -43,18 +44,18 @@ struct CandidateWindowProperties {
// Represents a candidate window entry.
struct CandidateWindowEntry {
// Value of the candidate.
string value;
mojo_base.mojom.String16 value;
// Short string displayed next to the candidate, often the shortcut key or
// index.
string label;
mojo_base.mojom.String16 label;
// Additional text describing the candidate.
string annotation;
mojo_base.mojom.String16 annotation;
// The usage or detailed description of the candidate.
string description_title;
string description_body;
mojo_base.mojom.String16 description_title;
mojo_base.mojom.String16 description_body;
};
// See comments for ui::ImeTextSpan::Type for more details.
......@@ -80,7 +81,7 @@ struct ImeTextSpan {
// Represents a text currently being composed by IME. Corresponds to
// ui::CompositionText.
struct CompositionText {
string text;
mojo_base.mojom.String16 text;
array<ImeTextSpan> ime_text_spans;
gfx.mojom.Range selection;
};
......@@ -163,7 +164,7 @@ interface TextInputClient {
// Inserts a given text at the insertion point. Current composition text or
// selection will be removed. This method should never be called when the
// current text input type is TEXT_INPUT_TYPE_NONE.
InsertText(string text);
InsertText(mojo_base.mojom.String16 text);
// Inserts a single character at the insertion point. Unlike InsertText(),
// the character is not processed. See ui::TextInputClient::InsertChar()
......
......@@ -4,6 +4,7 @@
#include "services/ui/public/interfaces/ime/ime_struct_traits.h"
#include "mojo/public/cpp/base/string16_mojom_traits.h"
#include "ui/gfx/range/mojo/range_struct_traits.h"
namespace mojo {
......
......@@ -5,7 +5,6 @@
#ifndef SERVICES_UI_PUBLIC_INTERFACES_IME_IME_STRUCT_TRAITS_H_
#define SERVICES_UI_PUBLIC_INTERFACES_IME_IME_STRUCT_TRAITS_H_
#include "base/strings/utf_string_conversions.h"
#include "services/ui/public/interfaces/ime/ime.mojom-shared.h"
#include "ui/base/ime/candidate_window.h"
#include "ui/base/ime/composition_text.h"
......@@ -54,20 +53,20 @@ struct StructTraits<ui::mojom::CandidateWindowPropertiesDataView,
template <>
struct StructTraits<ui::mojom::CandidateWindowEntryDataView,
ui::CandidateWindow::Entry> {
static std::string value(const ui::CandidateWindow::Entry& e) {
return base::UTF16ToUTF8(e.value);
static base::string16 value(const ui::CandidateWindow::Entry& e) {
return e.value;
}
static std::string label(const ui::CandidateWindow::Entry& e) {
return base::UTF16ToUTF8(e.label);
static base::string16 label(const ui::CandidateWindow::Entry& e) {
return e.label;
}
static std::string annotation(const ui::CandidateWindow::Entry& e) {
return base::UTF16ToUTF8(e.annotation);
static base::string16 annotation(const ui::CandidateWindow::Entry& e) {
return e.annotation;
}
static std::string description_title(const ui::CandidateWindow::Entry& e) {
return base::UTF16ToUTF8(e.description_title);
static base::string16 description_title(const ui::CandidateWindow::Entry& e) {
return e.description_title;
}
static std::string description_body(const ui::CandidateWindow::Entry& e) {
return base::UTF16ToUTF8(e.description_body);
static base::string16 description_body(const ui::CandidateWindow::Entry& e) {
return e.description_body;
}
static bool Read(ui::mojom::CandidateWindowEntryDataView data,
ui::CandidateWindow::Entry* out);
......@@ -75,9 +74,7 @@ struct StructTraits<ui::mojom::CandidateWindowEntryDataView,
template <>
struct StructTraits<ui::mojom::CompositionTextDataView, ui::CompositionText> {
static std::string text(const ui::CompositionText& c) {
return base::UTF16ToUTF8(c.text);
}
static base::string16 text(const ui::CompositionText& c) { return c.text; }
static ui::ImeTextSpans ime_text_spans(const ui::CompositionText& c) {
return c.ime_text_spans;
}
......
......@@ -8,6 +8,7 @@
#include "base/message_loop/message_loop.h"
#include "base/strings/utf_string_conversions.h"
#include "mojo/public/cpp/base/string16_mojom_traits.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "services/ui/public/interfaces/ime/ime_struct_traits_test.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
......
......@@ -30,7 +30,7 @@ struct NotificationAction {
string action;
// Title of the action button.
string title;
mojo_base.mojom.String16 title;
// URL of the icon for the button. May be empty if no url was specified.
url.mojom.Url icon;
......
......@@ -4,7 +4,6 @@
module blink.mojom;
import "mojo/public/mojom/base/string16.mojom";
import "third_party/WebKit/public/platform/modules/notifications/notification.mojom";
import "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom";
......
......@@ -39,8 +39,8 @@ void TextInputClientImpl::ClearCompositionText() {
text_input_client_->ClearCompositionText();
}
void TextInputClientImpl::InsertText(const std::string& text) {
text_input_client_->InsertText(base::UTF8ToUTF16(text));
void TextInputClientImpl::InsertText(const base::string16& text) {
text_input_client_->InsertText(text);
}
void TextInputClientImpl::InsertChar(std::unique_ptr<ui::Event> event) {
......
......@@ -31,7 +31,7 @@ class TextInputClientImpl : public ui::mojom::TextInputClient {
void SetCompositionText(const ui::CompositionText& composition) override;
void ConfirmCompositionText() override;
void ClearCompositionText() override;
void InsertText(const std::string& text) override;
void InsertText(const base::string16& text) override;
void InsertChar(std::unique_ptr<ui::Event> event) override;
void DispatchKeyEventPostIME(
std::unique_ptr<ui::Event> event,
......
......@@ -41,7 +41,7 @@ struct NotificationItem {
// The fields and their meanings match message_center::ButtonInfo.
struct ButtonInfo {
string title;
mojo_base.mojom.String16 title;
gfx.mojom.ImageSkia? icon;
mojo_base.mojom.String16? placeholder;
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment