mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 12:51:06 +00:00
ebf3cd6240
This change is necessary to support the [CSS Highlight API](https://drafts.csswg.org/css-highlight-api-1/), which uses `Selection` internally. To replace `nsRange` with `AbstractRange`, some sections needed to be adapted since `nsRange`-specific features were used. Therefore, some methods (such as `GetRangeAt()`) may only be called if the `Selection` is *not* of type `SelectionType::eHighlight`, as it (per spec) returns an `nsRange`. These methods will now `MOZ_ASSERT` if called for a highlight selection. Additional methods are implemented which return `AbstractRange` instead and are safe to be called for every selection type. This commit also improves support of highlight features: - Invalidation of highlight ranges: adding/removing Ranges in-place instead of removing and re-adding the Selection object associated with the highlight. - Ranges are only associated with the Selection that shares the same Document - Fixed minor IDL issue Differential Revision: https://phabricator.services.mozilla.com/D170582
25 lines
715 B
C++
25 lines
715 B
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef DOM_BASE_STYLED_RANGE_H_
|
|
#define DOM_BASE_STYLED_RANGE_H_
|
|
|
|
#include "mozilla/RefPtr.h"
|
|
#include "mozilla/TextRange.h"
|
|
|
|
namespace mozilla::dom {
|
|
class AbstractRange;
|
|
}
|
|
|
|
struct StyledRange {
|
|
explicit StyledRange(mozilla::dom::AbstractRange* aRange);
|
|
|
|
RefPtr<mozilla::dom::AbstractRange> mRange;
|
|
mozilla::TextRangeStyle mTextRangeStyle;
|
|
};
|
|
|
|
#endif // DOM_BASE_STYLED_RANGE_H_
|