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

Unified Diff: cc/playback/display_list_recording_source.cc

Issue 1527863002: Serialize PictureLayer properties. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 5 years 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
Index: cc/playback/display_list_recording_source.cc
diff --git a/cc/playback/display_list_recording_source.cc b/cc/playback/display_list_recording_source.cc
index 57602fbbc6351d0b82f519433126da4f8c30a046..2935bef6dccd968c3214b000717ea5850d90871b 100644
--- a/cc/playback/display_list_recording_source.cc
+++ b/cc/playback/display_list_recording_source.cc
@@ -59,7 +59,8 @@ void DisplayListRecordingSource::ToProtobuf(
proto->set_clear_canvas_with_debug_color(clear_canvas_with_debug_color_);
proto->set_solid_color(static_cast<uint64_t>(solid_color_));
proto->set_background_color(static_cast<uint64_t>(background_color_));
- display_list_->ToProtobuf(proto->mutable_display_list());
+ if (display_list_)
+ display_list_->ToProtobuf(proto->mutable_display_list());
}
void DisplayListRecordingSource::FromProtobuf(
@@ -75,9 +76,16 @@ void DisplayListRecordingSource::FromProtobuf(
clear_canvas_with_debug_color_ = proto.clear_canvas_with_debug_color();
solid_color_ = static_cast<SkColor>(proto.solid_color());
background_color_ = static_cast<SkColor>(proto.background_color());
- display_list_ = DisplayItemList::CreateFromProto(proto.display_list());
- FinishDisplayItemListUpdate();
+ // This might not exist if the |display_list_| of the serialized
+ // DisplayListRecordingSource was null, wich can happen if |Clear()| is
+ // called.
+ if (proto.has_display_list()) {
+ display_list_ = DisplayItemList::CreateFromProto(proto.display_list());
+ FinishDisplayItemListUpdate();
+ } else {
+ display_list_ = nullptr;
+ }
}
void DisplayListRecordingSource::UpdateInvalidationForNewViewport(

Powered by Google App Engine
This is Rietveld 408576698