Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(300)

Unified Diff: ui/aura/mus/property_converter.cc

Issue 2635983005: Add PropertyConverter support for non-zero default primitive values. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/aura/mus/property_converter.h ('k') | ui/aura/mus/property_converter_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/aura/mus/property_converter.cc
diff --git a/ui/aura/mus/property_converter.cc b/ui/aura/mus/property_converter.cc
index 15b80d13ba98cf9cec9884fe16d704a740c92ba2..2117f3716605cb55c2ea09adaec16dc870e712ab 100644
--- a/ui/aura/mus/property_converter.cc
+++ b/ui/aura/mus/property_converter.cc
@@ -103,8 +103,9 @@ bool PropertyConverter::ConvertPropertyForTransport(
// Handle primitive property types generically.
DCHECK_GT(primitive_properties_.count(key), 0u);
+ PrimitiveType default_value = primitive_properties_.at(key).default_value;
sky 2017/01/18 04:03:09 primitive_properties_[key].default_value?
msw 2017/01/18 18:00:40 Done.
// TODO(msw): Using the int64_t accessor is wasteful for smaller types.
- const PrimitiveType value = window->GetPropertyInternal(key, 0);
+ const PrimitiveType value = window->GetPropertyInternal(key, default_value);
*transport_value = base::MakeUnique<std::vector<uint8_t>>(
mojo::ConvertTo<std::vector<uint8_t>>(value));
return true;
@@ -112,7 +113,7 @@ bool PropertyConverter::ConvertPropertyForTransport(
std::string PropertyConverter::GetTransportNameForPropertyKey(const void* key) {
if (primitive_properties_.count(key) > 0)
- return primitive_properties_[key].second;
+ return primitive_properties_.at(key).transport_name;
sky 2017/01/18 04:03:09 Same comment about using [].
msw 2017/01/18 18:00:40 Done.
auto image_key = static_cast<const WindowProperty<gfx::ImageSkia*>*>(key);
if (image_properties_.count(image_key) > 0)
@@ -142,7 +143,7 @@ void PropertyConverter::SetPropertyFromTransportValue(
const std::string& transport_name,
const std::vector<uint8_t>* data) {
for (const auto& primitive_property : primitive_properties_) {
- if (primitive_property.second.second == transport_name) {
+ if (primitive_property.second.transport_name == transport_name) {
// aura::Window only supports property types that fit in PrimitiveType.
if (data->size() != 8u) {
DVLOG(2) << "Property size mismatch (PrimitiveType): "
@@ -151,9 +152,9 @@ void PropertyConverter::SetPropertyFromTransportValue(
}
const PrimitiveType value = mojo::ConvertTo<PrimitiveType>(*data);
// TODO(msw): Should aura::Window just store all properties by name?
- window->SetPropertyInternal(primitive_property.first,
- primitive_property.second.first, nullptr,
- value, 0);
+ window->SetPropertyInternal(
+ primitive_property.first, primitive_property.second.property_name,
+ nullptr, value, primitive_property.second.default_value);
return;
}
}
@@ -224,7 +225,7 @@ bool PropertyConverter::GetPropertyValueFromTransportValue(
return false;
}
for (const auto& primitive_property : primitive_properties_) {
- if (primitive_property.second.second == transport_name) {
+ if (primitive_property.second.transport_name == transport_name) {
*value = mojo::ConvertTo<PrimitiveType>(transport_data);
return true;
}
@@ -262,4 +263,12 @@ void PropertyConverter::RegisterProperty(
string16_properties_[property] = transport_name;
}
+PropertyConverter::PrimitiveProperty::PrimitiveProperty(
+ const char* property_name,
+ const char* transport_name,
+ const PrimitiveType default_value)
+ : property_name(property_name),
+ transport_name(transport_name),
+ default_value(default_value) {}
+
} // namespace aura
« no previous file with comments | « ui/aura/mus/property_converter.h ('k') | ui/aura/mus/property_converter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698