tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TextClause.cpp (1509B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "mozilla/dom/TextClause.h"
      8 
      9 #include "mozilla/TextEvents.h"
     10 #include "mozilla/dom/TextClauseBinding.h"
     11 
     12 namespace mozilla::dom {
     13 
     14 // Only needed for refcounted objects.
     15 NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_0(TextClause)
     16 NS_IMPL_CYCLE_COLLECTING_ADDREF(TextClause)
     17 NS_IMPL_CYCLE_COLLECTING_RELEASE(TextClause)
     18 NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(TextClause)
     19  NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY
     20  NS_INTERFACE_MAP_ENTRY(nsISupports)
     21 NS_INTERFACE_MAP_END
     22 
     23 TextClause::TextClause(nsPIDOMWindowInner* aOwner, const TextRange& aRange,
     24                       const TextRange* aTargetRange)
     25    : mOwner(aOwner), mIsTargetClause(false) {
     26  MOZ_ASSERT(aOwner);
     27  mStartOffset = aRange.mStartOffset;
     28  mEndOffset = aRange.mEndOffset;
     29  if (aRange.IsClause()) {
     30    mIsCaret = false;
     31    if (aTargetRange && aTargetRange->mStartOffset == mStartOffset) {
     32      mIsTargetClause = true;
     33    }
     34  } else {
     35    mIsCaret = true;
     36  }
     37 }
     38 
     39 JSObject* TextClause::WrapObject(JSContext* aCx,
     40                                 JS::Handle<JSObject*> aGivenProto) {
     41  return TextClause_Binding::Wrap(aCx, this, aGivenProto);
     42 }
     43 
     44 TextClause::~TextClause() = default;
     45 
     46 }  // namespace mozilla::dom