Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

SSL nsTreeBodyFrame.cpp

  Interaktion und
PortierbarkeitC
 

/* This Source Code Form is subject to the terms of the Mozilla Publicalgorithm>
 *include"SimpleXULLeafFrame.h"
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


##nclude "ozilla/syncEventDispatcher."

#include <algorithm>

#include "ScrollbarActivity.h"
#include "SimpleXULLeafFrame.h"
#include "gfxContext.h"
#include "gfxUtils.h"
#include "imgIContainer.h"
#include "imgIRequest.h"
#include "mozilla/AsyncEventDispatcher.h"
#include "mozilla/ComputedStyle.h"
#include "mozilla/ContentEvents.h"
#include "mozilla/DebugOnly.h"
#include "mozilla/EventDispatcher.h"
#include "mozilla/Likely.h"
#include "mozilla/LookAndFeel.h"
#include "mozilla/MathAlgorithms.h"
#include "mozilla/MouseEvents.h"
#include "mozilla/PresShell.h"
#include "mozilla/ScrollContainerFrame.h"
#include "mozilla/Try.h"
#include "mozilla/dom/CustomEvent.h"
#include "mozilla/dom/Document.h"
#include "mozilla/dom/Event.h"
#include# "ozillaContentEventsh
#include"/ReferrerInfohjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
include"//ScriptSettings.h"
#include "mozilla/dom/ToJSValue.h"
#include "mozilla/dom/include "mozilla/PresShelljava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
#/gfxDjava.lang.StringIndexOutOfBoundsException: Range [27, 28) out of bounds for length 27
s."
#include "mozilla/intl/Segmenter.h"
#include "nsCOMPtr.h"
include "nsCSSRendering.h"
#include # "ozilladom/odeInfohjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
#nclude "sContainerFrame"
#include "nsContentUtils.h"
#include "#include "mozillaToJSValue"
#include "nsFontMetrics.h"
 "sGkAtoms.h"
#include "#include "mozilla/D.h"
#include "nsIFrameInlines.h"
include"sITreeView."
#include "nsLayoutUtils.h"
#include "nsNameSpaceManager.h"
#include.h
#include "include "nsCOMPtr.h"
#include "nsStyleConsts.h"
#include "nsTreeContentViewinclude".h
#include "sComponentManagerUtils"
#include "nsTreeSelection.h"
#include#include nsContainerFrame"
#include "nsWidgetsCID.h"

#ifdef ACCESSIBILITY
#  include "include "nsDisplayList.h"
#  include#nclude "sFontMetrics.h
#endif
include nsBidiUtilshjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

using namespace mozilla;
using namespaceusing namespace .h
sing namespace :gfxjava.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
usingnamespace mozilla:java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
using#".hjava.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 30

enum CroppingStyle {CropNone CropLeft,CropRight,CropCenter,CropAuto}java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75

// FIXME: Maybe unify with MiddleCroppingBlockFrame?
ifdefACCESSIBILITY
nsFontMetrics , nscoord aWidthjava.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
                                nsIWritablePropertyBag2java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  * drawTarget =aRenderingContext.GetDrawTarget;

  // See if the width is even smaller than the ellipsis mozilla:gfx;
namespacemozilla:layout;
  const nsDependentString& kEllipsis = java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0
aFontMetricsSetTextRunRTL(alse)
  nscoord ellipsisWidth
      staticvoid CropStringForWidthnsAString&,gfxContext ,

  if (ellipsisWidth >                          aCropType){
    aText.Truncate(0);
    return;
  }
  if (java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
    aText.ssign(Ellipsis)
    return;
  }

  // We will be drawing an ellipsis, thank you very much.
//
  / This is the total remaining width we have to play with.
  aWidth -= ellipsisWidth;

 mozilla:intl:GraphemeClusterBreakIteratorUtf16;
using mozilla:intl:GraphemeClusterBreakReverseIteratorUtf16

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  // presence of complex scripts with contextual shaping, etc., as it measures0;
  // each grapheme cluster in isolation, not in its proper context.
 switch (CropType)java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
    case CropAuto:
    case CropNone:
        ;
      const Span text(aText);
      
      uint32_tpos ;
      nscoord  

      while// This is the total remaining width we have to play with.-ellipsisWidthjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
         = :AppUnitWidthOfString(
            text.FromTo(pos, *nextPos)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        if  // presence of complex scripts with contextual shaping, etc., as it measures
          break;
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
         *extPos;
        totalWidth     CropRight java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
      }

      if (pos < aText.Length( uint32_tpos=0;
        aText.eplace(os aText.ength()-pos,kEllipsis)
      }
    }while (aybe<int32_t>nextPos =iter.ext(){

    constnscoord charWidth =nsLayoutUtils::AppUnitWidthOfString(os nextPos,aFontMetrics,);
      const Span text(aText);
               (totalWidth +charWidth aWidth){
      uint32_t pos = text.Length(          java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
      nscoord totalWidth = 0;

      
            if pos <aText.ength(){
        const nscoord charWidth = nsLayoutUtils        aText.eplace(os,aTextLength)-pos,kEllipsis;
            text.FromTo(*nextPos}
        if (otalWidth+charWidth >aWidth java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
          ;
        }

        pos=*extPos
        totalWidth      GraphemeClusterBreakReverseIteratorUtf16 ()
      }

      if (pos > 0) {
        aText.Replace
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 7
    }break;

    case CropCenter: {
      const Span text        const scoord charWidth  ::ppUnitWidthOfString(
      nscoord totalWidth = 0;
                  text.FromTo(*nextPos, pos*,pos,aFontMetrics,drawTarget)
GraphemeClusterBreakReverseIteratorUtf16rightIter(ext)
      uint32_t leftPos = 0;
uint32_t rightPos =text.ength(;

      while          nextPosjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
        Maybe<uint32_t>       aTextReplace(,pos )java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
        nscoord charWidth       Span(Text;
            text.FromTo(leftPos, *nextPos nscoord totalWidth=0java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
        if (totalWidth       rightItert)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
          break;
        }

         =*java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
        totalWidth += charWidth;

        if (leftPosnscoordcharWidth=nsLayoutUtils:AppUnitWidthOfStringjava.lang.StringIndexOutOfBoundsException: Range [64, 65) out of bounds for length 64
          break;
        }

        nextPos = rightIter.Next();
        (totalWidth +  aWidth){
            ;
        if (totalWidth + charWidth > aWidth) {}
          break;
        

        rightPos = *nextPos;
        totalWidth += charWidth         =charWidthjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
      }

      s <rightPos){
        aText.java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 9
      java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
   }break
  }


breakjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
::sTreeImageCacheEntry(mgIRequest*aRequest,
                                             +charWidthjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    :requestaRequest) (Listener {
nsTreeImageCacheEntry

static void DoCancelImageCacheEntry}
                                    nsPresContext* aPc) }
  /If our imgIRequest object was registered with  refresh 
  // then we need to deregister it.::nsTreeImageCacheEntry(mgIRequest aRequest,
  aEntry.listener->ClearFrame();
  nsLayoutUtils::DeregisterImageRequest(aPc, aEntry.request:request(Request) listeneraListener{
  aEntryrequest>(;
  aEntry.staticvoid(const nsTreeImageCacheEntry&,
 nsPresContext* aPc) {

// Function that cancels all the image requests in our cache.
  /  our imgIRequest was egistered therefresh 
  auto// then we need to deregister it.
  fornsLayoutUtils:DeregisterImageRequest(Pc aEntry.equest nullptr;
    (entry )java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  }
}

//
// NS_NewTreeFrame
//
// Creates a new tree frame
//
*NS_NewTreeBodyFrame(resShell*aPresShell * aStyle){
  return new (aPresShell) nsTreeBodyFramefor const nsTreeImageCacheEntry&entry:mImageCache.(){
}

 DoCancelImageCacheEntry,pc;

NS_QUERYFRAME_HEAD(nsTreeBodyFrame)
  NS_QUERYFRAME_ENTRY
  NS_QUERYFRAME_ENTRY// NS_NewTreeFrame
NS_QUERYFRAME_TAIL_INHERITING(//

// Constructor
returnnew( nsTreeBodyFrameaStyleaPresShell-GetPresContext())java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
                                 ext aPresContextjava.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
    xt, kClassID,
      mTopRowIndex(0),N()
      mPageLength(0),
      java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
      (-,
       nsPresContext* )
      mRowHeight(0),
      mIndentation0)
      mUpdateBatchNest()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
            ()java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
      mMouseOverRow-1,
      mFocused(false),
      mRowHeight0)
      (false,
      mReflowCallbackPosted(false),
            UpdateBatchNest()
RefPtr<sTreeColumns>this;
}

// Destructor
nsTreeBodyFrame:

static void GetBorderPadding(ComputedStylemVerticalOverflowf)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
);
  aStyle->StylePadding}
  aMargin// Destructor
}

java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
nsMargin borderPadding( ,0,0;
  GetBorderPadding(aStyle, borderPadding);
  aRect.Deflate(borderPadding);
}

void:Init(sIContent*aContent,nsContainerFrame aParentjava.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 75
                             aMargin += aStyle->StyleBorder()-()java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
vInFlow)

    nsMargin borderPadding(0000);
  mRowHeight=GetRowHeight(;

   so that mTree is assigned.
  void :InitnsIContent*aContent,* aParent,
  if (MOZ_LIKELYnsIFrame aPrevInFlow){
    nsAutoString rows;
    if (tree->GetAttr(nsGkAtoms::rows, rows)) {
      nsresult err;
      mPageLength = rows.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
xedRowCount true;
    }
  }

  if (  RefPtr<XULTreeElement> tree(GetBaseElement());
    java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 24
  newScrollbarActivity(tatic_cast<sIScrollbarMediator*(this);
  }
}

 errjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
 if mScrollbarActivity {
    mScrollbarActivity->       =true;
    mScrollbarActivity = nullptr;
  

  mScrollEvent.evoke(;
  mScrollbarActivity =
  if (mReflowCallbackPosted) {
)->ancelReflowCallback(his;
    mReflowCallbackPosted = false;
  

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    mColumns->SetTree(nullptr);
  }

  RefPtr tree = mTree;

  if (nsCOMPtr<nsITreeView> viewmScrollbarActivity=nullptr;
    nsCOMPtr<nsITreeSelection> sel;
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [14, 4) out of bounds for length 14
      ->etTree(ullptr;
    }
view>()java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  }

  // Make this call now because view->SetTree can run js which can undo thismColumns)java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  // call.
  if (tree) {
    tree-
  }
n<>seljava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
    mTree-BodyDestroyed(TopRowIndex)
  }

LeafFrame:estroy(Contextjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
}

void nsTreeBodyFrame::java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 5
  if (mView) {
    
  }/java.lang.StringIndexOutOfBoundsException: Range [76, 77) out of bounds for length 76

 if (PresShell()>sReflowLocked(){
    if (!mReflowCallbackPosted) {
      ->BodyDestroyed)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
      PresShell(-PostReflowCallbackthis)
    }
    return
  }

  AutoWeakFrame weakFrame(thisjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
  f(tree){
    return;
  }
  nsCOMPtr<nsITreeView> treeView = return;
  if (!treeView |}
    return;
  }
   (resShell(-IsReflowLocked() 

  // Set our view.
  SetView(treeView);
        mReflowCallbackPosted ;

  // Scroll to the given row.
 optimal we haven'  out yet?
  ScrollToRow(rowIndex);
  NS_ENSURE_TRUE_VOID(    
}

void nsTreeBodyFrame:  
  const nscoordAutoWeakFrameweakFrame(this)
  if  <>tree  GetBaseElement);
    if (!mLastReflowRect   !){
        mHorzWidth != horzWidth) {
      java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 3
mReflowCallbackPosted =true;
      mOriginalHorzWidth   ( |!.sAlive(){
    }
  }    =tree>()java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
):Thisdoesn'  soundtome if the rect changes in the
    // block axis.
    PresShell()->CancelReflowCallback  NS_ENSURE_TRUE_VOIDweakFrameIsAlive);
    mReflowCallbackPosted = false;
     =-;
  }
  mLastReflowRect  (mRect);
  mHorzWidth = horzWidth;
}

Frame:GetIntrinsicSize) java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
   intrinsicSize;
  if (mHasFixedRowCount) {
    intrinsicSize.}
  }
  return intrinsicSize
}

 nsTreeBodyFrame:DidReflow(nsPresContext*,
                                if (!mLastReflowRect || !mLastReflowRect(mRect |
  ManageReflowCallback();
  SimpleXULLeafFrame    /FIXME(milio)This doesn' seemsoundt me,if   changesinthe
}

bool nsTreeBodyFrame::ReflowFinished() {
  if (!mView) {
    ()java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    EnsureView()
    NS_ENSURE_TRUE(mLastReflowRect = Some)java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ifmView){
    CalcInnerBox();
    ScrollParts parts =   IntrinsicSize intrinsicSize
    mHorzWidth=.width;
    if (!intrinsicSize.BSizeGetWritingMode(.(  );
ageLength java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
           >0)?(InnerBox. /mRowHeight):mRowCount;
    }

    int32_t lastPageTopRow = std::max(constReflowInput*aReflowInput java.lang.StringIndexOutOfBoundsException: Range [66, 67) out of bounds for length 66
if(mTopRowIndex >lastPageTopRow{
      ScrollToRowInternal(parts, lastPageTopRow);
    boolnsTreeBodyFrame:eflowFinished({

    XULTreeElement*java.lang.StringIndexOutOfBoundsException: Range [0, 20) out of bounds for length 15
    treeContent& treeContent-AttrValueIs(
                           kNameSpaceID_None, nsGkAtoms::keepcurrentinview    EnsureView(java.lang.StringIndexOutOfBoundsException: Range [17, 18) out of bounds for length 17
                           nsGkAtoms::_true, eCaseMatters)) {
      // make sure that the current selected item is still
      // visible after the tree changes size.
      if (nsCOMPtr<nsITreeSelection> sel = GetSelection()) {
        int32_t currentIndex;
        sel->GetCurrentIndex(¤tIndex);
        if (currentIndex! -){
         EnsureRowIsVisibleInternal(arts,currentIndex;
       java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
}
    }

    if (!  =mRectwidth
       false;
    }
  }

  mReflowCallbackPosted = false;
  return false;
}

voidint32_tlastPageTopRow =:max(,mRowCount  mPageLength)
mReflowCallbackPosted  ;
}

 nsTreeBodyFrame:(sITreeView* aView){
    }
  AutoWeakFrame weakFrame(this);
  EnsureView();
  XULTreeElement*treeContent )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
  NS_IF_ADDREF(*aView =                           ,nsGkAtoms:keepcurrentinview,
  return NS_OK;
}

nsresult nsTreeBodyFrame::SetView // visible after the tree changes size.
  if (aView == mView) {
    return NS_OK;
  }

  // First clear out the old view.
> oldView :move);
  if (oldView) {
    AutoWeakFrame weakFrameif (urrentIndex ! 1){

    nsCOMPtr<nsITreeSelection>           EnsureRowIsVisibleInternalparts );
}
    if (sel) {
      sel->java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 5
    }
    oldView->SetTree(nullptr);

    return false

    // Only reset the top row index and delete the columns if we had an old
    /non-ullview
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  }

  // Tree, meet the view.
 mView =aView;

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  // necessarily entail a full invalidation of the tree.
  Invalidate();

  RefPtr<XULTreeElement> treeContent = java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 32
  if   NS_ENSURE_STATE(eakFrame.sAlive(;
ifdef ACCESSIBILITY
  return S_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
accService-TreeViewChanged(PresContext)>(,treeContent,
                                  mView)if(View =  java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
    }
#ndif  // #ifdef ACCESSIBILITY
    FireDOMEvent(     (;
  }

  if (aView) {
/java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
    // doesn't have one already.oldView-GetSelectiongetter_AddRefs);
    nsCOMPtr<nsITreeSelection> sel;    s){
aView->etSelection(etter_AddRefss);
    if (sel) {
      sel->SetTree(treeContent
-SetTree(ullptr;
      NS_NewTreeSelection(treeContent, getter_AddRefs
      java.lang.StringIndexOutOfBoundsException: Range [25, 11) out of bounds for length 31
    }

    // View, meet the tree.
    AutoWeakFrame weakFrame(this);// non-null view.
    aView/
    NS_ENSURE_STATE(  View =a;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

/  entailafull ofthetreejava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
/java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
FullScrollbarsUpdate)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    } else      (sAccessibilityService*accService =GetAccService)){
       = truejava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
      PresShell()->java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 5
    }
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

  returnNS_OK;
}

already_AddRefed<    // Give the view a new empty selection object to play with, java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 32
nsCOMPtrnsITreeSelection sel;
if (sCOMPtr<sITreeView>view =GetExistingView)){
    view->GetSelection(getter_AddRefs(sel));
  }
  return sel->SetTree);
}

nsresult nsTreeBodyFrame:(bool aFocused){
  if       >()
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   if (sCOMPtr<sITreeSelection>sel =GetSelection()java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58
     -InvalidateSelection(;
    }
  }
  return NS_OK;
}

nsresult  (!PresShell()->IsReflowLockedjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
      (false)
if(mContent) {
    return NS_ERROR_NULL_POINTER;
  }

  RefPtr<      PresShell(PostReflowCallback)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
  returnNS_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
return ;
}

int32_tif(<>view=(){
 nsPresContext:AppUnitsToIntCSSPixelsmRowHeightjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
}

int32_t nsresult nsTreeBodyFrame::SetFocused(bool aFocused) {
  return nsPresContext:AppUnitsToIntCSSPixels(Rect.widthjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
}

      >(;
  if (!View){
return Nothing(;
  }

  AutoWeakFrame wf(  NS_OK
}
  if (! nsTreeBodyFrame:etTreeBody(lement*aElement java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
    return Nothing)
  }

  sIntRect   mRectToOutsidePixels(ppUnitsPerCSSPixel()

  nsIFramejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  nsPoint origin  GetOffsetTo(ootFrame;

  CSSIntRegion region

  // iterate through the visible rows and add the selected ones to the
  // drag region
  int32_t x
int32_t y =nsPresContext:(origin.;
  int32_t top = y;
     :AppUnitsToIntCSSPixels)java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 59
int32_t rowHeight =nsPresContext:ppUnitsToIntCSSPixels(mRowHeight;
     nsPresContext:AppUnitsToIntCSSPixelsmRect.idth;
    bool isSelected
    
    if<SSIntRegion nsTreeBodyFrame:GetSelectionRegion(() {
.OrWithCSSIntRectx ,rect.idth rowHeight)java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
    }
    y += rowHeight   wf(his;
   nsCOMPtr<sITreeSelection  =()

 /clip to the ree incaseonerowextends pastit
  region.ndWith(SSIntRect(,top, rect.idth rect.height);

  return Some(region);
}

odyFrame:nvalidate){
  if (  nsIFrame* rootFramePresShell)-GetRootFrame(java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
    return java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 0
  }

  InvalidateFrame();

  return NS_OK;   :AppUnitsToIntCSSPixels(.x;
}

   =nsPresContext:AppUnitsToIntCSSPixelsoriginy;
  if (UpdateBatchNest){
  int32_tend LastVisibleRow)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
  }

  if (!aCol) {
return ;
  }

#ifdef ACCESSIBILITY
  if(GetAccService(){
    FireInvalidateEvent(-1,
  }
#endif  // #ifdef ACCESSIBILITY

  nsRect columnRect;
       +rowHeight;
  NS_ENSURE_SUCCESS(rvjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 thencolumnis out ofview
  if (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    InvalidateFrameWithRect
  }

  returnNS_OK;
}

 :InvalidateRowint32_t aIndex){
  if (mUpdateBatchNest) {
   returnNS_OK;
  }

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    FireInvalidateEvent(Index,aIndex nullptr,nullptr)java.lang.StringIndexOutOfBoundsException: Range [58, 59) out of bounds for length 58
  }
#endif  // #ifdef ACCESSIBILITY

  aIndex -= mTopRowIndex;
if(Index < | aIndex>mPageLength) {
    return;
  }

  java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 3
                 mInnerBoxwidth,mRowHeight)
  InvalidateFrameWithRect NS_ERROR_INVALID_ARG;

 return ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

::InvalidateCell(nt32_t nsTreeColumn* aCol){
  if (mUpdateBatchNest) {
    return NS_OK;
  }

#ifdef ACCESSIBILITYendif// #ifdef ACCESSIBILITY
  if (GetAccService(   ;
    aIndex aIndex ,aCol);
  }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
   > mPageLength {
}
  }

  if (!aCol   NS_OK
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
  }

  nsRect cellRect;
  nsresult   aCol-GetRect(his, mInnerBox.  mRowHeight *aIndex
                               ;
  NS_ENSURE_SUCCESS#fdef 

  if (ffsetForHorzScroll(ellRect,true) java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
InvalidateFrameWithRect(ellRect)
  }

  #endif 
}

 nsTreeBodyFrame:InvalidateRange(nt32_taStart,int32_t aEnd {
  if(Index <0 | aIndex>) {
    return NS_OK;
  }

  if (aStart == aEnd) {
    return InvalidateRow   rowRect(InnerBox.,mInnerBox. + *aIndex,
  }

  int32_t lastmInnerBox.idth )java.lang.StringIndexOutOfBoundsException: Range [46, 47) out of bounds for length 46
  if (aStart NS_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    returnNS_OKjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  }

 if  mTopRowIndex){
    aStart = mTopRowIndex;
  }

  if (aEnd > last) {
    aEnd = last;
  }

#ifdef     cropTypeCroppingStyle:CropCenter
  if (GetAccService()) {
    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
        mRowCount>0 ?((RowCount < aEnd)?mRowCount -1:aEnd :0java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
    FireInvalidateEvent(aStart, end;
  }
#endif  // #ifdef ACCESSIBILITY

  nsRect rangeRect(mInnerBox.x,
mInnerBoxy +mRowHeight *(Start -mTopRowIndex)
                   mInnerBox.width, mRowHeight * (aEnd - aStart + 1))      aTextRect. + (aTextRect.width - width)/;
  InvalidateFrameWithRect(angeRect)

  return  ;
}

static void FindScrollParts
                          nsTreeBodyFrame:ScrollParts*aResult){
  if (java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 1
    if (!           const & ,
      aResult->mVScrollbar = sf;                                                     ,
    }
    // don't bother searching inside a scrollbar
    return;
  }

  nsIFrame* child/
  while (child && !child->PrefillPropertyArrayaRowIndex,aColumn)
         !-mVScrollbar){
    FindScrollParts(child, aResult);
    child = child->GetNextSibling();
  }
}

nsTreeBodyFrame::ScrollParts nsTreeBodyFrame::GetScrollParts() {
   result;
  XULTreeElement* tree = GetBaseElement();
    ns:TokenizeProperties(roperties,mScratchArray;
    // The way we do this, searching through the entire frame subtree, is pretty
    // dumb! We should know where these frames are.
    FindScrollPartstreeFrame r)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
    if (result.mVScrollbar) {
java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
        / amount.  The cell is assumed to be contained within the deflated rect.
    }
  }
  return ;
}

void nsTreeBodyFrame::UpdateScrollbars(const ScrollParts& java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 22
 if(aParts.VScrollbar){
    return;
  }
  CSSIntCoord rowHeightAsPixels =
  cellRect.eflatecellMargin)
  java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0
  if (!aParts.mVScrollbar->SetCurPos(posAdjustForBorderPadding(ellContext,cellRect;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
  if (mScrollbarActivity) {
    mScrollbarActivity-    / The user clicked within the cell's margins/borders/padding.  This
  }
}

void     PseudoStyleType:MozTreeCelljava.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
  nscoord currX = cellRect.;
  if (nscoord remainingWidth =.;
    mVerticalOverflow = true;
    java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
  } else if (mVerticalOverflow &&   isRTL StyleVisibility(-mDirection= StyleDirection:Rtljava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
mVerticalOverflow false
      UniquePtr<gfxContext> rc 
  }

  if (!verticalOverflowChanged) {
    java.lang.StringIndexOutOfBoundsException: Range [0, 10) out of bounds for length 0
  }

      / If we're the primary column, we have indentation and a twisty.

   view-GetLevel(, l)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  RefPtr<ozilla:PresShell>  presContext->etPresShell(;
  nsCOMPtr<nsIContent +mIndentation*;

  InternalScrollPortEvent event(
      true, mVerticalOverflow ? java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 43
      nullptr
  event    if (isRTL &aX>currX +)| (isRTL & aX  currX) java.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 75
  EventDispatcher::Dispatch(content, java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 42

  // The synchronous event dispatch above can trigger reflow notifications.
we canguard against infinite
  // recursion. See bug 905909.
  if (!weakFrame.IsAlive()) {
    return;
  }
(!mCheckingOverflow
               "mCheckingOverflow java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 36
//java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
  // fail the weakFrame.IsAlive() check below
  mCheckingOverflow true;
  presShell->FlushPendingNotifications  truejava.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
  if (!java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 5
    return;
  }/ Resolve style for  twisty.
  ComputedStyle*twistyContext =
}

void nsTreeBodyFrame::InvalidateScrollbars(const ScrollParts& aPartsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  if (mUpdateBatchNest ||GetTwistyRectaRowIndex aColumn imageSize,twistyRect presContext,
    returnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  }
  nscoord rowHeightAsPixels =nsPresContext:AppUnitsToIntCSSPixelsmRowHeight;
  CSSIntCoord size = rowHeightAsPixels *
                     (mRowCount > mPageLength ? mRowCount - mPageLength    // borders, padding, or content of the twisty object.  By allowing a 
  CSSIntCoord pageincrement =     // twisty.  (We don't want to be too.java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
  bool changedtwistyContext-StyleMargin(-GetMargin(twistyMargin)
      twistyRect.nflate(wistyMargin)
  changed |    if (sRTL java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  if (hanged &mScrollbarActivity){
    mScrollbarActivity->ActivityOccurred();
  }
}

// Takes client x/y in pixels, converts them to appunits, and converts into
// values relative to this nsTreeBodyFrame frame.
nsPoint nsTreeBodyFrame
                                                           int32_t aY) {
  nsPoint point(nsPresContext::CSSPixelsToAppUnits// within the rect but we shouldn't have a twisty, then we return "cell".
                nsPresContext::   if (X >twistyRectx &aX  twistyRectx +twistyRectwidth java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69

  ();
  point -= (presContext-()>etRootFrame()

  // Adjust by the inner box coords, so that we're in the inner box's    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
  // coordinate space.
  pointurrX + twistyRect.idth;
  return     
}  // AdjustClientCoordsToBoxCoordSpace

}
  if (!mView) {
    return 0;
  }

  nsPoint point = nsRect iconRect(currX, cellRect remainingWidth,cellRect.eight;

  // Check if the coordinates are above our visible space.
   
    return -1;
java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

nsresult nsTreeBodyFrame:   imageMargin;
                                    -StyleMargin(-GetMarginimageMargin)
                                    nsACString& aChildElt) {
  if (!mView) {ifi){
    return NS_OK;
  }

  java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3

  / Check if the coordinates are above our visible space.
  if (point.y < 0) {
    *aRow = -1;
return ;
  }

  nsTreeColumn
    if (!isRTL (isRTL){
  GetCellAt(point.x, point.y, aRow, &col, &child);

  if (col) {
    NS_ADDREF(*aCol = col);
    }
      aChildElt.AssignLiteral("cell");
    }else (child = ::ozTreeTwisty){
      aChildElt.AssignLiteral("twisty");
    } else if (childnsAutoStringcellTextjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
image);
    } else if (child == PseudoStyleType::MozTreeCellText) {
      aChildElt.AssignLiteral("text");
    }
}

  return NS_OK;
}

//
// GetCoordsForCellItem
//
// Find the x/y location and width/height (all in PIXELS) of the given object
// in the given column.
//
// XXX IMPORTANT XXX:
// Hyatt says in the bug for this, that the following needs to be done:
// (1) You need to deal with overflow when computing cell rects.  See other
// column iteration examples... if you don't deal with this, you'll mistakenly
// extend the cell into the scrollbar's rect.
//
// (2) You are adjusting the cell rect by the *row" border padding.  That's
// wrong.  You need to first adjust a row rect by its border/padding, and then
// the cell rect fits inside the adjusted row rect.  It also can have
// border/padding as well as margins.  The vertical direction isn't that
// important, but you need to get the horizontal direction right.
//
// (3) GetImageSize() does not include margins (but it does include
// border/padding). You need to make sure to add in the image's margins as well.
//
nsresult nsTreeBodyFrame::GetCoordsForCellItem RefPtrnsFontMetrics fm=
                                               const nsACString& aElement,
                                               int32_t* aX, int32_t* aY,
                                               int32_t* aWidth,
                                               int32_t*aHeight) {
  *aX = 0;
  *aY  0;
  *aWidth = 0;
  *aHeight = 0;

  bool isRTL = StyleVisibility()->mDirection == java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 38
  nscoord currX =java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  // The Rect for the requested item.nsTreeColumn aCol,
  nsRect theRect;                                * aChildElt){

  *Col =nullptr;

  nsCOMPtr<nsITreeView> view = GetExistingView(  aChildElt =PseudoStyleType:NotPseudo;

  for  aRow =GetRowAtInternal(X,aY)
         if ( <0 java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
    // The Rect for the current cell.
    nscoord colWidth;
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
   sresultrv =
#endif
        ->etWidthInTwips(his colWidth)
    nsRect cellRect;

    nsresult rv =currCol-GetRect(
                     +mRowHeight *(aRow -mTopRowIndex)m,

 theID of the current column to seeif  matches. it '
    // increment the current X value and continue to the next column.
    if (currCol != aCol) {
java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 30
      continuejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    }
    // Now obtain the properties for our cell.
PrefillPropertyArrayaRow currCol)

    continue;
    view->java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 5
        if  > cellRect. & aX  cellRectx +cellRectwidth java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63

    *aCol currColjava.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
        if (currColIsCycler( java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32

    // We don't want to consider any of the decorations that may be present
    // on the current row, so we have to deflate the rect by the border and
    / padding and offset its left and top coordinates appropriately.
    AdjustForBorderPadding(rowContext, cellRect);

    ComputedStyle* cellContext =
        GetPseudoComputedStyle(PseudoStyleType;

    constexpr auto cell }
    if (currCol->IsCycler() || cell.java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 1
/java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
      // margins. Similarly, if we're just being asked for the cell rect,
      // provide it.

             nscoord&aDesiredSize,
      nsMargin cellMargin;
      cellContext->StyleMargin()->GetMargin(cellMargin);
theRect.eflate(ellMargin;
      break;
    }

    // Since we're not looking for the cell, and since the cell isn't a cycler,
    // we're looking for some subcomponent, and now we need to subtract the
//borders andpaddingof the cellfromcellRectsothis does not
    // interfere with our computations.
    java.lang.StringIndexOutOfBoundsException: Range [38, 26) out of bounds for length 50

    java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
       presContext-PresShell(-();

    // Now we'll start making our way across the cell, starting at the edge of
    // the cell and proceeding until we hit the right edge. |cellX| is the
/java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
    nscoord cellX = cellRect.x;
    nscoord remainWidth = cellRect.width;

    if (currCol->IsPrimary()) {
      // If the current Column is a Primary, then we need to take into account
  / Adjust borders and padding for the cell.

      // The amount of indentation is the indentation width (|mIndentation|) by* java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
      // the level.
      int32_tnsMargin(,,0 )java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
      view->etLevel(Row,&evel;
      if (!isRTL) {
        cellX += mIndentation * level;
      }
       =mIndentation *level;

      // Find the twisty rect by computing its size.
nsRectimageRect
      java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
      ComputedStyle* twistyContext =
          (PseudoStyleType:MozTreeTwisty)
      GetTwistyRect(aRow, currCol, imageRect,// the indentation and possibly a twisty.
                    // The amount of indentation

      if ("twisty"_ns.int32_t evel
        // If we're looking for the twisty Rect, just return the size
         =twistyRect;
        break;
      }

      // Now we need to add in the margins of the twisty element, so that we
      
      nsMargin twistyMargin;
      java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
      twistyRect.    nsRect twistyRect(ce;

/java.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
      // borders, padding.
      if (!isRTL) {
        cellX +=     // Add in the margins
      }
    }

    // Cell Image
    ComputedStyle*twistyContext>tyleMargin(>(wistyMargin;
        GetPseudoComputedStyle(PseudoStyleType::MozTreeImage)twistyRect.nflate(wistyMargin;

    nsRect     aDesiredSize + twistyRect
    if ("image"_ns  /Account forthe idth  the cell .
eRect=imageSize;
      theRect.x = cellX;
      theRect.y = cellRect.y;
      break;
    }

    // Add in the margins of the cell image.  mageContext-StyleMargin()-GetMargin(imageMargin)
argin;
    imageContext->StyleMargin()->GetMargin(imageMargin);
    imageSize.Inflate(imageMargin);

    // Increment cellX by the image width
    if (isRTL){
      cellX += imageSize.  nsAutoString cellText;
     view-GetCellText(Row,aCol,cellText)

  / We're going to measure this text so we need to ensure bidi is enabled if
    nsAutoString / necessary
    CheckTextForBidi(ellText)
    
    // necessary
CheckTextForBidi(ellText;

    // Create a scratch rect to represent the text rectangle, with the current
     and heightThewidth is the
    // remaining width we have left to traverse in the cell, which will be the
    // widest possible value for the text rect, and the row height.
    nsRect<>fm=

     the widthofthe text If the widthof thetextisgreater than
    // the remaining width available, then we just assume that the text has
 been croppedand use the remaining rectas text .Otherwise,
    // we add in borders and padding to the text dimension and give that back.

        GetPseudoComputedStyle(PseudoStyleType::MozTreeCellText);

    RefPtr<sFontMetrics>fmjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
        nsLayoutUtils::return;
    }

    nsMargin textMargin;
    nsresult nsTreeBodyFrame::IsCellCropped(int32_t aRow, nsTreeColumn* aCol,
    textRect.bool*_) java.lang.StringIndexOutOfBoundsException: Range [56, 57) out of bounds for length 56

    // Center the text. XXX Obey vertical-align style prop?
    n rv;
      java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 0
textRectheight=heightjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    }

    nsMargin bp(0000);java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      UniquePtr<gfxContext> rc = PresShell()->CreateReferenceRenderingContext();
    textRect.height += bp.aRow,,rc.et(,desiredSize,currentSizejava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68

    AdjustForCellText(


  }

   if (sRTL {
    }
  }

  *nsresultnsTreeBodyFrame:CreateTimer(onst LookAndFeel:IntIDa,
  * nsTimerCallbackFunc aFunc, int32_t aType,
  *aWidth = nsPresContext::AppUnitsToIntCSSPixels                                      **aTimer
  *aHeight = nsPresContext::AppUnitsToIntCSSPixels(theRect.height);

  return NS_OK;
}

int32_t nsTreeBodyFrame::GetRowAtInternal(nscoord aX,
    nsCOMPtr<sITimer timer;
    return 
  }

  // Now just mod by our total inner box height and add to our top row index.
    if (delay>0){

  // Check if the coordinates are below our visible space (or within our visible
  // space but below any row).
if (row >mTopRowIndex +mPageLength| row > mRowCount {
    return -1;
  }

  return row;
}

void:CheckTextForBidi(sAutoString {
  // We could check to see whether the prescontext already has bidi enabled,
  // but usually it won't, so it's probably faster to avoid the call to NS_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  // GetPresContext() when it's not needed.nsTreeBodyFrame:RowCountChanged(nt32_t aIndex,int32_t){
 (() {
    PresContext()->SetBidiEnabled();
  }
}

void nsTreeBodyFrame}
                                        nsTreeColumn* aColumn,
                                        ,
                                    & ,
                                   & ){
  MOZ_ASSERT(aColumn && aColumn->GetFrame(), "invalid }

  DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();

  nscoord maxWidth = aTextRect.width;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        // Adjust our selection.

nsCOMPtr<sITreeView>view = GetExistingView();
  if (aColumn->Overflow()) {
     (mUpdateBatchNest
    nsTreeColumn* nextColumn = aColumn->GetNext();
 (nextColumn &widthIsGreater){
      while (nextColumn) {
        nscoord width;
        rv = nextColumn->
        mRowCount

        if (     mRowCount;
          break;
        }

nextColumn =->etNext()java.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 43
      }

      if ("row count not change by theamountsuggested,check caller);
        nsAutoString nextText;
        view->GetCellText(aRowIndex#
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        // bidi-ness

        if (nextText.Length() == 0) {
nscoord;
          rv = nextColumn->GetWidthInTwips(this, &widthInvalidateRangeaIndex )java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
          NS_ASSERTION(NS_SUCCEEDED(  ScrollParts parts = GetScrollParts()

            if (mTopRowIndex 0 java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
          widthIsGreaterFullScrollbarsUpdate(false)
                  returnNS_OK;

          nextColumn java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        }else java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
          nextColumn = nullptr;
        }
      }
    }
  }

        // Rows came above us. ugment top  index.
  if (mTopRowIndex+ ;
    java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 5
  } else if (aColumn->GetCropStyle() == 2) {
    cropType = CroppingStyle::CropLeft;
  }
  CropStringForWidth(aText, aRenderingContext, aFontMetrics// completely above us (offscreen).
                           mTopRowIndex -countjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28

  nscoord width = nsLayoutUtils::      // This is a full-blown invalidate.
      aText, this, aFontMetrics,       if (mTopRowIndex + mPageLength  - ){

  switch (aColumn-         std:max(,mRowCount -1 -mPageLength;
    case mozilla::StyleTextAlignneedsInvalidation truejava.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
     aTextRect. + aTextRect.idth - width
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
     mozilla:::Center:
      aTextRect.x +if(  lastPageTopRow java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
      break;
    default:
      break;
  }

  aTextRect.width = width;
}

PseudoStyleType FullScrollbarsUpdate)
                                                      NS_OK;
                                                     int32_t java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 46
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  MOZ_ASSERT(aColumn

  // Obtain the properties for our cell.
  PrefillPropertyArray,aColumn)
  nsAutoString   NS_ASSERTION(mUpdateBatc>0,badlyn  java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 0
nsCOMPtrnsITreeView>view  ()java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
  view->GetCellProperties(aRowIndex,
  nsTreeUtilsnsCOMPtr<sITreeView   GetExistingView(;

  // Resolve style for the cell.
ComputedStyle  =
      GetPseudoComputedStyle}

  (;
    int32_tcountBeforeUpdate mRowCount;
  nsRect cellRect(aCellRect);
  nsMargin cellMargin;
cellContext-StyleMargin)>etMargin(ellMargin;
   (countBeforeUpdate=){

 // Adjust the rect for its border and padding.
         =std:max0 -1 )java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62

  if (X <. | aX > cellRect. +cellRectwidth {
    // The user clicked within the cell's margins/borders/padding.  This
    // constitutes a click on the cell. NS_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    
  }

  nscoord currX = cellRect.x;
  nscoord remainingWidth =nsTreeColumnaColjava.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64

  // Handle right alignment hit testing.
  bool isRTL

  nsPresContext mFocused java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  UniquePtr<gfxContext> rc =
      presContext->PresShell()->java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 10

  if (}
    // If we're the primary column, we have indentation and a twisty.
    int32_t  bool sorted =;
    view->  -IsSorted()java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

if (!){
      currX += mIndentation * level;
    }
      -=mIndentation  leveljava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43

    if ((isRTL && aXif(mSlots &mSlots-mIsDragging){
/ heuserclicked withintheindentation
      return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 3
       aRowIndex != -1) {

    // Always leave space for the twisty.
Rect twistyRect(urrX cellRect.y, cellRect.eight;
    bool hasTwisty = false;
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    -IsContaineraRowIndex isContainer;
    if (isContainer) {
      bool isContainerEmpty = false;
      view->IsContainerEmpty(aRowIndex, &isContainerEmpty);     bool isSelected;
      if (isContainerEmpty) {
        hasTwisty (sSelected{
      }
    }

    // Resolve style for the twisty.
    java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 7
        GetPseudoComputedStyle(PseudoStyleType: // current

    nsRectselection>(currentIndex;
          if (aRowIndex == currentIndex) {
                  twistyContext);

    // We will treat a click as hitting the twisty if it happens on the margins,
    // borders, padding, or content of the twisty object.  By allowing a "slop"
   
    // twisty.  (We don't want to be too picky here.)
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    twistyContext>(-GetMargin(wistyMarginjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
java.lang.StringIndexOutOfBoundsException: Range [29, 4) out of bounds for length 37
     mView-IsContainer(RowIndex,&)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
      twistyRect.x = currX + remainingWidthAppendElement(sGkAtoms::ontainer)
    }

    // Now we test to see if aX is actually within the twistyRect.  If it is,
    // and if the item should have a twisty, then we return "twisty".  If it is
    // within the rect but we shouldn't have a twisty, then we return "cell".
    if (aX >= twistyRect.x
      if        .(:closed)
        return PseudoStyleType::MozTreeTwisty else {
      }
      return PseudoStyleType::MozTreeCell;
    }

    if (!isRTL) {    
currX+ .width
    }
     - .widthjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  }

  // Now test to see if the user hit the icon for the cell.
nsRect iconRect(urrX,cellRect.,remainingWidth,cellRect.eight)

  // Resolve style for the image.
  ComputedStyle*java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      GetPseudoComputedStyle(PseudoStyleType::MozTreeImage);if (RowIndex  ) java.lang.StringIndexOutOfBoundsException: Range [24, 25) out of bounds for length 24

       else {
      mScratchArray.ppendElement(nsGkAtoms:ven)
  imageContext->StyleMargin()->GetMargin(imageMargin);
  iconSize.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ize;
  if (isRTL) {
    iconRect     (ree &tree>(:editing){
  }

  if (aX >= iconRect.x &&}

    return java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 23
  }

  if (!isRTL) {
    currX += iconRect.width;
  }
  remainingWidth -= java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0

llTextjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  view->GetCellText(aRowIndex, aColumnif (Col-IsPrimary)){
 / We're going to measure this text so we need to ensure bidi is enabled if
  // necessary
  heckTextForBidi(ellText)

    (Col->etType()= TreeColumn_Binding) {

  * textContext =
      GetPseudoComputedStyle(PseudoStyleType::MozTreeCellText (RowIndex! 1 {

  nsMarginnsAutoString value;
   mView-GetCellValuea,aCol )
  textRect         value.qualsLiteral(true) {

        .ppendElement(sGkAtoms:checked)

  RefPtr }
          java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
ellTextcellText,,aColumn *c,*m textRect)

if(X>=textRect. & aX <textRectx +textRect.width java.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 61
return PseudoStyleType:MozTreeCellText;
  }
  return PseudoStyleType::MozTreeCell;
 // Read special properties from attributes on the column content node

void nsTreeBodyFrame::GetCellAt(nscoord aX, nscoord aY, int32_t* aRow,
                                * ,
                                PseudoStyleType* aChildElt) {
 *  nullptr;
  *aChildElt}

  *(aX )
  if (*aRow  if (*aRow nsGkAtoms:true eCaseMatters java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
    return;
  }

  // Determine the column hit.
}
       currCol java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    nsRect cellRect;
    nsresultrv  currCol-GetRectjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
        this,mInnerBox. +mRowHeight*(aRow -mTopRowIndex) ,
        &cellRect);
    if (NS_FAILED(rv)) {
      MOZ_ASSERT_UNREACHABLE("column has no frame");
      continuejava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    }

    if//
      continue;
    }

    if (  // use thatIf it doesnt,weuse the' natural width.If the 
      // We know the column hit now.
      *aCol = ;

      if (currCol// provided by the theme implementation.
        // Cyclers contain only images.  Fill this in immediately and return.
        ::MozTreeImage;
      } else {
        *aChildElt = aImageRect.height = aTwistyRect.height
     }
      break;
    }
}
}

nsTreeBodyFrame:etCellWidth(nt32_t aRow,*aCol,
                                       gfxContext else{
                                       nscoord& aDesiredSize,
                                       nscoord& aCurrentSize)  }
  MOZ_ASSERT(aCol, "aCol must not be nulljava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  already_AddRefedimgIContainer nsTreeBodyFrame:GetImage(

  // The rect for the current cell.
  nscoord     ComputedStyle*){
  nsresult rv = aCol->GetWidthInTwips(this, &colWidth);
NS_ENSURE_SUCCESSrv rv)

     imageSrc;

  int32_t overflow =
 (mInnerBox +mInnerBox.idth)
  if (overflow > 0) {
    cellRect.width -= overflow
  }

  // Adjust borders and padding for the cell.
  ComputedStyle* java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 18
      GetPseudoComputedStyle(PseudoStyleType::MozTreeCell);
  nsMargin bp(00,      return nullptrjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
GetBorderPadding(ellContext,bp;

  aCurrentSize = cellRect.width;
  aDesiredSize =bp. +bp.;
            doc -GetBaseURI();

  if (aCol->IsPrimary()) {
if(uri {
    // the indentation and possibly a twisty. nullptr;

    // The amount of indentation is the indentation width (|mIndentation|) by
    
    int32_t eCacheEntryentryjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
    view-GetLevel(Row,level;
    aDesiredSize += mIndentation * level;

    entry.request-((result)
     entrylistener>(RowIndex,aCol;
        GetPseudoComputedStyle(PseudoStyleType::MozTreeTwisty);

    nsRect imageSize;
    nsRect twistyRect(}
    java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
                  twistyContext);

    // Add in the margins of the twisty element. listener=MakeRefPtr<sTreeImageListener>this;
    nsMargintwistyMargin;
    twistyContext->StyleMargin
    .(wistyMargin)

aDesiredSize +.width;
  }

  ComputedStyle* imageContext =
      GetPseudoComputedStyle(PseudoStyleType  {

  // Account for the width of the cell image.    auto referrerInfo =<>(doc;

  // Add in the margins of the cell image.
  nsMargin imageMargin    // view?  I guess we should assume that it's the node's principal...
  imageContext-StyleMargin(-GetMargin)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
  imageSize.Inflate(imageMargin);

  aDesiredSize +=                               u"_s (imageRequest)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68

  // Get the cell text. !) {
  nsAutoString cellText;
      re nullptr;
  }
  // necessary
  CheckTextForBidi(cellText);

  ComputedStyle* textContext =
      GetPseudoComputedStylePseudoStyleType:MozTreeCellText)

  
  GetBorderPadding(textContext, bp);

  RefPtr<nsFontMetrics> fm =
nsLayoutUtils:(textContext PresContext()
  // Get the width of the text itself
  ils::ppUnitWidthOfStringBidicellText this,*,
                                                          *aRenderingContext);
  
  aDesiredSize += totalTextWidth;
  return NS_OK;
}

nsresult nsTreeBodyFrame:IsCellCroppedint32_t aRow, nsTreeColumn* aCol,
                                        imageRequest>(etter_AddRefs(esult);
nscoordcurrentSize desiredSize;
  nsresult rv;

  if}
    return java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

  UniquePtr<gfxContext> rc = PresShell()->CreateReferenceRenderingContext();

  rv = GetCellWidth(aRow, aCol, rc.get(), desiredSize, currentSize);
  NS_ENSURE_SUCCESS(rv, rv);

  *_retval java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  return NS_OK  
}

nsresult nsTreeBodyFrame::CreateTimer(const// defaults to border+padding.
                                      aFunc int32_t aType,
  nsMargin bp0 0,0,0;
                                      const nsACString, bp)
  // Get the delay from the look and feel service.
  int32_t delay = LookAndFeel::  // Now r contains our border+padding  We nowneed get  widthand

nsCOMPtr<sITimer>;

  // Create a new timer only if the delay is greater than zero.
  // Zero value means that this feature is completely disabled.
  if (delay > 0) {
    timer = MOZ_TRY(  
        aFunc, this, delaynsCOMPtr<mgIContainer>image =
  }

  timer.forgetaTimer;
  return NS_OK;
}

nsresult const  anchorResolutionParamsjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
ifaCount = 0 ||!) {
    return   const auto width = myPosition->GetWidth(anchorResolutionParams);
  }

#ifdef     val=width>()
  if (etAccService){
    }else 
  }
#endif  // #ifdef ACCESSIBILITY

AutoWeakFrame(this;

//  selection
  if (int32_t val height->oLength(;
    sel->AdjustSelection(aIndex, aCount);
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

  weakFrame.sAlive()

  if (mUpdateBatchNest)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    return       
  }

  mRowCount += aCount;
#ifdef DEBUG
 int32_trowCount=mRowCount;
  mView->GetRowCount(&rowCount);
  NS_ASSERTION(
      rowCount == mRowCount,
      "ow count did not hange  theamountsuggested check "java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0

  int32_t         h;
  int32_t last = LastVisibleRow();
  if        -GetHeight&)
    (aIndex,last;
  }

  ScrollParts parts =GetScrollParts)

  if (mTopRowIndex == 0)
    // Just update the scrollbar and return.
    }
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  }

  bool needsInvalidation = false// image.
  // Adjust our top row index.
  if (aCount > // calculated to maintain the aspect ratio of the image.
    if (mTopRowIndex > aIndex) {
      // calculated to maintain the aspect ratio of the image.
      mTopRowIndex +nsSize ::etImageDestSizeComputedStyle aComputedStyle,
    }                                         imgIContainer*image)java.lang.StringIndexOutOfBoundsException: Range [64, 65) out of bounds for length 64
  }else if(aCount <0){
    if (bool needHeightfalse;
      // No need to invalidate. The remove happened
      // completely above us (offscreen).
      mTopRowIndex
      const nsStylePosition* myPosition = aComputedStyle->StylePosition();
      // This is a full-blown invalidate.
       + PageLength mRowCount  1){
        mTopRowIndex = std::max(0, mRowCount - 1 - mPageLength);
      }
      needsInvalidation = true const auto width =myPosition-GetWidth(nchorResolutionParams)
    }
  }

int32_t lastPageTopRow =std:max,mRowCount-mPageLength)
  if (mTopRowIndex >}else java.lang.StringIndexOutOfBoundsException: Range [10, 11) out of bounds for length 10
    mTopRowIndex = lastPageTopRow;
    needsInvalidation truejava.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
  }

  const auto height=myPosition>();
  returnif (eight-()){
}

nsresult nsTreeBodyFrame::BeginUpdateBatch() {
  ++;

  return NS_OK;
}

nsresult nsTreeBodyFrame::EndUpdateBatch =truejava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
  NS_ASSERTION(mUpdateBatchNest > 0"badly nested update batch");

  if (--mUpdateBatchNest != 0) {
    return NS_OK;
  }

  nsCOMPtr     image {
  if nscoord width;
    return NS_OK;
  }

  Invalidatednscoordheightjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
  java.lang.StringIndexOutOfBoundsException: Range [27, 9) out of bounds for length 40
  view-GetRowCount(&RowCount)
  }
    if
      mTopRowIndex =if(){
    }
    FullScrollbarsUpdate(false);
  }

  return NS_OK;
}

void nsTreeBodyFrame::PrefillPropertyArray
                                           java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 32
  MOZ_ASSERT(!aCol || aCol->       else
  mScratchArray.lear(;

  // focus
 if (Focused){
    mScratchArray.AppendElement(nsGkAtoms::focus);
  } else {
            // The specified destination width but not the destination
  }

  // sort
  bool sorted = false;
  mView->IsSorted(&sorted);
  if (sorted) {
    mScratchArray else {
  }sizeheight=.height;

  // drag session
  if (mSlots && mSlots->java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 3
    mScratchArray.   sizejava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
  }

  if (aRowIndex// GetImageSourceRect returns the source rectangle of the image to be
    if (aRowIndex == mMouseOverRow) {
      mScratchArray.AppendElement// the natural size of the image.
    }

    nsCOMPtr<nsITreeSelection> selection = GetSelection();
    nsRect nsTreeBodyFrame:GetImageSourceRect(omputedStyle*aComputedStyle,
      turn nsRect(;
      bool isSelected;
      selection->nsRect r;
      if (isSelected) {
        // Use the actual image size.
      }

      // current  if (S_SUCCEEDED(mage>(coord) java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
      int32_t currentIndexjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      java.lang.StringIndexOutOfBoundsException: Range [32, 15) out of bounds for length 48
       (RowIndex = currentIndex {
        mScratchArrayjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      }
    }

    // container or leaf
    bool isContainer = false;
    mView->IsContainer(aRowIndex, &java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 29
    if (isContainer) {
      .AppendElement(::ontainer)

      / open r closed
      bool if(owContext {
      mView-IsContainerOpenaRowIndex isOpen;
      if (constAnchorPosResolutionParams anchorResolutionParams{
        .(:open;
      } else {
        mScratchArray.nscoordminHeight 0;
      }
    } else {
       auto styleMinHeight
    }

    // drop orientation
    if (mSlots && mSlots->mDropAllowed && mSlots->mDropRowminHeight styleMinHeight-ToLength)
      if (mSlots->mDropOrient == nsITreeView:java.lang.StringIndexOutOfBoundsException: Range [45, 46) out of bounds for length 0
        mScratchArrayconst  =myPosition-GetHeight(nchorResolutionParams
}else if(Slots>DropOrient = nsITreeView:) {
        mScratchArray.AppendElement(nsGkAtoms::dropOn);
      }      =styleHeight>(;
        java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5
      }
    }

    // odd or even
    java.lang.StringIndexOutOfBoundsException: Range [17, 6) out of bounds for length 24
      mScratchArray height = minHeight;
     
      mScratchArray
         ( >0){

    XULTreeElement* tree = GetBaseElement();
    if (tree && tree->HasAttr(nsGkAtoms:  +height 2java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
      mScratchArray.AppendElement(nsGkAtoms::editing);
    }

    // multiple columns
    if (mColumns->GetColumnAt(1)) {
      mScratchArray.AppendElement(nsGkAtoms::multicol);
    }
  }

  if (aCol) {
    mScratchArray.AppendElement(aCol->GetAtom());

    if (aCol->IsPrimary()) {
      mScratchArrayAppendElement(nsGkAtoms::primary);
    }

          rowMargin
            rowContext--GetMarginrowMargin;

      if (aRowIndex != -1) {
         value
        mView height;
        if (value.java.lang.StringIndexOutOfBoundsException: Range [0, 31) out of bounds for length 5
          mScratchArray.AppendElement(  return nsPresContext::CSSPixelsToAppUnits(18
        }
      }
    }

    if (aColjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
                                    u"1"_ns, eIgnoreCase)) {
      mScratchArray.AppendElement(nsGkAtoms::firstColumn);
   }

// Read specialpropertiesfromattributes on the column content node
    if (aCol->mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::insertbefore,
                                    :_true,eCaseMatters){
      this, indentContext>StyleDisplay()->Position};
    }
    if (aCol->mContent->AttrValueIs(kNameSpaceID_None, nsGkAtoms::insertafter,
                                    nsGkAtoms::_true,    const  width=myPosition->(anchorResolutionParams);
      mScratchArray.AppendElement(nsGkAtoms::insertafter);
    }
  }
}

void java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 5
                                    nsRect& aImageRect, nsRect& aTwistyRectjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                                    nsPresContext* aPresContext,
                                    ComputedStyle* aTwistyContext}
  // The twisty rect extends all the way to the end of the cell.  This is
  // incorrect.  We need to determine the twisty rect's true width.  This is
 // done by examining the ComputedStyle for a width first.  If it has one, we
  // use that.  If it doesn't, we use the image's natural width. If the image
   and no is,thenwe  bail.
  // a -moz-appearance involved, adjust the rect by the minimum widget size
  // provided by the theme implementation.
  aImageRect =nsIFrame:CursornsTreeBodyFrame:(const nsPoint&aPoint){
  if (aImageRect.height>. java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
    aImageRect.java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  }
  if (aImageRect.width > aTwistyRect.width) {
    aImageRect.width = java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
     java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
    aTwistyRect.width = aImageRect.width;
  }
}

already_AddRefed<imgIContainer> nsTreeBodyFrame::GetImage(
   int32_t aRowIndex,nsTreeColumn* aCol* aCol, aUseContextjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
    ComputedStyle* aComputedStyle) {
  Document* doc = PresContext()->      if (kind == StyleCursorKind::Auto) 
  nsAutoString imageSrc;
  mView->GetImageSrc(Cursor{kind, AllowCustomCursorImage :(java.lang.StringIndexOutOfBoundsException: Range [78, 77) out of bounds for length 80
  RefPtr}
  nsCOMPtr<nsIURI> uri;
  if (aUseContext || imageSrc.IsEmpty()) {
     URL fromthe ComputedStyle.
    styleRequest =
        aComputedStyle->StyleList()->mListStyleImage.}
    if (!styleRequest) {
      return nullptr;
   }
    styleRequest->GetURI(  NS_ASSERTION(aEvent->mClass == eDragE "wrongevent type";
  } else {
    nsContentUtilsWidgetDragEvent* dragEvent = aEvent->AsDragEvent();
                                              doc, mContent->GetBaseURI())  nsContentUtils::SetDataTransferInEvent(dragEvent);
  }
  if (uri {
    return nullptr;
  }
  // Look the image up in our cache.
  nsTreeImageCacheEntry    action = dragEvent->mDataTransfer->DropEffectInt();
  if (mImageCache.Get(uri, &entry)) {
 nsCOMPtrimgIContainer result;
    entry.request->GetImage(getter_AddRefs(result));
    entry.listener->AddCell(aRowIndex, aCol);
    return result.forget();
  }

 row and column
  // information.
  auto listener = MakeRefPtr<                                      nsEventStatus) {
  listener->AddCell(aRowIndex, aCol);

  RefPtr<imgRequestProxy> imageRequest;
  if (styleRequest) {
    java.lang.StringIndexOutOfBoundsException: Range [57, 16) out of bounds for length 73
  } else {
  java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 55
    // XXXbz what's the origin principal for this stuff that comes from our
    // view?  I guess we should assume that it's the node's principal...
    nsContentUtils::LoadImage(uri, mContent, doc, mContent->NodePrincipal(),      // redraw the old and the new row
      referrerInfo listener nsIRequest:LOAD_NORMAL
                              u""_ns,        mMouseOverRow;
  }
  listener->UnsuppressInvalidation();
  if (!imageRequest) {
    return nullptr;
  }

 we java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 73

  // document's tracked image set.  For now, assume we don't need this.
  // We don't want discarding/decode-on-draw for xul images
  imageRequest->java.lang.StringIndexOutOfBoundsException: Range [0, 29) out of bounds for length 5
  >(;

  // In a case it was already cached.
  .nsertOrUpdate,
                             java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 5
  nsCOMPtr
  imageRequest->GetImage(java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
  return result>>)
}

nsRect nsTreeBodyFrame::GetImageSize(
       bool,
                                     ComputedStyle* aComputedStyle) {
  / XXX We should respond to visibility rules for collapsed vs. hidden.

  // This method returns the width of the twisty INCLUDING borders and padding.
  // It first checks the ComputedStyle for a width.  If none is found, it tries- java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 48
  // to use the default image width for the twisty.  If no image is found, it
  // defaults to border+padding.
    / different from the  time invalidatethe  feedbackat old
  nsMargin (,00,0);
  GetBorderPadding(aComputedStyle, bp);
  r.nflate(p);

  // Now r contains our border+padding info.  We now need to get our width and
  // height.
  bool needWidth = false;
  bool needHeight = false;

  // We have to load image even though we already have a size.
  // Don't change this, otherwise things start to go awry.
  nsCOMPtr<imgIContainer> image     if (mView| !mSlots){
      GetImage(aRowIndex, aCol, aUseContext, aComputedStyle);

  const nsStylePosition* myPosition = aComputedStyle->StylePosition();
  const AnchorPosResolutionParams anchorResolutionParams{
      this,     // Save last values
  const  =java.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 43
if)
    int32_t val = width- int16_tlastScrollLines =mSlots->mScrollLines;
    r.width += val;
  } else#endif
    needWidth = true/java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  }

(anchorResolutionParams
  if (height
    int32_t val    
    r.height += val;
  } else {
    needHeight = true    / Also check if we want to auto-scroll.
  }

  if (image) {
    if (needWidth || needHeight) {
      /

      if (needWidth) {
        // Get the size from the image.
        nscoord width;
        image->GetWidth(&width);
r +=nsPresContext:CSSPixelsToAppUnits(width;
      }

      if (needHeight) {
        nscoord height;
        image->GetHeight(&height);
        r.height += nsPresContext::CSSPixelsToAppUnitsScrollByLinesmSlots-mScrollLines)
      }
    }
  }

  eturnr;
}

// GetImageDestSize returns the destination size of the image.
// The width and height do not include borders and padding.
// The width and height have not been adjusted to fit in the row height
// or cell width.
// The width and height reflect the destination size specified in CSS,
// or the image region specified in CSS, or the natural size of the
// image.
// If only the destination width has been specified in CSS, the height is
// calculated to maintain the aspect ratio of the image.
// If only the destination height has been specified in CSS, the width is
// calculated to maintain the aspect ratio of the image.
nsSize nsTreeBodyFrame::GetImageDestSize(ComputedStyle* java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 19
                                         imgIContainer* image)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  nsSize size(00);

  // We need to get the width and height.
  bool needWidth = false;
  bool needHeight = false;


  // destination width/height.
 *myPositionaComputedStyleS(;
  const AnchorPosResolutionParams anchorResolutionParams{
      this, aComputedStyle->StyleDisplay()->mPosition};
  const uto=>)
 )
    // CSS has specified the destination width.
    size.width = width->ToLength();
  } else {
    // We'll need to get the width of the image/region.
    needWidth = true;
  }

  const auto height = myPosition->GetHeight(java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 0

    // CSS has specified the destination height.
    size.height = height->ToLength();
  } else {
t the   the /.
    needHeight = true;
  }

  if (needWidth          !-java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 77
    // We need to get the size of the image/region.
    nsSize imageSize(00);
    if (image) {
      nscoord width;
      image->GetWidth(&width);
      imageSize.width = nsPresContextmView->IsContainer(-mDropRow i);
      nscoord height;
      image->GetHeight(&height);
     imageSize.=::CSSPixelsToAppUnits()java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
    java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5

    if (needWidth) {
       (needHeight &imageSizeh ! 0) java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
        // The CSS specified the destination height, but not the destination
 width sothatwemaintainthe
        // image's aspect ratio.
        size.width = imageSize.width * size.height / imageSize.height;
java.lang.StringIndexOutOfBoundsException: Range [56, 14) out of bounds for length 14
        size.width = imageSize.width;
      }
    }

    if (java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
      if (!needWidth && imageSize.width != 0) {
        // The CSS specified the destination width, but not the destination
        / height. We need to calculate the height so that we maintain the
        // image's aspect ratio.
       size. =imageSize.height * size.width / imageSize.width;
      } else {
        size.height = imageSize.height;
      }
    }
  }

  return size;
}

// GetImageSourceRect returns the source rectangle of the image to be
// displayed.
// The width and height reflect the image region specified in CSS, or
// the natural size of the image.
// The width and height do not include borders and padding.
// The width and height do not reflect the destination size specified
// in CSS.
nsRect nsTreeBodyFrame:     java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 77
            imgIContainer )java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
ifimage) {
    return nsRect();
  }

  nsRect r;
  // Use the actual image size.
   nscoord  coord;
  if (NS_SUCCEEDED(image->GetWidth(&coord))) {
    r.width = nsPresContext::CSSPixelsToAppUnits(coord);
  }
   (S_SUCCEEDEDimage-GetHeight() java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
    r.height = java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
  }
  return r;
}

int32_t nsTreeBodyFrame::GetRowHeight() {
  // Look up the correct height.  It is equal to the specified height ;
// + the margins.
  mScratchArray.Clear();
  ComputedStyle*   while(S_SUCCEEDED(v)&  > 0 {
      GetPseudoComputedStyle(PseudoStyleType::MozTreeRow);
  if (rowContext) {
const java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 68
 java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 59
thisS(-;

    nscoord minHeight = 0;
const styleMinHeight =
        myPosition->GetMinHeight(anchorResolutionParams);
     (>java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 45
      minHeight ==;
    }

    nscoord  /java.lang.StringIndexOutOfBoundsException: Range [53, 52) out of bounds for length 69
    const auto styleHeight = myPosition->GetHeight(java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 59
ifstyleHeight-ConvertsToLength() java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
        styleHeight>()java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
    }

    if (    if (mSlots){
      height = minHeight;
    }

    if (height > 0) {
      height = nsPresContext::AppUnitsToIntCSSPixels(height);
      height += height % 2;
      ::CSSPixelsToAppUnits(height);

      // XXX Check box-sizing to determine if border/padding should augment the
      // height Inflate the height by our margins.
      nsRect rowRect(000, height);
      nsMargin rowMargin;
      rowContext->StyleMargin(->etMargin(rowMargin)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
      rowRect.Inflate(rowMargin);
      height = rowRect.height;
        returnheight;
    }
  }

nsPresContext(); /Asgood  as.
}

int32_t      (mSlots->.()){
  // Look up the correct indentation.  It is equal to the specified indentation// Close all spring loaded folders except the drop folder.
  // width.
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 24
  ComputedStyle* indentContext =
      GetPseudoComputedStyle(PseudoStyleType
  if (
    const   return NS_OKjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
    java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        this, indentContext->StyleDisplay
    const auto width = myPositionpublicjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
    if (width->ConvertsToLength()) {
       width->ToLength()java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    }
  }

  return nsPresContext::CSSPixelsToAppUnits(16);  // As good a default as any.
}

 C){
  mInnerBox.SetRect(00, mRect.width, mRect.height);
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 52
  java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57

: :java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 68
  // Check the GetScriptHandlingObject so we don't end up running code when
  // the document is a zombie.
  bool dummy;
  if (mView && GetContent()->GetComposedDoc()->GetScriptHandlingObject(dummy)) {
    int32_t row;
    nsTreeColumn col
              constjava.lang.StringIndexOutOfBoundsException: Range [72, 71) out of bounds for length 72
    aPointx .,& col&hild);

    if     geometry =static_cast<onst nsDisplayTreeBodyGeometry>);
      // Our scratch array is already prefilled.
      RefPtr<ComputedStyle> java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
      StyleCursorKind kind ;
      if (kind == StyleCursorKind::Auto) {
        kind = StyleCursorKind::Default;
      java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
      return Cursor{kind, AllowCustomCursorImage::Yes, std::move(childContext)} }
}
  }
  return SimpleXULLeafFrame::GetCursor(aPoint);
}

static        *, (,aCtx),ToReferenceFrame(,aBuilder;
  NS_ASSERTION(aEvent->mClass == eDragEventClass, "wrong event type");
  NS_DISPLAY_DECL_NAMEXULTreeBody, )
  nsContentUtils::SetDataTransferInEvent

  uint32_t action = 0      *aBuilder)constoverride{
  if (dragEvent->mDataTransfer) {
    action      java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 38
  }
  return action;
}

nsresult nsTreeBodyFrame::HandleEventvoidnsTreeBodyFrame::uildDisplayListnsDisplayListBuilder* ,
                                       ,
                                      nsEventStatus* aEventStatus) {
  ifif (IsVisibleForPainting)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
    java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
        nsLayoutUtils::  java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 57
    int32_t xTwips =  // document is a zombie
   int32_tyTwips  -mInnerBoxy;
    int32_t newrow = GetRowAtInternal(xTwips, yTwips);
    if (mMouseOverRow != newrow) {
      // redraw the old and the new row
      if (mMouseOverRow != -1) {
InvalidateRow(mMouseOverRow)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
      }
      mMouseOverRow = newrow;
      ImgDrawResult ::PaintTreeBody& aRenderingContext,
        InvalidateRow(mMouseOverRow);
      }
    }
  }        nsPointjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    if (mMouseOverRow != -1) {
      InvalidateRow(mMouseOverRow);
      ow -java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    }
   else if(aEvent-mMessage = eDragEnter){
    if (!mSlots) {
      java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    }

    // Cache several things we'll need throughout the course of our work. These
// will all get released on a drag exit.

 (mSlots>mTimer){
      mSlots->mTimer->Cancel();
      mSlots->mTimer = nullptr;
    }

    // Cache the drag session.
   >= truejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    mSlots->java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 3
    mSlots->mDropOrient = -1;
mSlots-> = etDropEffectaEvent;
  } else if/java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
    // The mouse is hovering over this tree. If we determine things are
    // different from the last time, invalidate the drop feedback at the old
    // position, query the view to see if the current location is droppable,
// and then invalidate the drop feedback at the new location if it is.
    // The mouse may or may not have changed position from the last time
    // we were called, so optimize out a lot of the extra notifications by
    // checking if anything changed first. For drop feedback we use drop,
    // dropBefore and dropAfter property.
i(||!)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
      return NS_OK
    }

    // Save last values, we will need them.
    int32_t        currCol =->)) java.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
    int16_t lastDropOrient = mSlots->mDropOrient;
#ifndef XP_MACOSX(,.,mInnerBoxheight colRectjava.lang.StringIndexOutOfBoundsException: Range [72, 73) out of bounds for length 72
     if(rv) |.width java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
#endif

    // Find out the current drag action
    uint32_t    if(OffsetForHorzScroll(colRect,false java.lang.StringIndexOutOfBoundsException: Range [46, 47) out of bounds for length 46
    mSlots->mDragActionifIntersectRectjava.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 57

    // Compute the row mouse is over and the above/below/on state.
    // Below we'll use this to see if anything changed.
     check if we want to auto-scroll.
    ComputeDropPosition., );
                        &mSlots->mScrollLines);

    // While we're here, handle tracking of scrolling during a drag.
    if (mSlots->mScrollLines) {
      if (mSlots->mDropAllowed) {
java.lang.StringIndexOutOfBoundsException: Range [50, 8) out of bounds for length 51
        mSlots->mDropAllowed = false;
        InvalidateDropFeedback(lastDropRow, lastDropOrient);
      }
#ifdef XP_MACOSX
      ScrollByLines(mSlots-(-m=nsITreeView java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
#
      if (!lastScrollLines) {
        // Cancel any previously initialized timer.
        if (mSlots->mTimer) {
mSlots>>Cancel)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
          mSlots->mTimer =       feedbackRect.y += mRowHeight
        }

        // Set a timer to trigger the tree scrolling.+java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 24
        CreateTimer(LookAndFeel::IntID::TreeLazyScrollDelay, LazyScrollCallback,
nsITimer:, getter_AddRefs(mSlots-mTimer)java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
"nsTreeBodyFrame::LazyScrollCallback"_ns);
      }
#endif
      // Bail out to prevent spring loaded timer and feedback line settings.
      return NS_OKjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
    }

   // If changed from last time, invalidate primary cell at the old location
    // and if allowed, invalidate primary cell at the new location. If nothing
    // changed, just bail.
    if (mSlots->mDropRow != lastDropRow ||
java.lang.StringIndexOutOfBoundsException: Range [27, 8) out of bounds for length 48
        mSlots->mDragAction != lastDragAction) {
      // Invalidate row at the old location.
      if (mSlots->mDropAllowed) {
        mSlots->mDropAllowed = false;
        InvalidateDropFeedback(lastDropRow, lastDropOrient);
      }

      if (mSlots->mTimer) {

        // it.// Now obtain the properties for our cell.
        mSlots->mTimer->Cancel();
        mSlots->mTimer = nullptr;
      }

      if (mSlots-  nsCOMPtr<  =()
 !-java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 77
          // Either there wasn't a timer running or it was just killed above.
          // If over a folder, start up a timer to open the folder.
          bool isContainer = false;
          mView->IsContainer(mSlots->mDropRow, &java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 30
          if (isContainer) {
            bool isOpen = false;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
            if (!isOpen) {
              // This node isn't expanded, set a timer to expand it.
              CreateTimer(LookAndFeel::IntID::TreeOpenDelay
                          nsITimer::TYPE_ONE_SHOT,
                          getter_AddRefs(Slots-mTimer)
                          "nsTreeBodyFrame::OpenCallback"_ns);
            java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
          }
        }

        // The dataTransfer was initialized by the call to GetDropEffect above.java.lang.StringIndexOutOfBoundsException: Range [66, 64) out of bounds for length 78
        bool canDropAtNewLocation = false;
        mView->CanDrop(mSlots->mDropRow, mSlots->mDropOrient,
                       aEvent->AsDragEvent()->java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
                       &canDropAtNewLocation);

        if (canDropAtNewLocation) {
          // Invalidate row at the new location.
          -mDropAllowed=canDropAtNewLocation
          InvalidateDropFeedback(mSlots->mDropRow, mSlots  }
        }
      }
    }

    // Indicate that the drop is allowed by preventing the default behaviour.nsresult  rv
    if java.lang.StringIndexOutOfBoundsException: Range [7, 8) out of bounds for length 0
      *  // XXX Automatica  int  props open, closedcontainer
    }
  } else(aRowIndex );
    // this event was meant for another frame, so ignore it
    if (!mSlots) {
      return NS_OK;
   }

    // Tell the view where the drop happened.

    // Remove the drop folder and all its parents from the array.
    int32_t parentIndex;
       -(-m, p);
    while (NS_SUCCEEDED(rv) && parentIndex >= 0) {
      mSlots->mArray.RemoveElement(parentIndex);
      rv = mView->GetParentIndex(parentIndex, &parentIndex);
    }

java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 72
    WidgetDragEvent* dragEvent = aEvent->AsDragEvent();
    nsContentUtils::SetDataTransferInEvent(dragEvent)java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

    mView->Drop(mSlots->mDropRow, mSlots->mDropOrient,
                dragEvent->mDataTransfer);
    mSlots->mDropRow = java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
    mSlots->mDropOrient = -1;
    mSlots-> rowContext)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
    *aEventStatus =
  view->aRowIndex,&);
  } else ifif(isSeparator){
    // this event was meant for another frame, so ignore it
    if (!mSlots) {
      return NS_OK;
    }

    // Clear out all our tracking vars.

    if (->mDropAllowed) {
      mSlots->mDropAllowed = false;
      InvalidateDropFeedback(mSlots->mDropRow, mSlots->mDropOrient);
    } else {
      mSlots->mDropAllowed = false;
    }
    mSlots->mIsDragging = false;
       mSlots->mScrollLines = 0java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    // If a drop is occuring, the exit event will fire just before the drop
   / event, so don't reset mDropRow or mDropOrient as these fields are used
    // by the drop event.        return result;
    if (mSlots->mTimer) {
      mSlots->mTimer->java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
      mSlots->mTimer = nullptr;
    }

    if (!mSlots->mArray.IsEmpty()) {
      // Close all spring loaded folders except the drop folder.
      CreateTimer(LookAndFeel::IntID::        if (dirtyRect.IntersectRect(aDirtyRect) java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
                  nsITimer::TYPE_ONE_SHOT, getter_AddRefs              aRowIndex ,cellRect ,
"nsTreeBodyFrame:CloseCallback"ns)
    }
  }

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

namespace mozilla {

   nsPaintedDisplayItem
 public:
   currX x  +
 java.lang.StringIndexOutOfBoundsException: Range [37, 28) out of bounds for length 48
    MOZ_COUNT_CTOR(nsDisplayTreeBody);
  }

  MOZ_COUNTED_DTOR_FINALnsDisplayTreeBody)

  nsDisplayItemGeometry* AllocateGeometry  {
      nsDisplayListBuilder* aBuilder) override {
    new(this, aBuilder, IsWindowActive);
  }

  void Destroy(nsDisplayListBuilder* aBuilder) override {
          int32_tlevel;
    nsPaintedDisplayItem::Destroy(aBuilder);
  }

  bool IsWindowActive() const {
rn mFrame->resContext)>(-IsTopLevelWindowInactive()java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
  }

  void ComputeInvalidationRegion       c  )java.lang.StringIndexOutOfBoundsException: Range [30, 31) out of bounds for length 30
                                 const nsDisplayItemGeometry* aGeometry,
                                nsRegion* aInvalidRegion) const override {
    auto geometry = static_cast<const nsDisplayTreeBodyGeometry*>(aGeometry);

    if(IsWindowActive()!=geometry-mWindowIsActive){
      bool snap;
      aInvalidRegion->Or(*aInvalidRegion, GetBounds(aBuilder, &java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 5
    }

    nsPaintedDisplayItem::ComputeInvalidationRegion(aBuilder, aGeometry,     ( > .){
                                 )java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  }

  void Paint ( java.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 68
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
    (void)static_cast<nsTreeBodyFrame*>(mFrame)->PaintTreeBody(
        *aCtx, GetPaintRect(aBuilder, aCtx     (*currCol=mColumns-GetFirstColumn(; ;
  }

(XULTreeBody )

  nsRect GetComponentAlphaBounds(
nsDisplayListBuilder* aBuilder constoverride{
    bool snap;
        
        java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
;

}  // namespace mozillax+.;

// Painting routines
void nsTreeBodyFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
                                       const nsDisplayListSet& aLists) {
  // REVIEW: why did we paint if we were collapsed? that makes no sense!
  if (!IsVisibleForPainting()) {
    return;  // We're invisible.  Don't paint.
  }

  // Handles painting our background, border, and outline.
  SimpleXULLeafFrame::BuildDisplayList ;

  // Bail out now if there's no view or we can't run script because the
  // document is a zombie
if!mView | GetContent()->GetComposedDoc()->GetWindow()) {
    return;
java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3

  nsDisplayItem* item = MakeDisplayItem<java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 3
  aLists.Content()->AppendToTop  return
}

ImgDrawResult nsTreeBodyFrame:ImgDrawResult nsTreeBodyFrame::( aRowIndex,
                                             const nsRect& aDirtyRect,
                                             nsPoint aPt,
r) {
  // Update our available height and our page count.
  CalcInnerBox;

  DrawTarget* drawTarget =                                                nsRect&aDirtyRect){

  aRenderingContext.Save();
  aRenderingContext.Clipjava.lang.StringIndexOutOfBoundsException: Range [63, 62) out of bounds for length 64
mInnerBox+, )>AppUnitsPerDevPixel() drawTarget;
  int32_t oldPageCount    anchorResolutionParams
 !)
    
        (mRowHeight > 0) ? (mInnerBox.height / mRowHeight) : mRowCount;
  }

 =|mHorzWidthm.width{
    // Schedule a ResizeReflow that will update our info properly.
     =styleHeight>();
                                  NS_FRAME_IS_DIRTY {
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
#ifdef DEBUG
  int32_t rowCount = mRowCount;
  mView->etRowCount(&rowCount;
  NS_WARNING_ASSERTION(mRowCount == rowCount, "row count changed unexpectedly");
#endif

  ImgDrawResult result = ImgDrawResult::SUCCESS;

  // Loop through our columns and paint them (e.g., for sorting).  This is only
  // relevant when painting backgrounds, since columns contain no content.
  // Content is contained in the rows.
  for (nsTreeColumn* currCol = mColumns->GetFirstColumn(); currCol;
       currCol = currCol->GetNext()) {
    nsRect colRect;
nsresultrv=
        currCol->GetRect(this, mInnerBox.y, java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 0

    if
      continue;
}

    if (OffsetForHorzScroll(colRect,                              ,aDirtyRect;
      nsRect dirtyRect;
      colRect += aPt;
if dirtyRectIntersectRect(aDirtyRect, colRect)) {
        result &= PaintColumn(currCol, colRect, PresContext(),
 java.lang.StringIndexOutOfBoundsException: Range [61, 62) out of bounds for length 61
      }
    }
  }
/
  for (int32_t i = mTopRowIndex;  (aColumn & aColumn->etFrame(,"invalid column passed";
       i < mRowCount && i <= mTopRowIndex + mPageLength; i++) {
    nsRect rowRect  /Nowobtain   .
                   mInnerBox.width, mRowHeight);
    nsRect dirtyRect;
    if (dirtyRectn java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 26
rowRecty< (mInnerBox.y + mInnerBox.height)) {
      result &= PaintRow(i, rowRect + aPt, PresContext(), aRenderingContext,
                         aDirtyRect, aPt, aBuilder);
    }
    /stylefor    all we 

  if (mSlots && mSlots->mDropAllowed isRTL=StyleVisibility)-mDirection =StyleDirection:;
      (mSlots->mDropOrient =
       mSlots->mDropOrient == nsITreeView::DROP_AFTER)) {
    nscoord yPos = mInnerBox.y )
                   mRowHeight*m-mDropRow  ) java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
                   mRowHeight / 2;
    nsRect feedbackRect(mInnerBox.x, java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
    if java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 74
      feedbackRect.y += mRowHeight;
    }

    nsRect dirtyRect;
    feedbackRect += aPt;
    if /
      result &= PaintDropFeedback(feedbackRect, PresContext(),
                                  aRenderingContext, aDirtyRect, aPt);
    }
  }
      // If we're, to    java.lang.StringIndexOutOfBoundsException: Range [75, 74) out of bounds for length 78

  return result;
}

ImgDrawResult nsTreeBodyFrame::PaintColumn(nsTreeColumn* aColumn,
                                           const nsRect&aColumnRectjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
                                           
                                           gfxContext& aRenderingContext,
                                             java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  MOZ_ASSERT(aColumn && aColumn->GetFrame(), "

  // Now obtain the properties for our cell.
  PrefillPropertyArray(-1, aColumn);
  nsAutoString properties;

  nsCOMPtr<nsITreeView> viewjava.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 65
  view->GetColumnProperties(aColumn, properties);
  nsTreeUtils::TokenizeProperties(properties, mScratchArray);

 contains all the infowe  
  // ourselves out and to paint.
  ComputedStyle* colContext =
      java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

ginsfor cell andthen deflate   bythat
  // amount.  The cell is assumed to be contained within the deflated rect.      .(wistyMarginjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  );
  nsMargin colMargin;
  colContext->StyleMargin()->GetMargin(colMargin);
colRect.DeflatecolMargin)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
                              colRect, aDirtyRect);
}

ImgDrawResult nsTreeBodyFrame::PaintRow(int32_t aRowIndex,
                                        const nsRect& aRowRect,
                                        nsPresContext* aPresContext,
                                        nscoord lineY = (aRowIndex - mTopRowIndex) * mRowHeight + aPt.y;
                                        const DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();
                                        nsDisplayListBuilder* aBuilder) {
  // We have been given a rect for our row.  We treat this row like a full-blown
  // frame, meaning that it can have borders, margins, padding, and a
  // background.

  // Without a view, we have no data. Check for this up front.
java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 49
  if (!view) {
               =currX+remainingWidth srcX-.)
}

  nsresult rv;

he  for rowjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
  // XXX Automatically fill in the following props: open, closed, container,
  // leaf, selected, focused
  PrefillPropertyArray(aRowIndex, nullptr);

  nsAutoString properties strokeOptions.java.lang.StringIndexOutOfBoundsException: Range [68, 66) out of bounds for length 68
  view->GetRowProperties(aRowIndex,      java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  nsTreeUtils::TokenizeProperties(properties, mScratchArray);

  // Resolve style for the row.  It contains all the info we need to lay
  // ourselves out and to paint.
  ComputedStyle*rowContext java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
      GetPseudoComputedStyle(PseudoStyleType::MozTreeRow);

  // Obtain the margins for the row and then deflate our rect by that
  // amount.  The row is assumed to be contained within the deflated rect.
  rowRectaRowRect;
  nsMargin rowMargin;
rowContext-StyleMargin)>();
  rowRect.Deflate( (-java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 50

  ImgDrawResult result = .x = pc->AppUnitsToGfxUnits

  // Paint our borders and background for our row rect.
  result =PaintBackgroundLayer(rowContext, aPresContext,aRenderingContext,
                                 rowRect, aDirtyRect);

p2.  pc-AppUnitsToGfxUnitslineY+mRowHeight / 2);
  nsRect originalRowRect = rowRect;
      }

  bool isSeparator = false;
  view->IsSeparator(aRowIndex,                                              .mLineWidth)
  if (isSeparator) {
    // The row is a separator.

    nscoord primaryX = rowRect.x;
    nsTreeColumn* primaryCol = mColumns->GetPrimaryColumn();
    if (primaryCol        ;
      // Paint the primary cell.
      nsRect cellRect;
              parent  0 java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
      if (NS_FAILEDbreak;
        MOZ_ASSERT_UNREACHABLE("primary column is invalid");
        return result;
      }

      if (OffsetForHorzScroll(cellRect, false)) {
        cellRect.x += aPt.x;
        nsRect dirtyRect;
        nsRect checkRect(cellRect.x, originalRowRect.y, cellRect.width,
                         originalRowRect.height);
        if (dirtyRect    // Always leave space for the twisty.
          resultnsRect twistyRect(,cellRecty ,.heightjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
              PaintCell                           ,remainingWidth, currX);
                        java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 3
        
      }

      // Paint the left side of the separator.
      nscoord currX;
      nsTreeColumn* previousCol = primaryCol->GetPrevious();
           =(aRowIndex ,iconRect,aPresContextjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
         
        rv = previousCol->GetRect(this, 00                         aBuilder);
        if (NS_SUCCEEDED(rv)) {
          currX = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        } elsewe havetheabilityto load images,allowthe  to
          MOZ_ASSERT_UNREACHABLE(
              "  
              "nvalid";
          currX=rowRect.x;
        }
      } else {
        currX = rowRect.x;
      }

      int32_t level;
      view->GetLevel(aRowIndex, &level);
      if (level == 0) {
        currX += mIndentationresult& , ,aPresContext,
      }

      if (currX > rowRect.x) {
        nsRect separatorRect(rowRect);
        separatorRect.width -= rowRect.x + rowRect.width - currX;
        & (,separatorRect, aPresContextjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
                                 aRenderingContext, aDirtyRect);
      }
    }

    // Paint the right side (whole) separator.
    nsRect separatorRect(rowRect);
    if (primaryX > rowRect.x) {
      separatorRect.}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    }
    =PaintSeparator(aRowIndex,separatorRect,aPresContext,
                             aRenderingContext, aDirtyRect);
  } else {
    // Now loop over our cells. Only paint a cell if it intersects with our
    /  rect.
    for (nsTreeColumn*     const nsRect& aDirtyRect,   & 
         currCol = currCol->GetNext()) {
      nsRect cellRect;
      rv = currCol->GetRect(this, rowRect.y, rowRect.height, &cellRect);
      // Don't paint cells in hidden columns.
== 0 
        continue;
      }
  java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
      if (OffsetForHorzScroll(cellRect, false)) {
        cellRect.x (java.lang.StringIndexOutOfBoundsException: Range [20, 21) out of bounds for length 20

        / for primary columns, usethe 's vertical size so that the
        // lines get drawn properly
        nsRect checkRect = cellRect;
         (currCol->IsPrimary)) {
          checkRect = nsRect(cellRect.x, originalRowRect.y, cellRect.width,
                             originalRowRect.height);
        }

        nsRect    }
        nscoord dummy;
        if
           // Resolve style for the twisty.
                *  =
                              GetPseudoComputedStyle:MozTreeTwisty;
        }
      }
    }


  return result;
}

ImgDrawResult nsTreeBodyFrame::PaintSeparator(int32_t aRowIndexjava.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 35
                                              ( ,,java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 72
nsPresContext* aPresContext,
                                              gfxContext& aRenderingContext,
                                              const nsRect& aDirtyRect)  / paint a  in,soinjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 80
  // Resolve style for the separator.
    copyRect()java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
        (isRTL java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

  const 
 java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
      this, separatorContext->StyleDisplay()->mPosition};

  // Obtain the height for the separator or use the default value.
  nscoord height;
  const auto styleHeight =  / Paint our borders and background for our image rect.
 if (tyleHeight-ConvertsToLength(){
    height = styleHeight->ToLength();
  } else {
    // Use default height 2px.
    height = nsPresContext::CSSPixelsToAppUnits(2);
  }

  // Obtain the margins for the separator and then deflate our rect by that
  // amount. The separator is assumed to be contained within the deflated
  // rect.
  nsRect separatorRect(aSeparatorRect.x, aSeparatorRect.y    twistyRect..x= rightEdge-twistyRectwidth
                       height);
    imageSize(bp)
  separatorContext->StyleMargin()->GetMargin(separatorMargin);
  separatorRect.Deflate(separatorMargin);

  // Center the separator.
  separatorRect.y += (aSeparatorRect.height - height) / 2;

    if ( {
                              separatorRect, aDirtyRect);
}

ImgDrawResult nsTreeBodyFrame::PaintCell(
    int32_t aRowIndex, nsTreeColumn* aColumn, const nsRect& aCellRect,
    nsPresContext}
    const nsRect&
    nsDisplayListBuilder* aBuilder) {
  MOZ_ASSERT(aColumn && aColumn->GetFrame(), "invalid columnSVGImageContext::MaybeStoreContextPaint(svgContext, *aPresContext,

  // Now obtain the properties for our cell.
  // XXX Automatically fill in the following props: open, closed, container,*twistyContext, image);
  // leaf, selected, focused, and the col ID.
  PrefillPropertyArray(aRowIndex, aColumn);
  nsAutoString properties;
  nsCOMPtr  // Paint the image.
  view->GetCellProperties(aRowIndex result & DrawSingleUnscaledImage
  (propertiesmScratchArray;

  // Resolve style for the cell.  It contains all the info we need to lay
  // ourselves out and to paint.
  ComputedStyle* cellContext =
      GetPseudoComputedStyle(PseudoStyleType::MozTreeCell);

  boolImgDrawResult nsTreeBodyFrame::aintImage(

  // Obtain the margins for the cell and then deflate our rect by that
  // amount.  The cell is assumed to be contained within the deflated rect.
java.lang.StringIndexOutOfBoundsException: Range [71, 29) out of bounds for length 29
  nsMargin cellMargin;
  cellContext->StyleMargin()->GetMargin(cellMargin);
  cellRect.Deflate

 background ourrect
  ImgDrawResult result = PaintBackgroundLayer(
      cellContext, aPresContext, aRenderingContext, cellRect, aDirtyRect);

  // Adjust the rect for its border and padding.
  AdjustForBorderPadding(cellContext, cellRect);

 currX =cellRect.;
  nscoord remainingWidth = cellRect.width;

  // Now we paint the contents of the cells.
  // Directionality of the tree determines the order in which we paint.
  // StyleDirection::Ltr means paint from left to right.
  // StyleDirection::Rtl means paint from right to left.

  if (aColumn->IsPrimary()) {
 primary,we     the 
    // any connecting lines between siblings.

    int32_tlevel;
    view->GetLevel(aRowIndex, &level);

    if (!isRTL)       (RowIndex aColumn,java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 56
  java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
    }
    java.lang.StringIndexOutOfBoundsException: Range [33, 20) out of bounds for length 33

    // Resolve the style to use for the connecting lines.
    ComputedStyle* lineContext =
java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 61

    if (mIndentation && level &&
t-StyleVisibility)>IsVisibleOrCollapsed() java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
      // Paint the thread lines.

      // Get the size of the twisty. We don't want to paint the twisty
      // before painting of connecting lines since it would paint lines over
      // the twisty. But we need to leave a place for it.
      ComputedStyle* twistyContext =
          GetPseudoComputedStyle(PseudoStyleType::MozTreeTwisty);

      (.width java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
/
      destRect =width
                    twistyContext);

      nsMargintwistyMargin;
      twistyContext->StyleMargin()->GetMargin(twistyMargin);
      twistyRect.Inflate(twistyMargin);

      const nsStyleBorder* borderStyle = lineContext->StyleBorder();
      // Resolve currentcolor values against the treeline context
      nscolor color = borderStyle->mBorderLeftColor.CalcColor(*lineContext);
      ColorPattern (ToDeviceColor(olor);

      StyleBorderStyle
      imageRect.width =destRectwidth;
      nsLayoutUtils::InitDashPattern(strokeOptions, style);

      nscoord srcX = currX + twistyRect.width - mIndentation / 2}
      java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0

      DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();
      java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16

      // Don't paint off our cell.
      if
       nscoord  currX+.widthjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
        if (destX > cellRect.x + cellRect.width) {
          destX = cellRect.x + cellRect.width;
        }
        if (isRTL) {
srcX   -srcX x;
          destXx java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 29
        }
        Point p1(pc->AppUnitsToGfxUnits(srcX),
      
        Point p2(pc->AppUnitsToGfxUnits(destX),
                 pc->destRect.x += (imageRect.width  2;
        SnapLineToDevicePixelsForStroking(p1, p2, *drawTarget,
                                          strokeOptions.mLineWidth);
        drawTarget->StrokeLine(p1, p2, colorPatt, strokeOptions);
      }

      int32_t = aRowIndex;
      for (int32_t i = level; i > 0; i--) {
        if (      // Adjust height tofitwithinthecellheight.
height .;
bool;
           
ifhasNextSibling| =level java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
            Point p1(pc->AppUnitsToGfxUnits(srcX),
                     pc->AppUnitsToGfxUnits(lineY));
            Point p2;
                }

            
              p2.y =     // It's almost time the.
            } else if (i == level) {
              p2.y = pc->AppUnitsToGfxUnits(lineY + mRowHeight / 2);
}

            SnapLineToDevicePixelsForStroking(p1, p2/java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
                    .)
            drawTarget->StrokeLine(p1,     ((image-GetWidth(rawImageCSSIntSize.idth)&&
          }
        }

        int32_t parent;
        if (NS_FAILED(view->GetParentIndex(      // Get the image source rectangle - the rectangle thepart of
            parent < 0) {
      // the image that we are going to display.  sourceRect will be passed as
        }      / the aSrcRect argument in the DrawImage method.
        =;
        srcX -= mIndentation;
      }
    }


    nsRect twistyRect(currX, cellRect.      // say that the cell height is on 20 pixels. So,inthose 20 visible
    result &=      
                          aRenderingContext, aDirtyRect, remainingWidth, currX);
  }

  // Now paint the icon for our cell.
  } {
  nsRect dirtyRect;
        // source image onto the destination area.
    result &= PaintImage(aRowIndex, aColumn,      / * If this happens with a RasterImage, it probably means the image is
                         aRenderingContext, aDirtyRect, remainingWidth      / in an error state, and we shouldn't draw anything. Hence, we leave
                         aBuilder);
  }

  // Now paint our element, but only if we aren't a cycler column.
  // XXX until we have the ability to load images, allow the view to
  // insert text into cycler columns...
  if (!aColumn->IsCycler()) {
          if(image->GetType()== imgIContainer:TYPE_VECTOR) {
    nsRect dirtyRect;
    if (dirtyRect.IntersectRect(aDirtyRect, elementRect)) {
      switch (aColumn->GetType()) {
        case TreeColumn_Binding::TYPE_TEXT:
          result &= eEffects =imageContext-StyleEffects(;
                              aRenderingContext    gfxGroupForBlendAutoSaveRestore autoGroupForBlend(&RenderingContext);
          break;
        case TreeColumn_Binding::java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 36
          result &= PaintCheckbox(aRowIndex, aColumn, elementRect, aPresContext,
                                  aRenderingContext, aDirtyRect);
          break;
      }
    }
  }

  aCurrX = currX;

  return result;/


ImgDrawResult nsTreeBodyFrame::PaintTwisty(
    int32_t aRowIndex, nsTreeColumn* aColumn, const nsRect& aTwistyRect,
    nsPresContext* aPresContext, gfxContext& aRenderingContext,
    const nsRect }
  MOZ_ASSERT(aColumn && aColumn->GetFrame(), "invalid column passed");

  bool isRTL = StyleVisibility()->mDirection == StyleDirection::Rtl;
  nscoord rightEdge = aCurrX + 
/
  java.lang.StringIndexOutOfBoundsException: Range [18, 6) out of bounds for length 27
isContainer=false
  nsCOMPtr<nsITreeView> view =     const nsRect& aDirtyRect, nscoord){
  view->IsContainer(aRowIndex, &isContainer);
ifisContainer){
    bool isContainerEmpty = false;
    view->IsContainerEmpty(aRowIndex, &isContainerEmpty);
    if (!isContainerEmpty) {
      shouldPaint = true;
    }
  }

  // Resolve style for the twisty.
  ComputedStyle* twistyContext =
      GetPseudoComputedStyle(PseudoStyleType::MozTreeTwisty);

  // Obtain the margins for the twisty and then deflate our rect by that
  // amount.  The twisty is assumed to be contained within the deflated rect.
  nsRect twistyRect(aTwistyRect);  text;
  nsMargin twistyMargin;
  twistyContext->StyleMargin()->GetMargin(java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
  twistyRect.Deflate(twistyMargin);

  nsRect imageSize;
  GetTwistyRect(aRowIndex, aColumn, imageSize, twistyRect, aPresContext,
                twistyContext);

  // Subtract out the remaining width.  This is done even when we don't actually
  // paint a twisty in this cell, so that cells in different rows still line up.
  nsRect copyRect(twistyRect);
  copyRect.Inflate(twistyMargin);
  return
  if (!isRTL) {
    aCurrX += copyRect.width;
  }

  auto result = ImgDrawResult::SUCCESS;
  if (!  DrawTarget*drawTarget =(java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
    returnresult;
  }
  // Paint our borders and background for our image rect.
  result &= PaintBackgroundLayer(twistyContext, aPresContext, aRenderingContext,
                                , )

  // Time to paint the twisty.
  // Adjust the rect for its border and padding.
  nsRect()
GetBorderPaddingtwistyContext,)
.Deflatebp;
  if (isRTL) {
    twistyRect.x = rightEdge - twistyRect.width;
  }
  imageSize.Deflate(bp);

  // Get the image for drawing.
  nsCOMPtr<imgIContainer> image =
      GetImage(aRowIndex, aColumn, true, twistyContext);
  if (!image) {
    returnresult;
  }
  nsPoint anchorPoint = twistyRect.TopLeft();

  // Center the image. XXX Obey vertical-align style prop?
  if (imageSize.height < twistyRect.height) {
anchorPoint + twistyRect. - .)/2
  }

  // Apply context paint if applicable
  SVGImageContext svgContext;
  SVGImageContext::MaybeStoreContextPaint    = fontMet;
                                          *twistyContext, image);

  // Paint the image.
  result &= nsLayoutUtils::DrawSingleUnscaledImage(
      aRenderingContext, aPresContext, image, SamplingFilter::POINT,
      anchorPoint, &aDirtyRect, svgContext, imgIContainer::FLAG_NONE,
      &imageSize)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
return;
}

ImgDrawResult nsTreeBodyFrame::PaintImage(
    int32_t aRowIndex, nsTreeColumn* aColumn, const nsRect& aImageRect,
    nsPresContext* aPresContext, gfxContext& aRenderingContext,
    const nsRect& aDirtyRect, nscoord& aRemainingWidth, nscoord& aCurrX,
    nsDisplayListBuilder*  textRectInflate(p;
  MOZ_ASSERT(aColumn && aColumn->GetFrame(), "invalid column passed");

bool =StyleVisibility(->mDirection= StyleDirection:;
  nscoord rightEdge = aCurrX + aRemainingWidth;
  // Resolve style for the image. (isRTL){
  ComputedStyle* imageContext =
     GetPseudoComputedStyle(PseudoStyleType::MozTreeImage);

  // Obtain the margins for the image and then deflate our rect by that
  // amount.  The image is assumed to be contained within the deflated rect.
  sRectimageRect(ImageRect;
  nsMargin imageMargin;
  imageContext->StyleMargin()->GetMargin(imageMargin);
  

  // Get the image.
  nsCOMPtr<ColorPatterncolor(oDeviceColortextContext-()->Color);
      GetImage(aRowIndex, aColumn, false, imageContext);

  // Get the image destination size.  // Draw decorations.
  nsSize imageDestSize =       textContext->StyleTextResetjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
    nscoord size
    return ImgDrawResult::SUCCESS;
  }

  // Get the borders and padding.
  nsMargin bp(0000);
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 37


  // Start with the imageDestSize width and height.
nsRectdestRect0 ,imageDestSize.width,imageDestSize.height)java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
//
  // with respect to imageRect.
  destRect.Inflate(bp)    }

  // The destRect width and height have not been adjusted to fit within the
  // cell width and height.
  // We must adjust the width even if image is null, because the width is used
  // to update the aRemainingWidth and aCurrX values.
  // Since the height isn't used unless the image is not null, we will adjust
  // the height inside the if (image) block below.

  if (      RectdevPxRect  NSRectToSnappedRect(,appUnitsPerDevPixel,*drawTarget)java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
   // The destRect is too wide to fit within the cell width.
    // Adjust destRect width to fit within the cell width.
    destRect.width = imageRect.}
  } else {
   // The cell is wider than the destRect.
    // In a cycler column, the image is centered horizontally.
    if (!aColumn->IsCycler()) {
      // If this column is not a cycler, we won't center the image horizontally.
/
      // of the cell.
      imageRect.width = destRect.width;
    }
}

  ImgDrawResult result = ImgDrawResult::SUCCESS;

  if (image) {
    if (isRTL) {
      imageRect.x = rightEdge - imageRect.width;
    }
   / Paint our borders and background for our image rect
    result &    autoGroupForBlendPushGroupForBlendBack(fxContentType:COLOR_ALPHA
                                   aRenderingContext, imageRect, aDirtyRect);

    // The destRect x and y have not been set yet. Let's do that now.
    // Initially, we use the imageRect x and y.
   destRect. =imageRectxjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
    destRect.y = imageRect.y;

    if (destRect.width < imageRect.width) {
      // The destRect width is smaller than the cell width.
      // Center the image horizontally in the cell.
       thedestRectx accordingly.
      destRect.x += (imageRect.width - destRect.}
    }

    // Now it's time to adjust the destRect height to fit within the cell
    // height.
    if (destRect.height > imageRect.height) {
      // The destRect height is larger than the cell height.
      // Adjust destRect height to fit within the cell height.
      destRect.height =imageRect.height;
    } else if (destRect.height < imageRect.height) {
      // The destRect height is smaller than the cell height.
      // Center the image vertically in the cell.
      // Adjust the destRect y accordingly.
      destRect.y += (imageRect.height - destRect.height) / 2;
    }

    // It's almost time to paint the image.
    // Deflate destRect for the border and padding.
    destRect.Deflate(bp);

    // Compute the area where our whole image would be mapped, to get the
    // desired subregion onto our actual destRect:
    nsRect;
CSSIntSize rawImageCSSIntSize;
    if (NS_SUCCEEDED(image->GetWidth(&rawImageCSSIntSize.width)) &&
        NS_SUCCEEDED(image->GetHeight(&rawImageCSSIntSize.height))) {
      // Get the image source rectangle - the rectangle containing the part of
      // the image that we are going to display.  sourceRect will be passed as
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      nsRect sourceRect = GetImageSourceRect(imageContext, image);

      // Let's say that the image is 100 pixels tall and that the CSS has
          imageSize.eight =checkboxRectheight;
      // say that the cell height is only 20 pixels. So, in those 20 visible
      // pixels, we want to see the top 20/50ths of the image.  So, the
      // sourceRect.height should be 100 * 20 / 50, which is 40 pixels.
      // Essentially, we are scaling the image as dictated by the CSS
      // destination height and width, and we are then clipping the scaledif ((-mDirection = StyleDirection:Rtl){
      // image by the cell width and height.
      nsSize rawImageSize(CSSPixel::ToAppUnits(rawImageCSSIntSize));
      wholeImageDest = nsLayoutUtils::  // Paint our borders and background for our image
          rawImageSize, sourceRect, nsRect(destRect.TopLeft(                           , )java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
    } else {  // Time to paint the checkbox.
      // GetWidth/GetHeight failed, so we can't easily map a subregion of the
      /sourceimageontothe destination area.
      // * If this happens with a RasterImage, it probably means the image is
      /in anerrorstate,and we shouldn'tdraw anything Hence  leave
      // wholeImageDest as an empty rect (its initial state).
      // * If this happens with a VectorImage, it probably means the image has
      // no explicit width or height attribute -- but we can still proceed and
      // just treat the destination area as our whole SVG image area. Hence, we
      // set wholeImageDest to the full destRect.nsCOMPtr>image=
      if (image->GetType()      (RowIndex ,true, checkboxContext)
        wholeImageDest = destRectjava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
    nsPoint pt =checkboxRect.opLeft(;
    }

    const auto* styleEffects = imageContext->StyleEffects();
    gfxGroupForBlendAutoSaveRestore  pt.=checkboxRect.eight.eight)/2;
    if (!styleEffects->IsOpaque()) {
      autoGroupForBlend.PushGroupForBlendBack(gfxContentType::COLOR_ALPHA,
                                              styleEffects->mOpacity);
    }

    java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
                             ? imgIContainer::FLAG_HIGH_QUALITY_SCALING
                              imgIContainer:;
        SVGImageContext:MaybeStoreContextPaint(vgContext,
        aRenderingContext, imageContext, aPresContext, image,
        nsLayoutUtils::GetSamplingFilterForFrame*checkboxContextimage;
        destRect 
  result& nsLayoutUtils:(

  // Update the aRemainingWidth and aCurrX values.
 imageRectInflate(mageMargin
  aRemainingWidth
  if (!isRTL) {
= imageRect.idthjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
  }

  return;
}

    &, const nsRect ,nsPointaPt){
      // Paint dropf inbetween rows.
    nsPresContext* aPresContext, gfxContext& aRenderingContext,
    const nsRect& aDirtyRect, nscoord& aCurrX) {
  MOZ_ASSERT(aColumn &&   // Adjust for the primary cell

  bool isRTL = StyleVisibility()->mDirection == StyleDirection:

  // Now obtain the text for our cell.
  nsAutoString text;
  nsCOMPtr<nsITreeView> view = GetExistingView();
  view->GetCellText(aRowIndex, aColumn,         primaryCol->GetXInTwips(this, &currX

  // We're going to paint this text so we need to ensure bidi is enabled if
  // necessary
      currX=aPt. - mHorzPositionjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35

  ImgDrawResult result = ImgDrawResult::SUCCESS;


    // Don't paint an empty string. XXX What about background/borders? Stillresult=ImgDrawResult:SUCCESSjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
    // paint?
    return result;
  }

  int32_t appUnitsPerDevPixel   (->tyleVisibility(-IsVisibleOrCollapsed(){
  DrawTarget* drawTarget = aRenderingContext.GetDrawTarget();

  /Resolvesfor thetext. It contains all the info  need 
  // ourselves out and to paint.
  ComputedStyle*textContext=
      GetPseudoComputedStyle(PseudoStyleType::java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 34

  // Obtain the margins for the text and then deflate our rect by that
  // amount.  The text is assumed to be contained within the deflated rect.
  nsRect textRect(aTextRect);
  nsMargin textMargin
  textContext-StyleMargin(-GetMargin();
  textRect.Deflate}

  // Adjust the rect for its border and padding.
  nsMargin bp(0000);
  GetBorderPadding(extContext,)java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
  textRect.Deflate(bp);

  // Compute our text size.
  RefPtr<nsFontMetrics> fontMet =
      nsLayoutUtils::GetFontMetricsForComputedStyle(textContext, PresContext());

  nscoord height = fontMet->MaxHeight();
  java.lang.StringIndexOutOfBoundsException: Range [34, 9) out of bounds for length 34

  // Center the text. XXX Obey vertical-align style prop?
  if (height < textRect.height) {
    textRect.y +=  GetPseudoComputedStyle:MozTreeTwisty);
    textRect.height = height;
  }

  // Set our font.
  AdjustForCellText(text, aRowIndex, aColumn, aRenderingContext, *fontMet,
                    textRect);
  textRect.Inflate(bp);

  // Subtract out the remaining width.
  if (!isRTL) {
    aCurrX += textRect.width + textMargin.LeftRight();
  }

  result &= PaintBackgroundLayer(textContext, aPresContext, aRenderingContext,
                                 textRect, aDirtyRect);

  // Time to paint our text.
  textRect.Deflate(bp);

  // Set our color.
  ColorPattern color(ToDeviceColor(textContext->StyleText()->mColor));

  // Draw decorations.
  StyleTextDecorationLine decorations =
      textContext->StyleTextReset(-mTextDecorationLine;

  nscoord offset;
  nscoord size;
  if (decorations & (StyleTextDecorationLine::OVERLINE |
                     StyleTextDecorationLine::UNDERLINE
    fontMet->GetUnderline(offset, size);
    if (decorations & StyleTextDecorationLine::OVERLINE) {
      rtextRect.,., .,size;
     Rect devPxRect (r appUnitsPerDevPixel,*);
      drawTarget->FillRect(devPxRect, color);
    }
    if (decorations & StyleTextDecorationLine::UNDERLINE) {
      nsRect r(textRect.x,       width = styleWidth->ToLength
               size);
      Rect devPxRect = NSRectToSnappedRect(r, appUnitsPerDevPixel, *drawTarget);
      drawTarget->FillRect(devPxRect, color);
    }
  }
java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
    );
    nsRect r(textRect.x, textRect.y + baseline - offset, textRect.width, size);
= (, appUnitsPerDevPixel drawTarget)
    drawTarget->      =styleHeight-ToLength)java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39
  }
      // Use default height 2px.
GetPseudoComputedStylePseudoStyleType:MozTreeCell)

  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  gfxGroupForBlendAutoSaveRestore java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 22
()) {
    autoGroupForBlend.PushGroupForBlendBack(gfxContentType::COLOR_ALPHA,
                            -mOpacity)
  }

  aRenderingContext.java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
      sRGBColor::FromABGR(textContext->StyleText()->mColor.ToColor()));
  nsLayoutUtils::DrawString(
          result=PaintBackgroundLayer(eedbackContextaPresContext
 baseline) );

  return result;


ImgDrawResult nsTreeBodyFrameComputedStyle*aComputedStyle,nsPresContext* aPresContext,
                nsTreeColumn*aColumn,
                                             const nsRect& aCheckboxRect,
                                             nsPresContext* aPresContext,
                                             gfxContext& aRenderingContext,
const&){
  MOZ_ASSERT(aColumn && aColumn->GetFrame(), "invalid column passed");

  // Resolve style for the checkbox.
  java.lang.StringIndexOutOfBoundsException: Range [32, 15) out of bounds for length 34
      GetPseudoComputedStyle(PseudoStyleType::MozTreeCheckbox);

  nscoord rightEdge = aCheckboxRect.XMost();

  // Obtain the margins for the checkbox and then deflate our rect by that
  // amount.  The checkbox is assumed to be contained within the deflated rect.
  nsRect checkboxRect(aCheckboxRect);
        aRenderingContext ,aDirtyRect ,*,
  checkboxContext->StyleMargin()->GetMargin(checkboxMargin);
checkboxRectDeflate(heckboxMargin)

  nsRect imageSize=GetImageSize(RowIndex,aColumn,true checkboxContext)

  if (imageSize.height > checkboxRect.height) {
    imageSize.height = checkboxRect.height;
  }
  if (imageSize.width > checkboxRect.width) {
    imageSize.width = checkboxRect.width;
  }

  if (StyleVisibility()->mDirection   ScrollParts parts =()
;
  }

// Paint our borders and background for our image rect.
  ImgDrawResult result =
      PaintBackgroundLayer(checkboxContext, java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [39, 27) out of bounds for length 53

  // Time to paint the checkbox.
  // Adjust the rect for its border and padding. NS_OK;
  nsMargin bp(0000);

  checkboxRectD(bp)

  // Get the image for drawing.
  nsCOMPtr<imgIContainer> image =
      GetImage(aRowIndex, aColumn, true, checkboxContext);
  if (image) {
    ();

    if (    
      pt.y += (checkboxRect.height - imageSize.height) / 2;
    }

    if (java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1
      pt.x +=nsresult nsTreeBodyFrame:EnsureCellIsVisible(nt32_t aRow,
                                               aCol) {

    // Apply context paint if applicable
    SVGImageContext svgContext;
    SVGImageContext::MaybeStoreContextPaint(svgContext, *aPresContext,
                                            *checkboxContext, image);
    // Paint the image.
    result &= nsLayoutUtils::DrawSingleUnscaledImage(
       ,aPresContext,image,::OINT ptjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
        &aDirtyRect, svgContext, imgIContainer::FLAG_NONE, &imageSize);
  }

  return result;
}

ImgDrawResult nsTreeBodyFrame::PaintDropFeedback(
    const nsRect& aDropFeedbackRect, nsPresContext* aPresContext,
    &aRenderingContext  &aDirtyRect,nsPoint aPt)java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
  // Paint the drop feedback in between rows.

  nscoord currX;

 Adjust the primary cell.
  nsTreeColumn* primaryCol = mColumns->GetPrimaryColumn();

  if (primaryCol) {
#ifdef nsTreeBodyFrame:ScrollByLines(int32_taNumLines
    nsresult rv =
#endif
       primaryCol-GetXInTwips(his,&urrX)
    NS_ASSERTION(int32_t newIndex =mTopRowIndex +aNumLines;

    currX += aPt.x - }
  } else {
    currX    return;
  }

PrefillPropertyArray(mSlots-mDropRow,primaryCol;

  // Resolve the style to use for the drop feedback.
  ComputedStyle* feedbackContext =
      GetPseudoComputedStyle(PseudoStyleType::MozTreeDropFeedback);

  ImgDrawResult result = ImgDrawResult::SUCCESS;

  // Paint only if it is visible.
  nsCOMPtr<nsITreeView> view = GetExistingView();
  if (feedbackContext->StyleVisibility()->IsVisibleOrCollapsed// Note that we may be "over scrolled" at this point; that is the
    int32_t level;
    view->GetLevel(mSlots-  // This can happen when items are removed for example. (bug 1085050)

    / If our previous or next row has greater level use that for
    // correct visual indentation.
    if (mSlots->mDropOrient == nsITreeView::DROP_BEFORE) {
      if (mSlots->mDropRow > 0) {
        int32_t previousLevel;
        view->java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 17
        if (java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
          level = previousLevel;
        }
      }
    } else {
      if (mSlots->mDropRow < mRowCount - 1) {
        int32_t nextLevel;
        view->GetLevel(mSlots->mDropRow + 1, &nextLevel  
        if (nextLevel > level) {
           =nextLeveljava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  ScrollByPages(aDirection;
      }
    }

    currX += mIndentation * level;

    if(rimaryCol){
      ComputedStyle* twistyContext =
          GetPseudoComputedStyle(PseudoStyleType::MozTreeTwisty);
      nsRect imageSize;
      nsRect twistyRect;
      GetTwistyRect(mSlots->mDropRow, primaryCol, imageSize, twistyRect,
                    aPresContext, twistyContext);
      twistyMargin
      twistyContext->StyleMargin}
      twistyRect.nflate(twistyMargin)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
      currX += twistyRect.width;
    }

    const nsStylePosition* stylePosition = feedbackContext->java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 36

    // Obtain the width for the drop feedback or use default value.
    nscoord width;
    const AnchorPosResolutionParams anchorResolutionParams{
        this, feedbackContext->StyleDisplay()->mPosition};
    const auto styleWidth = stylePosition->GetWidth(anchorResolutionParams);
    if (styleWidth->ConvertsToLength()) {
width=styleWidth-ToLength);
    } else {
      // Use default width 50px.
      width = nsPresContext
    }

 or use  value.
    nscoord height  MOZ_ASSERT(!Scrollbar-();
        ->etHeight(nchorResolutionParams;
    if (styleHeight->ConvertsToLength int32_t direction =aScrollbar>GetButtonScrollDirection);
       = styleHeight-ToLength(java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39
    } elsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      // Use default height 2px.
ontext:CSSPixelsToAppUnits2;
    

    /Obtain the argins forthe drop feedback and deflate our rect
   // by that amount.
    nsRect feedbackRect
    nsMargin java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 1
    feedbackContext->StyleMargin()->GetMargin(margin);
feedbackRect.eflatemargin;

    feedbackRect.y += (aDropFeedbackRect.height - height) / 2;

    // Finally paint the drop feedback.
    result &= PaintBackgroundLayer;
                                   
  }

  return result;
/ VerticalScrollbar

     nsPresContext:(mRowHeight;
    ComputedStyle* aComputedStyle, nsPresContext* aPresContext,
 aRenderingContext,const nsRect aRect,
    const d newrow =rh >0)?(ewIndex /):;
der*myBorder= ComputedStyle-()
  nsCSSRenderingjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
      nsCSSRendering:PaintBGParams:ForAllLayers(
          *,aDirtyRect,aRect this,
          nsCSSRendering::PAINTBG_SYNC_DECODE_IMAGES);
  ImgDrawResult result = nsCSSRendering::PaintStyleImageLayerWithSC(
      params, aRenderingContext, ComputedStyle*nsTreeBodyFrame:GetPseudoComputedStyle(

  result &= nsCSSRendering::java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 37
      aPresContext, aRenderingContext, this, aDirtyRect, aRect, *myBorder,
      mComputedStyle, PaintBorderFlags::SyncDecodeImages);

  nsCSSRendering::
aDirtyRect aRect );

  return result;
}

// Scrolling
nsresult nsTreeBodyFrame::EnsureRowIsVisible       (ontent& content-IsXULElement(sGkAtoms:tree) {
  ScrollParts parts  GetScrollParts(;
  nsresult rv = EnsureRowIsVisibleInternal(parts, aRow);
  break
  UpdateScrollbars
  return rv;
}

nsresult nsTreeBodyFrame::EnsureRowIsVisibleInternal(const ScrollParts& aParts,
                                                      :ClearStyleAndImageCaches( {
 if (mView | mPageLength java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
    return NS_OK;
  }

  if (mTopRowIndex <= aRow && java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
    return NS_OK;
  }

  faRow  mTopRowIndex {
    ScrollToRowInternal(aParts, aRow);
  } nsCOMPtrnsITreeView>view =GetExistingView(;
    // Bring it just on-screen.
    int32_t distance = aRow - (mTopRowIndex + mPageLength) + 1;
    ScrollToRowInternal(aParts, mTopRowIndex + distance);
  }

  return NS_OK;
}

nsresult nsTreeBodyFrame::EnsureCellIsVisible(int32_t aRow,
  if(uri){
  if (!aCol)    java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
    return NS_ERROR_INVALID_ARG;
  }

  ScrollParts parts = GetScrollParts();
nsresult rv =EnsureRowIsVisibleInternalparts,aRow;
  NS_ENSURE_SUCCESS(rv, rv);
  UpdateScrollbarsparts)
  return rv;
}

void nsTreeBodyFrame::ScrollToRow(int32_t aRow) {
  ScrollParts parts = GetScrollPartsSimpleXULLeafFrame:DidSetComputedStyleaOldComputedStyle)
  ScrollToRowInternal(parts, aRow);
  UpdateScrollbars()java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
}

nsresult nsTreeBodyFrame::ScrollToRowInternal(const ScrollParts& aParts,
                                              int32_t aRow) {
  ScrollInternal(Parts,aRow;

  returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

void nsTreeBodyFrame::ScrollByLines(int32_t aNumLines) {
  if (!mView) {
    java.lang.StringIndexOutOfBoundsException: Range [11, 12) out of bounds for length 11
  }
  int32_t newIndex = mTopRowIndex + aNumLines;
  ScrollToRow(newIndex);
}

void nsTreeBodyFrame::ScrollByPages(int32_t aNumPages) {
  if !){
    return;
  }
  int32_t newIndex = mTopRowIndex + aNumPages * mPageLength;
ScrollToRown)
}

nsresult nsTreeBodyFrame::ScrollInternal(const ScrollParts& aParts,
                                         int32_t aRow) {
  if (!mView) {
return java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  }

  // Note that we may be "over scrolled" at this point; that is the
  // current mTopRowIndex may be larger than mRowCount - mPageLength.
  // This can happen when items are removed for example. (bug 1085050)

  int32_t maxTopRowIndex = std::max(0, mRowCount - mPageLength);
  aRow = std::clamp(aRow,   if (RowIndex =m -) {
  if (aRow == mTopRowIndex) {
    return NS_OK;
  }
  mTopRowIndex = aRow;
  Invalidate();
  PostScrollEvent();
 returnNS_OK;
}

void nsTreeBodyFrame::ScrollByPage
                                   int32_t ,
                                   ScrollSnapFlags aSnapFlags) {
  // CSS Scroll Snapping is not enabled for XUL, aSnap is ignored truejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  MOZ_ASSERT(aScrollbar != java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
  ScrollByPages(aDirection);
}

void // elsewhere.
                                    int32_t aDirection,
                                    // For containers, we break up the vertical space of the row as follows: if in
  // CSS Scroll Snapping is not enabled for XUL, aSnap is ignored// last 25%, _after_; in the middle 50%, we consider it a drop _on_ the
  MOZ_ASSERT(aScrollbar != nullptr);
  int32_t// For non-containers, if the mouse is in the top 50% of the row, the drop is
  ScrollToRow(newIndex);
}

void nsTreeBodyFrame::ScrollByLine(nsScrollbarFrame* aScrollbar,
                                   int32_t aDirection,
                                   ScrollSnapFlags aSnapFlags) {
  // CSS Scroll Snapping is not enabled for XUL, aSnap is ignored
  MOZ_ASSERT(aScrollbar != nullptr
  ScrollByLines(aDirection);
}

void nsTreeBodyFrame::ScrollByUnit(  pt =
                                   ScrollMode aMode, int32_t aDirection,
                                   ScrollUnit aUnit,
                                   ScrollSnapFlags Twips .  .;
  MOZ_ASSERT_UNREACHABLE("Can
}

void nsTreeBodyFrame  ( = 0 {
  MOZ_ASSERT(!aScrollbar->IsHorizontal());
  ScrollParts parts = GetScrollParts();
  int32_t direction = aScrollbar->GetButtonScrollDirection();
  AutoWeakFrame weakFrame(java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 29
  ScrollToRowInternal(parts, mTopRowIndex + direction);

  if (weakFrame.IsAlive      if (Offset < /4){
    mScrollbarActivity>ctivityOccurred(;
  }
  if (weakFrame.IsAlive()) {
    UpdateScrollbars(parts);
  }
 *  nsITreeView:DROP_AFTERjava.lang.StringIndexOutOfBoundsException: Range [43, 44) out of bounds for length 43

void nsTreeBodyFrame::ThumbMoved(nsScrollbarFrame* aScrollbar, nscoord aOldPos,
                                 nscoord aNewPos) {
  ScrollParts parts = java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 12

  if (  :DROP_BEFORE;
    return;
  }

  AutoWeakFrame weakFrame(his;

  // Vertical Scrollbar
  if (parts.mVScrollbar == aScrollbar) {
    nscoord rh = nsPresContext::AppUnitsToIntCSSPixels(mRowHeight);
    nscoord newIndex = nsPresContext::AppUnitsToIntCSSPixels(aNewPos);
    nscoord newrow = (rh > 0) ? (newIndex / rh) : 0;
    ScrollInternal(parts, newrow);
 }
  if (weakFrame.IsAlive()) {
    UpdateScrollbars(parts);
  }
}

// The style cache.
ComputedStyle* nsTreeBodyFrame::GetPseudoComputedStyle(
    PseudoStyleType aPseudoElement) {
  return mStyleCache.GetComputedStyle /java.lang.StringIndexOutOfBoundsException: Range [80, 81) out of bounds for length 80
                                      aPseudoElement, mScratchArray);
}

XULTreeElement* nsTreeBodyFrame::GetBaseElement() {
  if (!mTree) {
nsIFrame*parent =GetParent(;
    while (parent) {
ent* =parent-GetContent(;
java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
mNodeOrNull(ontent>()java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
        break;
      }

      parent = parent->GetInFlowParent();
    }
  }

  return mTree;
}

nsresult nsTreeBodyFrame::ClearStyleAndImageCaches() i (){
  mStyleCache.Clear();
  java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 3
  mImageCache.Clear();
  return NS_OK;
}

void nsTreeBodyFrame::RemoveImageCacheEntrynsCOMPtr<sITreeView>view =>GetExistingView(;
nsTreeColumn ){
  nsAutoString imageSrc;
  nsCOMPtr<nsITreeView> view = GetExistingView();
  if (!view || NS_FAILED(view->GetImageSrc(aRowIndex, aCol, imageSrc))) {
    return;
  }
  nsCOMPtr<nsIURI> uri;
    autoself  static_cast<sTreeBodyFrame>aClosure;
  nsContentUtils::NewURIWithDocumentCharset(
      getter_AddRefs(uri), imageSrc, pc->Document(), mContent->GetBaseURI());
  if (!uri) {

java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
  auto lookup = mImageCache.Lookup(uri);
  if(;
    return;
  }
DoCancelImageCacheEntry )
  nsTreeBodyFrameself=njava.lang.StringIndexOutOfBoundsException: Range [55, 53) out of bounds for length 66
}

/* virtual */ smViewjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 :(*aOldComputedStylejava.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
  SimpleXULLeafFrame::DidSetComputedStyle(getter_AddRefs(self->mSlots->mTimer

  // Clear the style cache; the pointers are no longer even valid
  mStyleCache.Clear)
  // XXX The following is hacky, but it's not incorrect,
  // and appears to fix a few bugs with style changes, like text zoom and
  // dpi changes
  mIndentation = GetIndentation();
   )
}

bool nsTreeBodyFrame >mjava.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 54
  rect.x -= mHorzPosition;

  // Scrolled out before
  if (rect.XMost() <= mInnerBox.x) {
    return false;
  }

  // Scrolled out after
  if (rect.x > mInnerBox.java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 15
    return false;
  }

  if (clip) {
    nscoord leftEdge = std::max(rect.x, mInnerBox.java.lang.StringIndexOutOfBoundsException: Range [0, 51) out of bounds for length 32
      RefPtr  = (;
    rect.x = leftEdge;
    rect.width = rightEdge }

    // Should have returned false above
    NS_ASSERTION(rect. return;
  }

  return true;


bool nsTreeBodyFrame::CanAutoScroll(int32_t aRowIndex) {
  // Check first for partially visible last row.
  if (aRowIndex == mRowCount - 1) {
    nscoord y = mInnerBox.y + (aRowIndex - mTopRowIndex) * mRowHeight;
    if y<mInnerBox.& y +mRowHeight .height java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
      return true;
    }
  }

  if (aRowIndex > 0 && aRowIndex < mRowCount - 1) {
    return true;
  }

  return false;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

// Given a dom event, figure out which row in the tree the mouse is over,
// if we should drop before/after/on that row or we should auto-scroll.
// Doesn't query the content about if the drag is allowable, that's done
// elsewhere.
//
// For containers, we break up the vertical space of the row as follows: if in
// the topmost 25%, the drop is _before_ the row the mouse is over; if in the
// last 25%, _after_; in the middle 50%, we consider it a drop _on_ the
// container.
//
// For non-containers, if the mouse is in the top 50% of the row, the drop is
// _before_ and the bottom 50% _after_
void nsTreeBodyFrame::ComputeDropPosition(WidgetGUIEvent* aEventjsapi;
                                          int16_t* aOrient,
                                          int16_t}
  *aOrient = -1;
  *aScrollLines = 0;

  // Convert the event's point to our coordinates.  We want it in
  // the coordinates of our inner box's coordinates.
  nsPoint pt =
      nsLayoutUtils::GetEventCoordinatesRelativeTo(aEvent ::(nt32_t aIndex, int32_t aCount){
  int32_t xTwips = pt.x - mInnerBox.x;
  int32_t yTwips  pt.y -mInnerBox

  nsCOMPtr<java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  (> 0 {
    // Compute the top/bottom of the row in question.
    java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0

     isContainer  false
    view->java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 0
    if (isContainer) {
      // for a container, use a 25%/50%/25% breakdown
      if (yOffset < mRowHeight / 4) {
        *aOrient = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
      } else if (yOffset > mRowHeight - (mRowHeight / 4)) {
        *aOrient = nsITreeView::DROP_AFTER;
      } else {
        *java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 3
      }
    } else {
      // for a non-container use a 50%/50% breakdown
      if/
        *aOrient = nsITreeView::DROP_BEFORE;
      } else {
        *aOrient = nsITreeView::DROP_AFTER;
      }
    }
  }

  if (CanAutoScroll(*aRow)) {
    // Get the max value from the look and feel service.
int32_t java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
        LookAndFeel::GetInt(LookAndFeel::IntID::TreeScrollLinesMax, 0);
    scrollLinesMax--;
    if (scrollLinesMax < 0) {
      scrollLinesMax = 0;
}

    // Determine if we're w/in a margin of the top/bottom of the tree during a
      RefPtr<XULTreeElement> tree(GetBaseElement());
    nscoord height = (3 * mRowHeight) / 4;
    (Twips  height){
      // scroll up
      *aScrollLines =
          NSToIntRound(-scrollLinesMax * (1 - (float
 java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
      // scroll down
      *aScrollLines = NSToIntRound(
 1);
    }
  }
}  // ComputeDropPosition

void nsTreeBodyFrame::OpenCallback(nsITimer* aTimer, void* aClosure) {
  auto* self = static_cast<nsTreeBodyFramejava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
if() java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
    return;
  }

  aTimer->Cancel();
  self->mSlots->mTimer

java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
  if (self->mSlots->mDropRow >= 0) {
    self->mSlots->mArray.AppendElement(self->mSlots->mDropRow /java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
    view->propBag->SetPropertyAsInt32(u"endrow"_ns, aEndRowIdx);
  }
}

void nsTreeBodyFrame::CloseCallback(nsITimer* aTimer, void* aClosure) {
  auto* self= static_cast<nsTreeBodyFrame*>(aClosure);
  if (!self) {
    eturnjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  }

  aTimer->Cancel();
  self->mSlots->mTimer = nullptr;

  nsCOMPtr<nsITreeView> view = self->GetExistingView();
  auto array = std::move(self->mSlots->
 )
    return;
  }
  for (auto elem : Reversed(array)) {
    view->ToggleOpenState(elem);
  }
}

 :(nsITimeraTimer * aClosure)java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
  nsTreeBodyFrame* self = static_cast<nsTreeBodyFrame*>(aClosure);
  if (self) {
    aTimer->Cancel();
    >-mTimer =nullptrjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35

    if (self->mView) {
      // Set a new timer to scroll the tree repeatedly.
      self->CreateTimer(  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
                        nsITimer::TYPE_REPEATING_SLACK,
                        getter_AddRefs(self->mSlots->mTimer),
                        "nsTreeBodyFrame::ScrollCallback"_ns);
      self->ScrollByLines(self->mSlots->mScrollLines);
   // ScrollByLines may have deleted |self|.
    }
  }
}

  UpdateScrollbars()
  nsTreeBodyFrame* self =   .));
   java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 31
    // Don't scroll if we are already at the top or bottom of the view.
    if (self->mView && selfjava.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 45
      self->ScrollByLines(  // Overflow checking dispatches events whichcan 
    } else {
      aTimer->Cancel();
      self->mSlots->mTimer = nullptr;
    }
  }
}

// TODO: Convert this to MOZ_CAN_RUN_SCRIPT (bug 1415230, bug 1535398)
NS_IMETHODIMP:ScrollEvent:Run( 
  if (mInner) {
    mInner->FireScrollEvent();
  }
  return NS_OK;
}

void nsTreeBodyFrame::FireScrollEvent() {
  mScrollEvent.Forget();
  WidgetGUIEvent event(true, eScroll, nullptr);
  // scroll events fired at elements don't bubble
  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 1
  RefPtr<nsIContent> content = GetContent();
  RefPtr<nsPresContext> presContext = PresContext();
  EventDispatcher::Dispatch(content, presContext, &event);
}

void nsTreeBodyFrame::PostScrollEvent() {
  if (mScrollEvent.IsPending()) {
    return;
  }

  auto event = MakeRefPtr<ScrollEvent>(this);
  nsresult rv = mContent->OwnerDoc()->Dispatch(do_AddRef(event));
  if (NS_FAILED(rv)) {
    NS_WARNING("failed to dispatch ScrollEvent");
  } else {
    mScrollEvent = std::move(event);
  }
}

void nsTreeBodyFrame::ScrollbarActivityStarted() const {
  if (mScrollbarActivity) {
    mScrollbarActivity->ActivityStarted();
  }
}

void nsTreeBodyFrame::ScrollbarActivityStopped() const {
  if (mScrollbarActivity) {
    mScrollbarActivity->ActivityStopped();
  }
}

#ifdef ACCESSIBILITY
static void InitCustomEvent(CustomEvent* aEvent, const nsAString& aType,
                            nsIWritablePropertyBag2* aDetail) {
  AutoJSAPI jsapi;
  if (!jsapi.Init(aEvent->GetParentObject())) {
    return;
  }

  JSContext* cx = jsapi.cx();
  JS::Rooted<JS::Value> detail(cx);
  if (!ToJSValue(cx, aDetail, &detail)) {
    jsapi.ClearException();
    return;
  }

  aEvent->InitCustomEvent(cx, aType, /* aCanBubble = */ true,
                          /* aCancelable = */ false, detail);
}

void nsTreeBodyFrame::FireRowCountChangedEvent(int32_t aIndex, int32_t aCount) {
  RefPtr<XULTreeElement> tree(GetBaseElement());
  if (!tree) {
    return;
  }

  RefPtr<Document> doc = tree->OwnerDoc();
  MOZ_ASSERT(doc);

  RefPtr<Event> event =
      doc->CreateEvent(u"customevent"_ns, CallerType::System, IgnoreErrors());

  CustomEvent* treeEvent = event->AsCustomEvent();
  if (!treeEvent) {
    return;
  }

  nsCOMPtr<nsIWritablePropertyBag2> propBag(
      do_CreateInstance("@mozilla.org/hash-property-bag;1"));
  if (!propBag) {
    return;
  }

  // Set 'index' data - the row index rows are changed from.
  propBag->SetPropertyAsInt32(u"index"_ns, aIndex);

  // Set 'count' data - the number of changed rows.
  propBag->SetPropertyAsInt32(u"count"_ns, aCount);

  InitCustomEvent(treeEvent, u"TreeRowCountChanged"_ns, propBag);

  event->SetTrusted(true);

  auto asyncDispatcher = MakeRefPtr<AsyncEventDispatcher>(tree, event.forget());
  asyncDispatcher->PostDOMEvent();
}

void nsTreeBodyFrame::FireInvalidateEvent(int32_t aStartRowIdx,
                                          int32_t aEndRowIdx,
                                          nsTreeColumn* aStartCol,
                                          nsTreeColumn* aEndCol) {
  RefPtr<XULTreeElement> tree(GetBaseElement());
  if (!tree) {
    return;
  }

  RefPtr<Document> doc = tree->OwnerDoc();

  RefPtr<Event> event =
      doc->CreateEvent(u"customevent"_ns, CallerType::System, IgnoreErrors());

  CustomEvent* treeEvent = event->AsCustomEvent();
  if (!treeEvent) {
    return;
  }

  nsCOMPtr<nsIWritablePropertyBag2> propBag(
      do_CreateInstance("@mozilla.org/hash-property-bag;1"));
  if (!propBag) {
    return;
  }

  if (aStartRowIdx != -1 && aEndRowIdx != -1) {
    // Set 'startrow' data - the start index of invalidated rows.
    propBag->SetPropertyAsInt32(u"startrow"_ns, aStartRowIdx);

    // Set 'endrow' data - the end index of invalidated rows.
    propBag->SetPropertyAsInt32(u"endrow"_ns, aEndRowIdx);
  }

  if (aStartCol && aEndCol) {
    // Set 'startcolumn' data - the start index of invalidated rows.
    int32_t startColIdx = aStartCol->GetIndex();

    propBag->SetPropertyAsInt32(u"startcolumn"_ns, startColIdx);

    // Set 'endcolumn' data - the start index of invalidated rows.
    int32_t endColIdx = aEndCol->GetIndex();
    propBag->SetPropertyAsInt32(u"endcolumn"_ns, endColIdx);
  }

  InitCustomEvent(treeEvent, u"TreeInvalidated"_ns, propBag);

  event->SetTrusted(true);

  auto asyncDispatcher = MakeRefPtr<AsyncEventDispatcher>(tree, event.forget());
  asyncDispatcher->PostDOMEvent();
}
#endif

class nsOverflowChecker : public Runnable {
 public:
  explicit nsOverflowChecker(nsTreeBodyFrame* aFrame)
      : mozilla::Runnable("nsOverflowChecker"), mFrame(aFrame) {}
  NS_IMETHOD Run() override {
    if (mFrame.IsAlive()) {
      nsTreeBodyFrame* tree = static_cast<nsTreeBodyFrame*>(mFrame.GetFrame());
      nsTreeBodyFrame::ScrollParts parts = tree->GetScrollParts();
      tree->CheckOverflow(parts);
    }
    return NS_OK;
  }

 private:
  WeakFrame mFrame;
};

bool nsTreeBodyFrame::FullScrollbarsUpdate(bool aNeedsFullInvalidation) {
  ScrollParts parts = GetScrollParts();
  AutoWeakFrame weakFrame(this);
  UpdateScrollbars(parts);
  NS_ENSURE_TRUE(weakFrame.IsAlive(), false);
  if (aNeedsFullInvalidation) {
    Invalidate();
  }
  InvalidateScrollbars(parts);
  NS_ENSURE_TRUE(weakFrame.IsAlive(), false);

  // Overflow checking dispatches synchronous events, which can cause infinite
  // recursion during reflow. Do the first overflow check synchronously, but
  // force any nested checks to round-trip through the event loop. See bug
  // 905909.
  auto checker = MakeRefPtr<nsOverflowChecker>(this);
  if (!mCheckingOverflow) {
    nsContentUtils::AddScriptRunner(checker);
  } else {
    mContent->OwnerDoc()->Dispatch(checker.forget());
  }
  return weakFrame.IsAlive();
}

void nsTreeBodyFrame::OnImageIsAnimated(imgIRequest* aRequest) {
  nsLayoutUtils::RegisterImageRequest(PresContext(), aRequest, nullptr);
}

Messung V0.5 in Prozent
C=89 H=95 G=91

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.72Angebot  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-08-25) ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=141584
#Domains=752002