code: function (rng) {
        var startPos = CaretPosition.fromRangeStart(rng);
        var endPos = CaretPosition.fromRangeEnd(rng);
        var rootNode = rng.commonAncestorContainer;
  
        return CaretFinder.fromPosition(false, rootNode, endPos)
          .map(function (newEndPos) {
            if (!CaretUtils.isInSameBlock(startPos, endPos, rootNode) && CaretUtils.isInSameBlock(startPos, newEndPos, rootNode)) {
              return createRange(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());
            } else {
              return rng;
            }
          }).getOr(rng);
      }
docs: If you triple click a paragraph in this case: <blockquote><p>a</p></blockquote><p>b</p> It would become this range in webkit: <blockquote><p>[a</p></blockquote><p>]b</p> We would want it to be: <blockquote><p>[a]</p></blockquote><p>b</p> Since it would otherwise produces spans out of thin air on insertContent for example.