Opened 12 years ago

Closed 12 years ago

#12964 closed Bug (fixed)

editable.extractHtmlFromRange tries to extract range twice from a single table cell

Reported by: Piotrek Koszuliński Owned by: Piotrek Koszuliński
Priority: Normal Milestone: CKEditor 4.5.0 Beta
Component: General Version: 4.5.0 Beta
Keywords: Cc:

Description

Bug revealed by #11586.

See ​http://tests.ckeditor.dev:1030/tests/core/editable/getextractselectedhtml#tests%2Fcore%2Feditable%2Fgetextractselectedhtml%20-%20test%20extractHtmlFromRange%3A%20tables%20%2320

Inside helpers.table.deleteRanges( that ); 4 ranges are being removed (they are stored in that.tableContentsRange), but two of them are placed in exactly the same spot and other two as well. After the first range of each pair is removed, extraction of the second range on non-IE browsers do nothing (surprisingly) and on IE8-10 it leads to removing nodes outside of the marked table cell. In result of this a bookmark span is removed and hence the error is thrown upon its restoring.

There are two issues here, but only one needs to be fixed. First one is that ranges are duplicated and this is the root of the issue. Second is that range.extractContents() does something weird instead of throwing an error, but we can ignore this.

Change History (4)

comment:1 Changed 12 years ago by Piotrek Koszuliński

Status: new → confirmed

comment:2 Changed 12 years ago by Piotrek Koszuliński

Owner: set to Piotrek Koszuliński
Status: confirmed → assigned

comment:3 Changed 12 years ago by Piotrek Koszuliński

Status: assigned → review

Pushed ​branch:t/12964. First I thought that I'll try to fix walker.guard which was executed too many times, but that ended in #12983 being a dead end.

PS. remember to restart bender once you check out the branch (change in bender.js). PPS. #12987.

comment:4 Changed 12 years ago by Piotr Jasiun

Resolution: → fixed
Status: review → closed

This seems to be the best solution. Closed with ​git:fb71fc8.

Note: See TracTickets for help on using tickets.
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy