Global Metrics
path: .metrics.cognitive.sum
old: 91.0
new: 0.0
path: .metrics.cognitive.average
old: 3.64
new: 0.0
path: .metrics.halstead.estimated_program_length
old: 1276.1917173531906
new: 1082.4649600934374
path: .metrics.halstead.purity_ratio
old: 0.7641866570977189
new: 2.1059629573802283
path: .metrics.halstead.effort
old: 1201300.7078134082
new: 48239.42882611587
path: .metrics.halstead.volume
old: 12616.163382301656
new: 3754.143304563031
path: .metrics.halstead.N2
old: 662.0
new: 245.0
path: .metrics.halstead.n2
old: 146.0
new: 143.0
path: .metrics.halstead.N1
old: 1008.0
new: 269.0
path: .metrics.halstead.difficulty
old: 95.21917808219176
new: 12.84965034965035
path: .metrics.halstead.length
old: 1670.0
new: 514.0
path: .metrics.halstead.time
old: 66738.92821185601
new: 2679.9682681175486
path: .metrics.halstead.n1
old: 42.0
new: 15.0
path: .metrics.halstead.vocabulary
old: 188.0
new: 158.0
path: .metrics.halstead.bugs
old: 3.766863653078023
new: 0.441719782763855
path: .metrics.halstead.level
old: 0.010502086030786938
new: 0.07782312925170068
path: .metrics.nexits.average
old: 1.52
new: 1.0
path: .metrics.nexits.sum
old: 38.0
new: 1.0
path: .metrics.loc.blank
old: 34.0
new: 33.0
path: .metrics.loc.lloc
old: 153.0
new: 1.0
path: .metrics.loc.sloc
old: 473.0
new: 210.0
path: .metrics.loc.ploc
old: 343.0
new: 122.0
path: .metrics.loc.cloc
old: 96.0
new: 55.0
path: .metrics.cyclomatic.sum
old: 96.0
new: 10.0
path: .metrics.cyclomatic.average
old: 3.310344827586207
new: 1.1111111111111112
path: .metrics.nargs.average
old: 1.28
new: 0.0
path: .metrics.nargs.sum
old: 32.0
new: 0.0
path: .metrics.mi.mi_original
old: 0.04043749582102407
new: 39.27765797308096
path: .metrics.mi.mi_sei
old: -33.73622612105692
new: 17.599967738535597
path: .metrics.mi.mi_visual_studio
old: 0.02364765837486788
new: 22.96939062753273
path: .metrics.nom.total
old: 25.0
new: 1.0
path: .metrics.nom.functions
old: 25.0
new: 1.0
Spaces Data
Minimal test - lines (29, 208)
path: .spaces[4].metrics.cyclomatic.sum
old: 8.0
new: 3.0
path: .spaces[4].metrics.cyclomatic.average
old: 8.0
new: 1.5
path: .spaces[4].metrics.mi.mi_sei
old: 69.77643225229079
new: 22.492196207925915
path: .spaces[4].metrics.mi.mi_original
old: 76.88673571733578
new: 43.61018324412131
path: .spaces[4].metrics.mi.mi_visual_studio
old: 44.963003343471215
new: 25.50303113691305
path: .spaces[4].metrics.nargs.average
old: 1.0
new: 0.0
path: .spaces[4].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[4].metrics.cognitive.sum
old: 9.0
new: 0.0
path: .spaces[4].metrics.cognitive.average
old: 9.0
new: 0.0
path: .spaces[4].metrics.loc.lloc
old: 18.0
new: 1.0
path: .spaces[4].metrics.loc.sloc
old: 35.0
new: 180.0
path: .spaces[4].metrics.loc.cloc
old: 8.0
new: 45.0
path: .spaces[4].metrics.loc.ploc
old: 29.0
new: 107.0
path: .spaces[4].metrics.loc.blank
old: 0.0
new: 28.0
path: .spaces[4].metrics.nexits.sum
old: 5.0
new: 1.0
path: .spaces[4].metrics.nexits.average
old: 5.0
new: 1.0
path: .spaces[4].metrics.halstead.volume
old: 787.2783437256991
new: 3594.9720466680183
path: .spaces[4].metrics.halstead.difficulty
old: 18.36
new: 12.81021897810219
path: .spaces[4].metrics.halstead.vocabulary
old: 42.0
new: 152.0
path: .spaces[4].metrics.halstead.N1
old: 92.0
new: 262.0
path: .spaces[4].metrics.halstead.purity_ratio
old: 1.2711183085316704
new: 2.0786970852816933
path: .spaces[4].metrics.halstead.bugs
old: 0.19779382691691064
new: 0.42826586432241176
path: .spaces[4].metrics.halstead.length
old: 146.0
new: 496.0
path: .spaces[4].metrics.halstead.n2
old: 25.0
new: 137.0
path: .spaces[4].metrics.halstead.estimated_program_length
old: 185.58327304562388
new: 1031.03375429972
path: .spaces[4].metrics.halstead.N2
old: 54.0
new: 234.0
path: .spaces[4].metrics.halstead.effort
old: 14454.430390803836
new: 46052.37913797352
path: .spaces[4].metrics.halstead.n1
old: 17.0
new: 15.0
path: .spaces[4].metrics.halstead.time
old: 803.0239106002131
new: 2558.4655076651957
path: .spaces[4].metrics.halstead.level
old: 0.054466230936819175
new: 0.07806267806267805
Code
class nsDragService final : public nsBaseDragService, public nsIObserver {
public:
nsDragService();
NS_DECL_ISUPPORTS_INHERITED
NS_DECL_NSIOBSERVER
// nsBaseDragService
MOZ_CAN_RUN_SCRIPT virtual nsresult InvokeDragSessionImpl(
nsIArray* anArrayTransferables,
const mozilla::Maybe& aRegion,
uint32_t aActionType) override;
// nsIDragService
MOZ_CAN_RUN_SCRIPT NS_IMETHOD InvokeDragSession(
nsINode* aDOMNode, nsIPrincipal* aPrincipal,
nsIContentSecurityPolicy* aCsp, nsICookieJarSettings* aCookieJarSettings,
nsIArray* anArrayTransferables, uint32_t aActionType,
nsContentPolicyType aContentPolicyType) override;
NS_IMETHOD StartDragSession() override;
MOZ_CAN_RUN_SCRIPT NS_IMETHOD EndDragSession(bool aDoneDrag,
uint32_t aKeyModifiers) override;
// nsIDragSession
NS_IMETHOD SetCanDrop(bool aCanDrop) override;
NS_IMETHOD GetCanDrop(bool* aCanDrop) override;
NS_IMETHOD GetNumDropItems(uint32_t* aNumItems) override;
NS_IMETHOD GetData(nsITransferable* aTransferable,
uint32_t aItemIndex) override;
NS_IMETHOD IsDataFlavorSupported(const char* aDataFlavor,
bool* _retval) override;
NS_IMETHOD UpdateDragEffect() override;
// Methods called from nsWindow to handle responding to GTK drag
// destination signals
static already_AddRefed GetInstance();
void TargetDataReceived(GtkWidget* aWidget, GdkDragContext* aContext, gint aX,
gint aY, GtkSelectionData* aSelection_data,
guint aInfo, guint32 aTime);
gboolean ScheduleMotionEvent(nsWindow* aWindow, GdkDragContext* aDragContext,
nsWaylandDragContext* aPendingWaylandDragContext,
mozilla::LayoutDeviceIntPoint aWindowPoint,
guint aTime);
void ScheduleLeaveEvent();
gboolean ScheduleDropEvent(nsWindow* aWindow, GdkDragContext* aDragContext,
nsWaylandDragContext* aPendingWaylandDragContext,
mozilla::LayoutDeviceIntPoint aWindowPoint,
guint aTime);
nsWindow* GetMostRecentDestWindow() {
return mScheduledTask == eDragTaskNone ? mTargetWindow : mPendingWindow;
}
// END PUBLIC API
// These methods are public only so that they can be called from functions
// with C calling conventions. They are called for drags started with the
// invisible widget.
void SourceEndDragSession(GdkDragContext* aContext, gint aResult);
void SourceDataGet(GtkWidget* widget, GdkDragContext* context,
GtkSelectionData* selection_data, guint32 aTime);
void SourceBeginDrag(GdkDragContext* aContext);
// set the drag icon during drag-begin
void SetDragIcon(GdkDragContext* aContext);
protected:
virtual ~nsDragService();
private:
// mScheduledTask indicates what signal has been received from GTK and
// so what needs to be dispatched when the scheduled task is run. It is
// eDragTaskNone when there is no task scheduled (but the
// previous task may still not have finished running).
enum DragTask {
eDragTaskNone,
eDragTaskMotion,
eDragTaskLeave,
eDragTaskDrop,
eDragTaskSourceEnd
};
DragTask mScheduledTask;
// mTaskSource is the GSource id for the task that is either scheduled
// or currently running. It is 0 if no task is scheduled or running.
guint mTaskSource;
// target/destination side vars
// These variables keep track of the state of the current drag.
// mPendingWindow, mPendingWindowPoint, mPendingDragContext, and
// mPendingTime, carry information from the GTK signal that will be used
// when the scheduled task is run. mPendingWindow and mPendingDragContext
// will be nullptr if the scheduled task is eDragTaskLeave.
RefPtr mPendingWindow;
mozilla::LayoutDeviceIntPoint mPendingWindowPoint;
RefPtr mPendingDragContext;
// We cache all data for the current drag context,
// because waiting for the data in GetTargetDragData can be very slow.
nsTHashMap> mCachedData;
#ifdef MOZ_WAYLAND
RefPtr mPendingWaylandDragContext;
#endif
guint mPendingTime;
// mTargetWindow and mTargetWindowPoint record the position of the last
// eDragTaskMotion or eDragTaskDrop task that was run or is still running.
// mTargetWindow is cleared once the drag has completed or left.
RefPtr mTargetWindow;
mozilla::LayoutDeviceIntPoint mTargetWindowPoint;
// mTargetWidget and mTargetDragContext are set only while dispatching
// motion or drop events. mTime records the corresponding timestamp.
RefPtr mTargetWidget;
RefPtr mTargetDragContext;
#ifdef MOZ_WAYLAND
RefPtr mTargetWaylandDragContext;
#endif
// mTargetDragContextForRemote is set while waiting for a reply from
// a child process.
RefPtr mTargetDragContextForRemote;
#ifdef MOZ_WAYLAND
RefPtr mTargetWaylandDragContextForRemote;
#endif
guint mTargetTime;
// is it OK to drop on us?
bool mCanDrop;
// have we received our drag data?
bool mTargetDragDataReceived;
// last data received and its length
void* mTargetDragData;
uint32_t mTargetDragDataLen;
// is the current target drag context contain a list?
bool IsTargetContextList(void);
// this will get the native data from the last target given a
// specific flavor
void GetTargetDragData(GdkAtom aFlavor);
// this will reset all of the target vars
void TargetResetData(void);
// source side vars
// the source of our drags
GtkWidget* mHiddenWidget;
// our source data items
nsCOMPtr mSourceDataItems;
// get a list of the sources in gtk's format
GtkTargetList* GetSourceList(void);
// attempts to create a semi-transparent drag image. Returns TRUE if
// successful, FALSE if not
bool SetAlphaPixmap(SourceSurface* aPixbuf, GdkDragContext* aContext,
int32_t aXOffset, int32_t aYOffset,
const mozilla::LayoutDeviceIntRect& dragRect);
gboolean Schedule(DragTask aTask, nsWindow* aWindow,
GdkDragContext* aDragContext,
nsWaylandDragContext* aPendingWaylandDragContext,
mozilla::LayoutDeviceIntPoint aWindowPoint, guint aTime);
// Callback for g_idle_add_full() to run mScheduledTask.
MOZ_CAN_RUN_SCRIPT static gboolean TaskDispatchCallback(gpointer data);
MOZ_CAN_RUN_SCRIPT gboolean RunScheduledTask();
void UpdateDragAction();
MOZ_CAN_RUN_SCRIPT void DispatchMotionEvents();
void ReplyToDragMotion(GdkDragContext* aDragContext);
#ifdef MOZ_WAYLAND
void ReplyToDragMotion(nsWaylandDragContext* aDragContext);
#endif
gboolean DispatchDropEvent();
static uint32_t GetCurrentModifiers();
};
Minimal test - lines (17, 17)
path: .spaces[2].metrics.loc.blank
old: 2.0
new: 0.0
path: .spaces[2].metrics.loc.lloc
old: 3.0
new: 0.0
path: .spaces[2].metrics.loc.ploc
old: 11.0
new: 1.0
path: .spaces[2].metrics.loc.sloc
old: 13.0
new: 1.0
path: .spaces[2].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[2].metrics.nexits.average
old: 1.0
new: null
path: .spaces[2].metrics.nexits.sum
old: 3.0
new: 0.0
path: .spaces[2].metrics.cyclomatic.sum
old: 4.0
new: 1.0
path: .spaces[2].metrics.mi.mi_original
old: 97.90030724792854
new: null
path: .spaces[2].metrics.mi.mi_visual_studio
old: 57.25164166545529
new: null
path: .spaces[2].metrics.mi.mi_sei
old: 65.94671521369742
new: null
path: .spaces[2].metrics.nom.functions
old: 3.0
new: 0.0
path: .spaces[2].metrics.nom.total
old: 3.0
new: 0.0
path: .spaces[2].metrics.nargs.sum
old: 5.0
new: 0.0
path: .spaces[2].metrics.nargs.average
old: 1.6666666666666667
new: null
path: .spaces[2].metrics.halstead.purity_ratio
old: 1.342812471118556
new: null
path: .spaces[2].metrics.halstead.length
old: 76.0
new: 1.0
path: .spaces[2].metrics.halstead.estimated_program_length
old: 102.05374780501026
new: null
path: .spaces[2].metrics.halstead.n2
old: 16.0
new: 1.0
path: .spaces[2].metrics.halstead.volume
old: 361.3714501644236
new: 0.0
path: .spaces[2].metrics.halstead.N1
old: 48.0
new: 0.0
path: .spaces[2].metrics.halstead.N2
old: 28.0
new: 1.0
path: .spaces[2].metrics.halstead.vocabulary
old: 27.0
new: 1.0
path: .spaces[2].metrics.halstead.difficulty
old: 9.625
new: 0.0
path: .spaces[2].metrics.halstead.effort
old: 3478.2002078325772
new: 0.0
path: .spaces[2].metrics.halstead.time
old: 193.23334487958763
new: 0.0
path: .spaces[2].metrics.halstead.n1
old: 11.0
new: 0.0
path: .spaces[2].metrics.halstead.bugs
old: 0.07652120430502991
new: 0.0
path: .spaces[2].metrics.halstead.level
old: 0.1038961038961039
new: null
Code
class nsWaylandDragContext;
Minimal test - lines (16, 16)
path: .spaces[1].metrics.halstead.bugs
old: 0.007400380157174523
new: 0.0
path: .spaces[1].metrics.halstead.purity_ratio
old: 1.842242046044582
new: null
path: .spaces[1].metrics.halstead.n2
old: 3.0
new: 1.0
path: .spaces[1].metrics.halstead.estimated_program_length
old: 20.264662506490403
new: null
path: .spaces[1].metrics.halstead.N1
old: 8.0
new: 0.0
path: .spaces[1].metrics.halstead.difficulty
old: 3.0
new: 0.0
path: .spaces[1].metrics.halstead.length
old: 11.0
new: 1.0
path: .spaces[1].metrics.halstead.n1
old: 6.0
new: 0.0
path: .spaces[1].metrics.halstead.vocabulary
old: 9.0
new: 1.0
path: .spaces[1].metrics.halstead.level
old: 0.3333333333333333
new: null
path: .spaces[1].metrics.halstead.time
old: 5.811529169310906
new: 0.0
path: .spaces[1].metrics.halstead.effort
old: 104.60752504759633
new: 0.0
path: .spaces[1].metrics.halstead.volume
old: 34.86917501586544
new: 0.0
path: .spaces[1].metrics.halstead.N2
old: 3.0
new: 1.0
path: .spaces[1].metrics.nargs.average
old: 0.0
new: null
path: .spaces[1].metrics.loc.ploc
old: 5.0
new: 1.0
path: .spaces[1].metrics.loc.lloc
old: 2.0
new: 0.0
path: .spaces[1].metrics.loc.sloc
old: 5.0
new: 1.0
path: .spaces[1].metrics.nexits.average
old: 0.0
new: null
path: .spaces[1].metrics.cognitive.average
old: 0.0
new: null
path: .spaces[1].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[1].metrics.nom.total
old: 1.0
new: 0.0
path: .spaces[1].metrics.mi.mi_original
old: 126.22876917047284
new: null
path: .spaces[1].metrics.mi.mi_visual_studio
old: 73.81799366694318
new: null
path: .spaces[1].metrics.mi.mi_sei
old: 106.5105871671506
new: null
Code
class nsWindow;
Minimal test - lines (15, 15)
path: .spaces[0].metrics.nexits.average
old: 0.0
new: null
path: .spaces[0].metrics.loc.lloc
old: 1.0
new: 0.0
path: .spaces[0].metrics.loc.ploc
old: 5.0
new: 1.0
path: .spaces[0].metrics.loc.sloc
old: 5.0
new: 1.0
path: .spaces[0].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[0].metrics.nom.total
old: 1.0
new: 0.0
path: .spaces[0].metrics.nargs.average
old: 1.0
new: null
path: .spaces[0].metrics.nargs.sum
old: 1.0
new: 0.0
path: .spaces[0].metrics.halstead.length
old: 35.0
new: 1.0
path: .spaces[0].metrics.halstead.bugs
old: 0.03488166209605841
new: 0.0
path: .spaces[0].metrics.halstead.vocabulary
old: 19.0
new: 1.0
path: .spaces[0].metrics.halstead.estimated_program_length
old: 61.74860596185444
new: null
path: .spaces[0].metrics.halstead.time
old: 59.47098518821019
new: 0.0
path: .spaces[0].metrics.halstead.volume
old: 148.67746297052548
new: 0.0
path: .spaces[0].metrics.halstead.purity_ratio
old: 1.7642458846244125
new: null
path: .spaces[0].metrics.halstead.n1
old: 9.0
new: 0.0
path: .spaces[0].metrics.halstead.n2
old: 10.0
new: 1.0
path: .spaces[0].metrics.halstead.N2
old: 16.0
new: 1.0
path: .spaces[0].metrics.halstead.effort
old: 1070.4777333877837
new: 0.0
path: .spaces[0].metrics.halstead.difficulty
old: 7.2
new: 0.0
path: .spaces[0].metrics.halstead.N1
old: 19.0
new: 0.0
path: .spaces[0].metrics.halstead.level
old: 0.1388888888888889
new: null
path: .spaces[0].metrics.mi.mi_visual_studio
old: 69.40810149373284
new: null
path: .spaces[0].metrics.mi.mi_original
old: 118.68785355428317
new: null
path: .spaces[0].metrics.mi.mi_sei
old: 95.63134560391156
new: null
path: .spaces[0].metrics.cognitive.average
old: 0.0
new: null
Code
class nsICookieJarSettings;
Minimal test - lines (19, 23)
path: .spaces[3].metrics.cyclomatic.sum
old: 5.0
new: 3.0
path: .spaces[3].metrics.cyclomatic.average
old: 5.0
new: 1.0
path: .spaces[3].metrics.nargs.average
old: 0.0
new: null
path: .spaces[3].metrics.mi.mi_sei
old: 96.08109350431778
new: 112.93327872124344
path: .spaces[3].metrics.mi.mi_visual_studio
old: 56.480289606364686
new: 76.33888152974038
path: .spaces[3].metrics.mi.mi_original
old: 96.5812952268836
new: 130.53948741585606
path: .spaces[3].metrics.nexits.sum
old: 2.0
new: 0.0
path: .spaces[3].metrics.nexits.average
old: 2.0
new: null
path: .spaces[3].metrics.loc.sloc
old: 15.0
new: 5.0
path: .spaces[3].metrics.loc.cloc
old: 3.0
new: 0.0
path: .spaces[3].metrics.loc.lloc
old: 6.0
new: 0.0
path: .spaces[3].metrics.loc.ploc
old: 12.0
new: 5.0
path: .spaces[3].metrics.cognitive.sum
old: 4.0
new: 0.0
path: .spaces[3].metrics.cognitive.average
old: 4.0
new: null
path: .spaces[3].metrics.halstead.volume
old: 285.2932501298081
new: 13.931568569324174
path: .spaces[3].metrics.halstead.N1
old: 38.0
new: 3.0
path: .spaces[3].metrics.halstead.estimated_program_length
old: 101.40868524464064
new: 6.754887502163468
path: .spaces[3].metrics.halstead.purity_ratio
old: 1.6901447540773442
new: 1.1258145836939113
path: .spaces[3].metrics.halstead.vocabulary
old: 27.0
new: 5.0
path: .spaces[3].metrics.halstead.N2
old: 22.0
new: 3.0
path: .spaces[3].metrics.halstead.effort
old: 3379.6277323069576
new: 13.931568569324174
path: .spaces[3].metrics.halstead.difficulty
old: 11.846153846153848
new: 1.0
path: .spaces[3].metrics.halstead.n1
old: 14.0
new: 2.0
path: .spaces[3].metrics.halstead.time
old: 187.75709623927543
new: 0.7739760316291208
path: .spaces[3].metrics.halstead.bugs
old: 0.07506854333889365
new: 0.0019299471801733172
path: .spaces[3].metrics.halstead.length
old: 60.0
new: 6.0
path: .spaces[3].metrics.halstead.n2
old: 13.0
new: 3.0
path: .spaces[3].metrics.halstead.level
old: 0.08441558441558442
new: 1.0
path: .spaces[3].metrics.nom.functions
old: 1.0
new: 0.0
path: .spaces[3].metrics.nom.total
old: 1.0
new: 0.0
Code
namespace mozilla {
namespace gfx {
class SourceSurface;
}
} // namespace mozilla