# Global Metrics

path: .metrics.halstead.N1
old: 476.0
new: 88.0
path: .metrics.halstead.N2
old: 381.0
new: 91.0
path: .metrics.halstead.time
old: 4330.709505440794
new: 668.175978554633
path: .metrics.halstead.length
old: 857.0
new: 179.0
path: .metrics.halstead.volume
old: 6581.314445276167
new: 1057.3334166139248
path: .metrics.halstead.estimated_program_length
old: 1508.3637582013937
new: 311.0977500432694
path: .metrics.halstead.n2
old: 193.0
new: 48.0
path: .metrics.halstead.bugs
old: 0.6082747433190014
new: 0.17497969462155924
path: .metrics.halstead.purity_ratio
old: 1.7600510597449166
new: 1.7379762572249686
path: .metrics.halstead.effort
old: 77952.77109793428
new: 12027.167613983394
path: .metrics.halstead.difficulty
old: 11.844559585492227
new: 11.375
path: .metrics.halstead.level
old: 0.08442694663167105
new: 0.08791208791208792
path: .metrics.halstead.vocabulary
old: 205.0
new: 60.0
path: .metrics.mi.mi_sei
old: -2.3146142058151327
new: 44.69091877324397
path: .metrics.mi.mi_original
old: 16.64403236720139
new: 66.0358661107462
path: .metrics.mi.mi_visual_studio
old: 9.73335226152128
new: 38.617465561839886
path: .metrics.loc.blank
old: 43.0
new: 14.0
path: .metrics.loc.cloc
old: 416.0
new: 7.0
path: .metrics.loc.sloc
old: 633.0
new: 64.0
path: .metrics.loc.ploc
old: 174.0
new: 43.0
path: .metrics.nexits.average
old: null
new: 0.0
path: .metrics.cyclomatic.sum
old: 18.0
new: 6.0
path: .metrics.cognitive.average
old: null
new: 0.0
path: .metrics.nom.functions
old: 0.0
new: 2.0
path: .metrics.nom.total
old: 0.0
new: 2.0
path: .metrics.nargs.average
old: null
new: 0.0

# Spaces Data

## Minimal test - lines (12, 62)

path: .spaces[0].metrics.nom.total
old: 0.0
new: 2.0
path: .spaces[0].metrics.nom.functions
old: 0.0
new: 2.0
path: .spaces[0].metrics.loc.ploc
old: 1.0
new: 38.0
path: .spaces[0].metrics.loc.blank
old: 0.0
new: 12.0
path: .spaces[0].metrics.loc.cloc
old: 0.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 1.0
new: 51.0
path: .spaces[0].metrics.nexits.average
old: null
new: 0.0
path: .spaces[0].metrics.mi.mi_sei
old: null
new: 36.74216721624234
path: .spaces[0].metrics.mi.mi_visual_studio
old: null
new: 41.01010070648837
path: .spaces[0].metrics.mi.mi_original
old: null
new: 70.12727220809512
path: .spaces[0].metrics.halstead.N2
old: 1.0
new: 87.0
path: .spaces[0].metrics.halstead.bugs
old: 0.0
new: 0.17316706472286428
path: .spaces[0].metrics.halstead.effort
old: 0.0
new: 11840.766728754425
path: .spaces[0].metrics.halstead.difficulty
old: 0.0
new: 11.6
path: .spaces[0].metrics.halstead.estimated_program_length
old: null
new: 290.1529393434892
path: .spaces[0].metrics.halstead.length
old: 1.0
new: 175.0
path: .spaces[0].metrics.halstead.purity_ratio
old: null
new: 1.6580167962485095
path: .spaces[0].metrics.halstead.volume
old: 0.0
new: 1020.7557524788298
path: .spaces[0].metrics.halstead.level
old: null
new: 0.08620689655172414
path: .spaces[0].metrics.halstead.N1
old: 0.0
new: 88.0
path: .spaces[0].metrics.halstead.time
old: 0.0
new: 657.8203738196903
path: .spaces[0].metrics.halstead.vocabulary
old: 1.0
new: 57.0
path: .spaces[0].metrics.halstead.n2
old: 1.0
new: 45.0
path: .spaces[0].metrics.halstead.n1
old: 0.0
new: 12.0
path: .spaces[0].metrics.cognitive.average
old: null
new: 0.0
path: .spaces[0].metrics.nargs.average
old: null
new: 0.0
path: .spaces[0].metrics.cyclomatic.sum
old: 1.0
new: 5.0

### Code

    namespace mozilla {
    namespace widget {

    class HeadlessThemeGTK final : private nsNativeTheme, public nsITheme {
     public:
      NS_DECL_ISUPPORTS_INHERITED

      HeadlessThemeGTK() = default;
      NS_IMETHOD DrawWidgetBackground(gfxContext* aContext, nsIFrame* aFrame,
                                      StyleAppearance aAppearance,
                                      const nsRect& aRect,
                                      const nsRect& aDirtyRect) override;

      [[nodiscard]] LayoutDeviceIntMargin GetWidgetBorder(
          nsDeviceContext* aContext, nsIFrame* aFrame,
          StyleAppearance aAppearance) override;

      bool GetWidgetPadding(nsDeviceContext* aContext, nsIFrame* aFrame,
                            StyleAppearance aAppearance,
                            LayoutDeviceIntMargin* aResult) override;
      NS_IMETHOD GetMinimumWidgetSize(nsPresContext* aPresContext, nsIFrame* aFrame,
                                      StyleAppearance aAppearance,
                                      mozilla::LayoutDeviceIntSize* aResult,
                                      bool* aIsOverridable) override;

      NS_IMETHOD WidgetStateChanged(nsIFrame* aFrame, StyleAppearance aAppearance,
                                    nsAtom* aAttribute, bool* aShouldRepaint,
                                    const nsAttrValue* aOldValue) override;

      NS_IMETHOD ThemeChanged() override;

      NS_IMETHOD_(bool)
      ThemeSupportsWidget(nsPresContext* aPresContext, nsIFrame* aFrame,
                          StyleAppearance aAppearance) override;

      NS_IMETHOD_(bool) WidgetIsContainer(StyleAppearance aAppearance) override;

      NS_IMETHOD_(bool)
      ThemeDrawsFocusForWidget(StyleAppearance aAppearance) override;

      bool ThemeNeedsComboboxDropmarker() override;

      ScrollbarSizes GetScrollbarSizes(nsPresContext*, StyleScrollbarWidth,
                                       Overlay) override;

     protected:
      virtual ~HeadlessThemeGTK() = default;
    };

    }  // namespace widget
    }  // namespace mozilla