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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp

Issue 2811333003: Remove ClearSelection() from Layout{BlockFlow,Inline}::WillbeDestroyed() (Closed)
Patch Set: Created 3 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutInline.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 2809 matching lines...) Expand 10 before | Expand all | Expand 10 after
2820 LayoutBoxModelObject* continuation = this->Continuation(); 2820 LayoutBoxModelObject* continuation = this->Continuation();
2821 if (continuation) { 2821 if (continuation) {
2822 continuation->Destroy(); 2822 continuation->Destroy();
2823 SetContinuation(nullptr); 2823 SetContinuation(nullptr);
2824 } 2824 }
2825 2825
2826 if (!DocumentBeingDestroyed()) { 2826 if (!DocumentBeingDestroyed()) {
2827 // TODO(mstensho): figure out if we need this. We have no test coverage for 2827 // TODO(mstensho): figure out if we need this. We have no test coverage for
2828 // it. It looks like all line boxes have been removed at this point. 2828 // it. It looks like all line boxes have been removed at this point.
2829 if (FirstLineBox()) { 2829 if (FirstLineBox()) {
2830 // We can't wait for LayoutBox::destroy to clear the selection,
2831 // because by then we will have nuked the line boxes.
2832 // FIXME: The FrameSelection should be responsible for this when it
2833 // is notified of DOM mutations.
2834 if (IsSelectionBorder())
2835 View()->ClearSelection();
2836
2837 // If we are an anonymous block, then our line boxes might have children 2830 // If we are an anonymous block, then our line boxes might have children
2838 // that will outlast this block. In the non-anonymous block case those 2831 // that will outlast this block. In the non-anonymous block case those
2839 // children will be destroyed by the time we return from this function. 2832 // children will be destroyed by the time we return from this function.
2840 if (IsAnonymousBlock()) { 2833 if (IsAnonymousBlock()) {
2841 for (InlineFlowBox* box = FirstLineBox(); box; 2834 for (InlineFlowBox* box = FirstLineBox(); box;
2842 box = box->NextLineBox()) { 2835 box = box->NextLineBox()) {
2843 while (InlineBox* child_box = box->FirstChild()) 2836 while (InlineBox* child_box = box->FirstChild())
2844 child_box->Remove(); 2837 child_box->Remove();
2845 } 2838 }
2846 } 2839 }
(...skipping 1815 matching lines...) Expand 10 before | Expand all | Expand 10 after
4662 return LayoutBlock::InvalidatePaintIfNeeded(paint_invalidation_state); 4655 return LayoutBlock::InvalidatePaintIfNeeded(paint_invalidation_state);
4663 } 4656 }
4664 4657
4665 void LayoutBlockFlow::InvalidateDisplayItemClients( 4658 void LayoutBlockFlow::InvalidateDisplayItemClients(
4666 PaintInvalidationReason invalidation_reason) const { 4659 PaintInvalidationReason invalidation_reason) const {
4667 BlockFlowPaintInvalidator(*this).InvalidateDisplayItemClients( 4660 BlockFlowPaintInvalidator(*this).InvalidateDisplayItemClients(
4668 invalidation_reason); 4661 invalidation_reason);
4669 } 4662 }
4670 4663
4671 } // namespace blink 4664 } // namespace blink
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/LayoutInline.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698