https://github.com/mozilla/gecko-dev
- HEAD
- refs/heads/FIREFOX_ESR_115_0_X_RELBRANCH
- refs/heads/FIREFOX_ESR_115_2_X_RELBRANCH
- refs/heads/FIREFOX_ESR_115_3_X_RELBRANCH
- refs/heads/FIREFOX_ESR_115_9_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_0_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_10_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_1_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_2_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_4_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_6_X_RELBRANCH
- refs/heads/FIREFOX_ESR_68_8_X_RELBRANCH
- refs/heads/FIREFOX_ESR_78_0_X_RELBRANCH
- refs/heads/FIREFOX_ESR_78_10_X_RELBRANCH
- refs/heads/FIREFOX_ESR_78_3_X_RELBRANCH
- refs/heads/FIREFOX_ESR_78_4_X_RELBRANCH
- refs/heads/FIREFOX_ESR_78_6_X_RELBRANCH
- refs/heads/FIREFOX_ESR_78_7_X_RELBRANCH
- refs/heads/FIREFOX_ESR_91_0_X_RELBRANCH
- refs/heads/FIREFOX_ESR_91_4_X_RELBRANCH
- refs/heads/FIREFOX_ESR_91_5_X_RELBRANCH
- refs/heads/FIREFOX_ESR_91_6_X_RELBRANCH
- refs/heads/FIREFOX_ESR_91_7_X_RELBRANCH
- refs/heads/FIREFOX_ESR_91_9_X_RELBRANCH
- refs/heads/GECKO1001_2012020805_RELBRANCH
- refs/heads/GECKO1002_2012021522_RELBRANCH
- refs/heads/GECKO100_2011122113_RELBRANCH
- refs/heads/GECKO100_2011122805_RELBRANCH
- refs/heads/GECKO100_2012010318_RELBRANCH
- refs/heads/GECKO100_2012010410_RELBRANCH
- refs/heads/GECKO100_2012011108_RELBRANCH
- refs/heads/GECKO100_2012011807_RELBRANCH
- refs/heads/GECKO100_2012012323_RELBRANCH
- refs/heads/GECKO100_2012012901_RELBRANCH
- refs/heads/GECKO110_2012020115_RELBRANCH
- refs/heads/GECKO110_2012020801_RELBRANCH
- refs/heads/GECKO110_2012021420_RELBRANCH
- refs/heads/GECKO110_2012021522_RELBRANCH
- refs/heads/GECKO110_2012022207_RELBRANCH
- refs/heads/GECKO110_2012022820_RELBRANCH
- refs/heads/GECKO110_2012030517_RELBRANCH
- refs/heads/GECKO110_2012030815_RELBRANCH
- refs/heads/GECKO110_2012030912_RELBRANCH
- refs/heads/GECKO110_2012031017_RELBRANCH
- refs/heads/GECKO110_2012031218_RELBRANCH
- refs/heads/GECKO120_2012031407_RELBRANCH
- refs/heads/GECKO120_2012031419_RELBRANCH
- refs/heads/GECKO120_2012032021_RELBRANCH
- refs/heads/GECKO120_2012032804_RELBRANCH
- refs/heads/GECKO120_2012040320_RELBRANCH
- refs/heads/GECKO120_2012041106_RELBRANCH
- refs/heads/GECKO120_2012041716_RELBRANCH
- refs/heads/GECKO120_2012042014_RELBRANCH
- refs/heads/GECKO1301_2012061411_RELBRANCH
- refs/heads/GECKO1302_2012062310_RELBRANCH
- refs/heads/GECKO130_2012042512_RELBRANCH
- refs/heads/GECKO130_2012050119_RELBRANCH
- refs/heads/GECKO130_2012050817_RELBRANCH
- refs/heads/GECKO130_2012051611_RELBRANCH
- refs/heads/GECKO130_2012052216_RELBRANCH
- refs/heads/GECKO130_2012052311_RELBRANCH
- refs/heads/GECKO130_2012052815_RELBRANCH
- refs/heads/GECKO130_2012053115_RELBRANCH
- refs/heads/GECKO130_2012060104_RELBRANCH
- refs/heads/GECKO1401_2012071313_RELBRANCH
- refs/heads/GECKO140_2012060421_RELBRANCH
- refs/heads/GECKO140_2012060511_RELBRANCH
- refs/heads/GECKO140_2012061213_RELBRANCH
- refs/heads/GECKO140_2012061216_RELBRANCH
- refs/heads/GECKO140_2012061918_RELBRANCH
- refs/heads/GECKO140_2012061920_RELBRANCH
- refs/heads/GECKO140_2012062401_RELBRANCH
- refs/heads/GECKO140_2012062805_RELBRANCH
- refs/heads/GECKO140_2012070408_RELBRANCH
- refs/heads/GECKO140_2012070409_RELBRANCH
- refs/heads/GECKO140_2012071012_RELBRANCH
- refs/heads/GECKO140_2012071119_RELBRANCH
- refs/heads/GECKO140_2012071314_RELBRANCH
- refs/heads/GECKO150_2012071710_RELBRANCH
- refs/heads/GECKO150_2012071711_RELBRANCH
- refs/heads/GECKO150_2012072419_RELBRANCH
- refs/heads/GECKO150_2012073114_RELBRANCH
- refs/heads/GECKO150_2012073115_RELBRANCH
- refs/heads/GECKO150_2012080812_RELBRANCH
- refs/heads/GECKO150_2012080818_RELBRANCH
- refs/heads/GECKO150_2012081422_RELBRANCH
- refs/heads/GECKO150_2012081508_RELBRANCH
- refs/heads/GECKO150_2012082116_RELBRANCH
- refs/heads/GECKO150_2012082118_RELBRANCH
- refs/heads/GECKO150_2012082415_RELBRANCH
- refs/heads/GECKO150_2012082417_RELBRANCH
- refs/heads/GECKO1601_2012101014_RELBRANCH
- refs/heads/GECKO1602_2012102407_RELBRANCH
- refs/heads/GECKO160_2012082808_RELBRANCH
- refs/heads/GECKO160_2012082817_RELBRANCH
- refs/heads/GECKO160_2012090412_RELBRANCH
- refs/heads/GECKO160_2012090515_RELBRANCH
- refs/heads/GECKO160_2012091123_RELBRANCH
- refs/heads/GECKO160_2012091906_RELBRANCH
- refs/heads/GECKO160_2012092515_RELBRANCH
- refs/heads/GECKO160_2012092520_RELBRANCH
- refs/heads/GECKO160_2012100207_RELBRANCH
- refs/heads/GECKO160_2012100209_RELBRANCH
- refs/heads/GECKO160_2012100513_RELBRANCH
- refs/heads/GECKO160_2012100515_RELBRANCH
- refs/heads/GECKO1701_2013010313_RELBRANCH
- refs/heads/GECKO170_2012100914_RELBRANCH
- refs/heads/GECKO170_2012101014_RELBRANCH
- refs/heads/GECKO170_2012101016_RELBRANCH
- refs/heads/GECKO170_2012101707_RELBRANCH
- refs/heads/GECKO170_2012102312_RELBRANCH
- refs/heads/GECKO170_2012103012_RELBRANCH
- refs/heads/GECKO170_2012103106_RELBRANCH
- refs/heads/GECKO170_2012110619_RELBRANCH
- refs/heads/GECKO170_2012111306_RELBRANCH
- refs/heads/GECKO170_2012111612_RELBRANCH
- refs/heads/GECKO170_2012111918_RELBRANCH
- refs/heads/GECKO1801_2013011610_RELBRANCH
- refs/heads/GECKO1802_2013020109_RELBRANCH
- refs/heads/GECKO180_2012112110_RELBRANCH
- refs/heads/GECKO180_2012112808_RELBRANCH
- refs/heads/GECKO180_2012112816_RELBRANCH
- refs/heads/GECKO180_2012120508_RELBRANCH
- refs/heads/GECKO180_2012121210_RELBRANCH
- refs/heads/GECKO180_2012121910_RELBRANCH
- refs/heads/GECKO180_2012122710_RELBRANCH
- refs/heads/GECKO180_2012123109_RELBRANCH
- refs/heads/GECKO180_2013010417_RELBRANCH
- refs/heads/GECKO1901_2013022619_RELBRANCH
- refs/heads/GECKO1902_2013030705_RELBRANCH
- refs/heads/GECKO190_2013010812_RELBRANCH
- refs/heads/GECKO190_2013010816_RELBRANCH
- refs/heads/GECKO190_2013010913_RELBRANCH
- refs/heads/GECKO190_2013011610_RELBRANCH
- refs/heads/GECKO190_2013011709_RELBRANCH
- refs/heads/GECKO190_2013012311_RELBRANCH
- refs/heads/GECKO190_2013013010_RELBRANCH
- refs/heads/GECKO190_2013020611_RELBRANCH
- refs/heads/GECKO190_2013021211_RELBRANCH
- refs/heads/GECKO190_2013021515_RELBRANCH
- refs/heads/GECKO2001_2013040922_RELBRANCH
- refs/heads/GECKO200_2013022008_RELBRANCH
- refs/heads/GECKO200_2013022013_RELBRANCH
- refs/heads/GECKO200_2013032617_RELBRANCH
- refs/heads/GECKO201_2011041321_RELBRANCH
- refs/heads/GECKO210_2013050704_RELBRANCH
- refs/heads/GECKO210_2013051114_RELBRANCH
- refs/heads/GECKO210_2013051217_RELBRANCH
- refs/heads/GECKO220_2013061806_RELBRANCH
- refs/heads/GECKO220_2013061915_RELBRANCH
- refs/heads/GECKO2301_2013081409_RELBRANCH
- refs/heads/GECKO2301_2013081518_RELBRANCH
- refs/heads/GECKO230_2013073013_RELBRANCH
- refs/heads/GECKO230_2013080122_RELBRANCH
- refs/heads/GECKO240_2013091018_RELBRANCH
- refs/heads/GECKO240esr_2013091022_RELBRANCH
- refs/heads/GECKO2411esr_2013111803_RELBRANCH
- refs/heads/GECKO2420esr_2013120417_RELBRANCH
- refs/heads/GECKO2420esr_2013120520_RELBRANCH
- refs/heads/GECKO2430esr_2014012816_RELBRANCH
- refs/heads/GECKO2430esr_2014013111_RELBRANCH
- refs/heads/GECKO2440esr_2014031511_RELBRANCH
- refs/heads/GECKO2450esr_2014042118_RELBRANCH
- refs/heads/GECKO2460esr_2014060313_RELBRANCH
- refs/heads/GECKO2460esr_2014060920_RELBRANCH
- refs/heads/GECKO2470esr_2014071418_RELBRANCH
- refs/heads/GECKO2480esr_2014082508_RELBRANCH
- refs/heads/GECKO2481esr_2014092322_RELBRANCH
- refs/heads/GECKO2501_2013111218_RELBRANCH
- refs/heads/GECKO250_2013102121_RELBRANCH
- refs/heads/GECKO250_2013102300_RELBRANCH
- refs/heads/GECKO250_2013102517_RELBRANCH
- refs/heads/GECKO260_2013120223_RELBRANCH
- refs/heads/GECKO260_2013120510_RELBRANCH
- refs/heads/GECKO2701_2014021215_RELBRANCH
- refs/heads/GECKO270_2014012722_RELBRANCH
- refs/heads/GECKO280_2014031020_RELBRANCH
- refs/heads/GECKO280_2014031500_RELBRANCH
- refs/heads/GECKO2901_2014050600_RELBRANCH
- refs/heads/GECKO2901_2014050617_RELBRANCH
- refs/heads/GECKO290_2014042200_RELBRANCH
- refs/heads/GECKO300_2014060316_RELBRANCH
- refs/heads/GECKO300_2014060520_RELBRANCH
- refs/heads/GECKO310_2014071417_RELBRANCH
- refs/heads/GECKO310_2014071621_RELBRANCH
- refs/heads/GECKO310esr_2014071418_RELBRANCH
- refs/heads/GECKO310esr_2014071715_RELBRANCH
- refs/heads/GECKO3110esr_2014082508_RELBRANCH
- refs/heads/GECKO3111esr_2014092321_RELBRANCH
- refs/heads/GECKO3120esr_2014100702_RELBRANCH
- refs/heads/GECKO3120esr_2014101105_RELBRANCH
- refs/heads/GECKO3120esr_2014101110_RELBRANCH
- refs/heads/GECKO3121esr_2014110314_RELBRANCH
- refs/heads/GECKO3130esr_2014112501_RELBRANCH
- refs/heads/GECKO3130esr_2014112505_RELBRANCH
- refs/heads/GECKO3140esr_2015010523_RELBRANCH
- refs/heads/GECKO3150esr_2015021614_RELBRANCH
- refs/heads/GECKO3150esr_2015021713_RELBRANCH
- refs/heads/GECKO3160esr_2015032414_RELBRANCH
- refs/heads/GECKO3160esr_2015032523_RELBRANCH
- refs/heads/GECKO3170esr_2015050415_RELBRANCH
- refs/heads/GECKO3170esr_2015050422_RELBRANCH
- refs/heads/GECKO3180esr_2015062417_RELBRANCH
- refs/heads/GECKO3201_2014091023_RELBRANCH
- refs/heads/GECKO3201_2014091117_RELBRANCH
- refs/heads/GECKO3202_2014091722_RELBRANCH
- refs/heads/GECKO3203_2014092320_RELBRANCH
- refs/heads/GECKO320_2014082522_RELBRANCH
- refs/heads/GECKO330_2014100710_RELBRANCH
- refs/heads/GECKO330_2014101104_RELBRANCH
- refs/heads/GECKO3311_2014111317_RELBRANCH
- refs/heads/GECKO331_2014102917_RELBRANCH
- refs/heads/GECKO331_2014103013_RELBRANCH
- refs/heads/GECKO331_2014110614_RELBRANCH
- refs/heads/GECKO3405_2014112606_RELBRANCH
- refs/heads/GECKO340_2014112423_RELBRANCH
- refs/heads/GECKO340_2014112520_RELBRANCH
- refs/heads/GECKO340_2014112606_RELBRANCH
- refs/heads/GECKO3501_2015012300_RELBRANCH
- refs/heads/GECKO350_2015010523_RELBRANCH
- refs/heads/GECKO350_2015010702_RELBRANCH
- refs/heads/GECKO350_2015010823_RELBRANCH
- refs/heads/GECKO3601_2015030416_RELBRANCH
- refs/heads/GECKO3601_2015030504_RELBRANCH
- refs/heads/GECKO3603_2015031922_RELBRANCH
- refs/heads/GECKO3604_2015032022_RELBRANCH
- refs/heads/GECKO360_2015021920_RELBRANCH
- refs/heads/GECKO360_2015022302_RELBRANCH
- refs/heads/GECKO3701_2015040222_RELBRANCH
- refs/heads/GECKO3702_2015041516_RELBRANCH
- refs/heads/GECKO370_2015032422_RELBRANCH
- refs/heads/GECKO370_2015032621_RELBRANCH
- refs/heads/GECKO3805_2015052119_RELBRANCH
- refs/heads/GECKO3805_2015052120_RELBRANCH
- refs/heads/GECKO3805_2015052516_RELBRANCH
- refs/heads/GECKO3806_2015060512_RELBRANCH
- refs/heads/GECKO380_2015050317_RELBRANCH
- refs/heads/GECKO380_2015050320_RELBRANCH
- refs/heads/GECKO380esr_2015050513_RELBRANCH
- refs/heads/GECKO3810esr_2015062417_RELBRANCH
- refs/heads/GECKO3810esr_2015070616_RELBRANCH
- refs/heads/GECKO3820esr_2015080322_RELBRANCH
- refs/heads/GECKO3820esr_2015080613_RELBRANCH
- refs/heads/GECKO3830esr_2015091419_RELBRANCH
- refs/heads/GECKO3830esr_2015091612_RELBRANCH
- refs/heads/GECKO3840esr_2015102712_RELBRANCH
- refs/heads/GECKO3840esr_2015102720_RELBRANCH
- refs/heads/GECKO3850esr_2015121010_RELBRANCH
- refs/heads/GECKO3850esr_2015121418_RELBRANCH
- refs/heads/GECKO3851esr_2015121812_RELBRANCH
- refs/heads/GECKO3852esr_2015122118_RELBRANCH
- refs/heads/GECKO3860esr_2016012100_RELBRANCH
- refs/heads/GECKO3870esr_2016030220_RELBRANCH
- refs/heads/GECKO3871esr_2016031517_RELBRANCH
- refs/heads/GECKO3880esr_2016042017_RELBRANCH
- refs/heads/GECKO390_2015062220_RELBRANCH
- refs/heads/GECKO390_2015062418_RELBRANCH
- refs/heads/GECKO390_2015062614_RELBRANCH
- refs/heads/GECKO390_2015063018_RELBRANCH
- refs/heads/GECKO4001_2015081122_RELBRANCH
- refs/heads/GECKO4002_2015081219_RELBRANCH
- refs/heads/GECKO4003_2015082605_RELBRANCH
- refs/heads/GECKO400_2015080313_RELBRANCH
- refs/heads/GECKO400_2015080415_RELBRANCH
- refs/heads/GECKO400_2015080613_RELBRANCH
- refs/heads/GECKO400_2015080618_RELBRANCH
- refs/heads/GECKO400_2015080711_RELBRANCH
- refs/heads/GECKO4101_2015092818_RELBRANCH
- refs/heads/GECKO4101_2015092917_RELBRANCH
- refs/heads/GECKO4102_2015101322_RELBRANCH
- refs/heads/GECKO4102_2015101417_RELBRANCH
- refs/heads/GECKO410_2015091421_RELBRANCH
- refs/heads/GECKO410_2015091623_RELBRANCH
- refs/heads/GECKO410_2015091718_RELBRANCH
- refs/heads/GECKO420_2015102619_RELBRANCH
- refs/heads/GECKO420_2015102918_RELBRANCH
- refs/heads/GECKO4301_2015121620_RELBRANCH
- refs/heads/GECKO4302_2015122116_RELBRANCH
- refs/heads/GECKO4303_2015122316_RELBRANCH
- refs/heads/GECKO4304_2016010417_RELBRANCH
- refs/heads/GECKO4304_2016010515_RELBRANCH
- refs/heads/GECKO4304_2016010519_RELBRANCH
- refs/heads/GECKO430_2015120812_RELBRANCH
- refs/heads/GECKO4401_2016020419_RELBRANCH
- refs/heads/GECKO4401_2016020518_RELBRANCH
- refs/heads/GECKO4402_2016020915_RELBRANCH
- refs/heads/GECKO4402_2016020917_RELBRANCH
- refs/heads/GECKO4402_2016021018_RELBRANCH
- refs/heads/GECKO440_2016011817_RELBRANCH
- refs/heads/GECKO440_2016012018_RELBRANCH
- refs/heads/GECKO440_2016012318_RELBRANCH
- refs/heads/GECKO4501_2016031518_RELBRANCH
- refs/heads/GECKO4501esr_2016031518_RELBRANCH
- refs/heads/GECKO4501esr_2016031618_RELBRANCH
- refs/heads/GECKO4502_2016040719_RELBRANCH
- refs/heads/GECKO4502esr_2016041116_RELBRANCH
- refs/heads/GECKO450_2016030103_RELBRANCH
- refs/heads/GECKO450_2016030316_RELBRANCH
- refs/heads/GECKO450esr_2016030316_RELBRANCH
- refs/heads/GECKO450esr_2016030414_RELBRANCH
- refs/heads/GECKO4510esr_2016042017_RELBRANCH
- refs/heads/GECKO4511esr_2016050218_RELBRANCH
- refs/heads/GECKO4520esr_2016060214_RELBRANCH
- refs/heads/GECKO501_2011070717_RELBRANCH
- refs/heads/GECKO50_2011051718_RELBRANCH
- refs/heads/GECKO50_2011052708_RELBRANCH
- refs/heads/GECKO50_2011060309_RELBRANCH
- refs/heads/GECKO50_2011060814_RELBRANCH
- refs/heads/GECKO50_2011061316_RELBRANCH
- refs/heads/GECKO50_2011061416_RELBRANCH
- refs/heads/GECKO50_2011061514_RELBRANCH
- refs/heads/GECKO601_2011083006_RELBRANCH
- refs/heads/GECKO602_2011083109_RELBRANCH
- refs/heads/GECKO60_2011070520_RELBRANCH
- refs/heads/GECKO60_2011071316_RELBRANCH
- refs/heads/GECKO60_2011072110_RELBRANCH
- refs/heads/GECKO60_2011072114_RELBRANCH
- refs/heads/GECKO60_2011072907_RELBRANCH
- refs/heads/GECKO60_2011080402_RELBRANCH
- refs/heads/GECKO60_2011081114_RELBRANCH
- refs/heads/GECKO701_2011092812_RELBRANCH
- refs/heads/GECKO70_2011081615_RELBRANCH
- refs/heads/GECKO70_2011082416_RELBRANCH
- refs/heads/GECKO70_2011083009_RELBRANCH
- refs/heads/GECKO70_2011083111_RELBRANCH
- refs/heads/GECKO70_2011090812_RELBRANCH
- refs/heads/GECKO70_2011091608_RELBRANCH
- refs/heads/GECKO70_2011092208_RELBRANCH
- refs/heads/GECKO80_2011092805_RELBRANCH
- refs/heads/GECKO80_2011100518_RELBRANCH
- refs/heads/GECKO80_2011101118_RELBRANCH
- refs/heads/GECKO80_2011101907_RELBRANCH
- refs/heads/GECKO80_2011102619_RELBRANCH
- refs/heads/GECKO80_2011103118_RELBRANCH
- refs/heads/GECKO80_2011110416_RELBRANCH
- refs/heads/GECKO901_2011122016_RELBRANCH
- refs/heads/GECKO90_2011110909_RELBRANCH
- refs/heads/GECKO90_2011110911_RELBRANCH
- refs/heads/GECKO90_2011111609_RELBRANCH
- refs/heads/GECKO90_2011112217_RELBRANCH
- refs/heads/GECKO90_2011113005_RELBRANCH
- refs/heads/GECKO90_2011120622_RELBRANCH
- refs/heads/GECKO90_2011121217_RELBRANCH
- refs/heads/GECKO90_2011121613_RELBRANCH
- refs/heads/MOBILE1001_2012020805_RELBRANCH
- refs/heads/MOBILE1002_2012021522_RELBRANCH
- refs/heads/MOBILE100_2011122112_RELBRANCH
- refs/heads/MOBILE100_2011122805_RELBRANCH
- refs/heads/MOBILE100_2012010318_RELBRANCH
- refs/heads/MOBILE100_2012010410_RELBRANCH
- refs/heads/MOBILE100_2012011108_RELBRANCH
- refs/heads/MOBILE100_2012011807_RELBRANCH
- refs/heads/MOBILE100_2012012323_RELBRANCH
- refs/heads/MOBILE100_2012012901_RELBRANCH
- refs/heads/MOBILE110_2012020115_RELBRANCH
- refs/heads/MOBILE110_2012020801_RELBRANCH
- refs/heads/MOBILE110_2012021420_RELBRANCH
- refs/heads/MOBILE110_2012021522_RELBRANCH
- refs/heads/MOBILE110_2012022207_RELBRANCH
- refs/heads/MOBILE110_2012022820_RELBRANCH
- refs/heads/MOBILE110_2012030517_RELBRANCH
- refs/heads/MOBILE120_2012031407_RELBRANCH
- refs/heads/MOBILE120_2012031419_RELBRANCH
- refs/heads/MOBILE120_2012032021_RELBRANCH
- refs/heads/MOBILE120_2012032804_RELBRANCH
- refs/heads/MOBILE120_2012040320_RELBRANCH
- refs/heads/MOBILE120_2012041106_RELBRANCH
- refs/heads/MOBILE120_2012041716_RELBRANCH
- refs/heads/MOBILE130_2012042512_RELBRANCH
- refs/heads/MOBILE130_2012042709_RELBRANCH
- refs/heads/MOBILE130_2012050119_RELBRANCH
- refs/heads/MOBILE130_2012050817_RELBRANCH
- refs/heads/MOBILE1401_2012071313_RELBRANCH
- refs/heads/MOBILE1401_2012071316_RELBRANCH
- refs/heads/MOBILE1402_2012080109_RELBRANCH
- refs/heads/MOBILE1402_2012080617_RELBRANCH
- refs/heads/MOBILE140_2012060523_RELBRANCH
- refs/heads/MOBILE140_2012061216_RELBRANCH
- refs/heads/MOBILE140_2012061918_RELBRANCH
- refs/heads/MOBILE140_2012062805_RELBRANCH
- refs/heads/MOBILE140_2012062810_RELBRANCH
- refs/heads/MOBILE140_2012070414_RELBRANCH
- refs/heads/MOBILE140_2012071012_RELBRANCH
- refs/heads/MOBILE1501_2012090514_RELBRANCH
- refs/heads/MOBILE1501_2012090620_RELBRANCH
- refs/heads/MOBILE150_2012071710_RELBRANCH
- refs/heads/MOBILE150_2012072419_RELBRANCH
- refs/heads/MOBILE150_2012073114_RELBRANCH
- refs/heads/MOBILE150_2012080812_RELBRANCH
- refs/heads/MOBILE150_2012081422_RELBRANCH
- refs/heads/MOBILE150_2012082116_RELBRANCH
- refs/heads/MOBILE150_2012082314_RELBRANCH
- refs/heads/MOBILE150_2012082415_RELBRANCH
- refs/heads/MOBILE1601_2012101014_RELBRANCH
- refs/heads/MOBILE1602_2012102407_RELBRANCH
- refs/heads/MOBILE160_2012082808_RELBRANCH
- refs/heads/MOBILE160_2012090412_RELBRANCH
- refs/heads/MOBILE160_2012091123_RELBRANCH
- refs/heads/MOBILE160_2012091906_RELBRANCH
- refs/heads/MOBILE160_2012092520_RELBRANCH
- refs/heads/MOBILE160_2012100207_RELBRANCH
- refs/heads/MOBILE160_2012100515_RELBRANCH
- refs/heads/MOBILE1701_2012112820_RELBRANCH
- refs/heads/MOBILE170_2012100914_RELBRANCH
- refs/heads/MOBILE170_2012101021_RELBRANCH
- refs/heads/MOBILE170_2012101707_RELBRANCH
- refs/heads/MOBILE170_2012102312_RELBRANCH
- refs/heads/MOBILE170_2012103106_RELBRANCH
- refs/heads/MOBILE170_2012110619_RELBRANCH
- refs/heads/MOBILE170_2012111306_RELBRANCH
- refs/heads/MOBILE170_2012111605_RELBRANCH
- refs/heads/MOBILE170_2012111611_RELBRANCH
- refs/heads/MOBILE1802_2013020621_RELBRANCH
- refs/heads/MOBILE180_2012112113_RELBRANCH
- refs/heads/MOBILE180_2012112808_RELBRANCH
- refs/heads/MOBILE180_2012120508_RELBRANCH
- refs/heads/MOBILE180_2012121210_RELBRANCH
- refs/heads/MOBILE180_2012121317_RELBRANCH
- refs/heads/MOBILE180_2012121910_RELBRANCH
- refs/heads/MOBILE180_2012122710_RELBRANCH
- refs/heads/MOBILE180_2012123109_RELBRANCH
- refs/heads/MOBILE180_2013010418_RELBRANCH
- refs/heads/MOBILE1901_2013030614_RELBRANCH
- refs/heads/MOBILE1902_2013030705_RELBRANCH
- refs/heads/MOBILE190_2013010812_RELBRANCH
- refs/heads/MOBILE190_2013010816_RELBRANCH
- refs/heads/MOBILE190_2013011610_RELBRANCH
- refs/heads/MOBILE190_2013012311_RELBRANCH
- refs/heads/MOBILE190_2013013010_RELBRANCH
- refs/heads/MOBILE190_2013020611_RELBRANCH
- refs/heads/MOBILE190_2013020621_RELBRANCH
- refs/heads/MOBILE190_2013021211_RELBRANCH
- refs/heads/MOBILE190_2013021515_RELBRANCH
- refs/heads/MOBILE2001_2013041018_RELBRANCH
- refs/heads/MOBILE200_2013022008_RELBRANCH
- refs/heads/MOBILE200_2013022119_RELBRANCH
- refs/heads/MOBILE200_2013022215_RELBRANCH
- refs/heads/MOBILE200_2013032617_RELBRANCH
- refs/heads/MOBILE210_2013050704_RELBRANCH
- refs/heads/MOBILE210_2013050901_RELBRANCH
- refs/heads/MOBILE220_2013061806_RELBRANCH
- refs/heads/MOBILE230_2013073014_RELBRANCH
- refs/heads/MOBILE240_2013091115_RELBRANCH
- refs/heads/MOBILE2501_2013111218_RELBRANCH
- refs/heads/MOBILE250_2013102121_RELBRANCH
- refs/heads/MOBILE250_2013102300_RELBRANCH
- refs/heads/MOBILE250_2013102517_RELBRANCH
- refs/heads/MOBILE2601_2013121917_RELBRANCH
- refs/heads/MOBILE2601_2013121920_RELBRANCH
- refs/heads/MOBILE260_2013120223_RELBRANCH
- refs/heads/MOBILE260_2013120510_RELBRANCH
- refs/heads/MOBILE270_2014012816_RELBRANCH
- refs/heads/MOBILE2801_2014032118_RELBRANCH
- refs/heads/MOBILE280_2014031500_RELBRANCH
- refs/heads/MOBILE2901_2014050600_RELBRANCH
- refs/heads/MOBILE290_2014042416_RELBRANCH
- refs/heads/MOBILE300_2014060520_RELBRANCH
- refs/heads/MOBILE310_2014071714_RELBRANCH
- refs/heads/MOBILE3201_2014090921_RELBRANCH
- refs/heads/MOBILE3203_2014092320_RELBRANCH
- refs/heads/MOBILE320_2014082615_RELBRANCH
- refs/heads/MOBILE330_2014100810_RELBRANCH
- refs/heads/MOBILE330_2014101104_RELBRANCH
- refs/heads/MOBILE331_2014110511_RELBRANCH
- refs/heads/MOBILE331_2014110613_RELBRANCH
- refs/heads/MOBILE3401_2014121722_RELBRANCH
- refs/heads/MOBILE3401_2014121819_RELBRANCH
- refs/heads/MOBILE340_2014112423_RELBRANCH
- refs/heads/MOBILE340_2014112520_RELBRANCH
- refs/heads/MOBILE340_2014112618_RELBRANCH
- refs/heads/MOBILE3501_2015020504_RELBRANCH
- refs/heads/MOBILE350_2015010823_RELBRANCH
- refs/heads/MOBILE3601_2015030417_RELBRANCH
- refs/heads/MOBILE3601_2015030509_RELBRANCH
- refs/heads/MOBILE3602_2015031211_RELBRANCH
- refs/heads/MOBILE3602_2015031403_RELBRANCH
- refs/heads/MOBILE3603_2015031922_RELBRANCH
- refs/heads/MOBILE3604_2015032022_RELBRANCH
- refs/heads/MOBILE360_2015021920_RELBRANCH
- refs/heads/MOBILE360_2015022513_RELBRANCH
- refs/heads/MOBILE3701_2015040222_RELBRANCH
- refs/heads/MOBILE3702_2015041320_RELBRANCH
- refs/heads/MOBILE370_2015032520_RELBRANCH
- refs/heads/MOBILE3805_2015052804_RELBRANCH
- refs/heads/MOBILE3901_2015070520_RELBRANCH
- refs/heads/MOBILE3901_2015070622_RELBRANCH
- refs/heads/MOBILE3902_2015071316_RELBRANCH
- refs/heads/MOBILE390_2015062418_RELBRANCH
- refs/heads/MOBILE390_2015062601_RELBRANCH
- refs/heads/MOBILE4003_2015082703_RELBRANCH
- refs/heads/MOBILE400_2015080510_RELBRANCH
- refs/heads/MOBILE4102_2015101322_RELBRANCH
- refs/heads/MOBILE4102_2015101417_RELBRANCH
- refs/heads/MOBILE410_2015091517_RELBRANCH
- refs/heads/MOBILE410_2015091623_RELBRANCH
- refs/heads/MOBILE410_2015091718_RELBRANCH
- refs/heads/MOBILE4201_2015111905_RELBRANCH
- refs/heads/MOBILE4202_2015120112_RELBRANCH
- refs/heads/MOBILE420_2015102816_RELBRANCH
- refs/heads/MOBILE420_2015102820_RELBRANCH
- refs/heads/MOBILE420_2015102905_RELBRANCH
- refs/heads/MOBILE4301_2015121519_RELBRANCH
- refs/heads/MOBILE430_2015121011_RELBRANCH
- refs/heads/MOBILE430_2015121419_RELBRANCH
- refs/heads/MOBILE4402_2016020915_RELBRANCH
- refs/heads/MOBILE4402_2016020917_RELBRANCH
- refs/heads/MOBILE4402_2016020922_RELBRANCH
- refs/heads/MOBILE4402_2016021011_RELBRANCH
- refs/heads/MOBILE440_2016012018_RELBRANCH
- refs/heads/MOBILE4501_2016031519_RELBRANCH
- refs/heads/MOBILE4502_2016040719_RELBRANCH
- refs/heads/MOBILE450_2016030216_RELBRANCH
- refs/heads/MOBILE450_2016030304_RELBRANCH
- refs/heads/MOBILE450_2016030316_RELBRANCH
- refs/heads/MOBILE4601_2016050218_RELBRANCH
- refs/heads/MOBILE460_2016042213_RELBRANCH
- refs/heads/MOBILE470_2016060220_RELBRANCH
- refs/heads/MOBILE470_2016060422_RELBRANCH
- refs/heads/MOBILE4803_2016090208_RELBRANCH
- refs/heads/MOBILE480_2016072616_RELBRANCH
- refs/heads/MOBILE4902_2016101815_RELBRANCH
- refs/heads/MOBILE4902_2016101919_RELBRANCH
- refs/heads/MOBILE490_2016090808_RELBRANCH
- refs/heads/MOBILE490_2016091217_RELBRANCH
- refs/heads/MOBILE490_2016091613_RELBRANCH
- refs/heads/MOBILE5001_2016112401_RELBRANCH
- refs/heads/MOBILE5002_2016112921_RELBRANCH
- refs/heads/MOBILE500_2016110523_RELBRANCH
- refs/heads/MOBILE5010_2016120721_RELBRANCH
- refs/heads/MOBILE5010_2016120821_RELBRANCH
- refs/heads/MOBILE5102_2017020604_RELBRANCH
- refs/heads/MOBILE5103_2017020816_RELBRANCH
- refs/heads/MOBILE5104_2017021320_RELBRANCH
- refs/heads/MOBILE510_2017011707_RELBRANCH
- refs/heads/MOBILE510_2017011818_RELBRANCH
- refs/heads/MOBILE510_2017011915_RELBRANCH
- refs/heads/MOBILE5201_2017031701_RELBRANCH
- refs/heads/MOBILE5202_2017032405_RELBRANCH
- refs/heads/MOBILE520_2017030210_RELBRANCH
- refs/heads/MOBILE520_2017030217_RELBRANCH
- refs/heads/MOBILE520_2017030305_RELBRANCH
- refs/heads/MOBILE5301_2017041915_RELBRANCH
- refs/heads/MOBILE601_2011083008_RELBRANCH
- refs/heads/MOBILE602_2011083111_RELBRANCH
- refs/heads/MOBILE60_2011071316_RELBRANCH
- refs/heads/MOBILE60_2011072110_RELBRANCH
- refs/heads/MOBILE60_2011072114_RELBRANCH
- refs/heads/MOBILE60_2011072907_RELBRANCH
- refs/heads/MOBILE60_2011080402_RELBRANCH
- refs/heads/MOBILE60_2011081016_RELBRANCH
- refs/heads/MOBILE60_2011081116_RELBRANCH
- refs/heads/MOBILE701_2011092812_RELBRANCH
- refs/heads/MOBILE70_2011081614_RELBRANCH
- refs/heads/MOBILE70_2011082416_RELBRANCH
- refs/heads/MOBILE70_2011083009_RELBRANCH
- refs/heads/MOBILE70_2011083111_RELBRANCH
- refs/heads/MOBILE70_2011090812_RELBRANCH
- refs/heads/MOBILE70_2011091608_RELBRANCH
- refs/heads/MOBILE70_2011092210_RELBRANCH
- refs/heads/MOBILE80_2011092805_RELBRANCH
- refs/heads/MOBILE80_2011100517_RELBRANCH
- refs/heads/MOBILE80_2011101117_RELBRANCH
- refs/heads/MOBILE80_2011101907_RELBRANCH
- refs/heads/MOBILE80_2011102618_RELBRANCH
- refs/heads/MOBILE80_2011103117_RELBRANCH
- refs/heads/MOBILE80_2011110415_RELBRANCH
- refs/heads/MOBILE90_2011110909_RELBRANCH
- refs/heads/MOBILE90_2011111608_RELBRANCH
- refs/heads/MOBILE90_2011112218_RELBRANCH
- refs/heads/MOBILE90_2011113006_RELBRANCH
- refs/heads/MOBILE90_2011120622_RELBRANCH
- refs/heads/MOBILE90_2011121217_RELBRANCH
- refs/heads/MOBILE90_2011121612_RELBRANCH
- refs/heads/aurora
- refs/heads/b2g-inbound
- refs/heads/b2g-ota
- refs/heads/b2g18
- refs/heads/b2g18_v1_0_0
- refs/heads/b2g18_v1_0_1
- refs/heads/b2g18_v1_1_0_hd
- refs/heads/b2g26_v1_2
- refs/heads/b2g26_v1_2f
- refs/heads/b2g28_v1_3
- refs/heads/b2g28_v1_3t
- refs/heads/b2g30_v1_4
- refs/heads/b2g32_v2_0
- refs/heads/b2g32_v2_0m
- refs/heads/b2g34_v2_1
- refs/heads/b2g34_v2_1s
- refs/heads/b2g37_v2_2
- refs/heads/b2g37_v2_2r
- refs/heads/b2g44_v2_5
- refs/heads/beta
- refs/heads/esr102
- refs/heads/esr115
- refs/heads/esr128
- refs/heads/esr17
- refs/heads/esr24
- refs/heads/esr31
- refs/heads/esr38
- refs/heads/esr45
- refs/heads/esr52
- refs/heads/esr60
- refs/heads/esr68
- refs/heads/esr78
- refs/heads/esr91
- refs/heads/fx-team
- refs/heads/inbound
- refs/heads/loop-ser
- refs/heads/master
- refs/heads/mozilla-b2g26_v1_2
- refs/heads/release
- refs/heads/renovate/configure
- refs/heads/tiling
- refs/tags/B2G_1_0_0_20130115070201
- refs/tags/B2G_1_0_0_20130125190500
- refs/tags/B2G_1_0_1_20130213094222
- refs/tags/B2G_1_0_1_20130213094222_BASE
- refs/tags/B2G_1_0_1_20130217163900
- refs/tags/B2G_1_1_0_hd_20130530182315
- refs/tags/B2G_1_1_0_hd_20130530182315_BASE
- refs/tags/B2G_1_1_0_hd_20140203_MERGEDAY
- refs/tags/B2G_1_1_0_hd_20140317_MERGEDAY
- refs/tags/B2G_1_1_0_hd_20140428_MERGEDAY
- refs/tags/B2G_1_1_20140203_MERGEDAY
- refs/tags/B2G_1_1_20140317_MERGEDAY
- refs/tags/B2G_1_1_20140428_MERGEDAY
- refs/tags/B2G_1_2_20140203_MERGEDAY
- refs/tags/B2G_1_2_20140317_MERGEDAY
- refs/tags/B2G_1_2_20140428_MERGEDAY
- refs/tags/B2G_1_3T_20140317_MERGEDAY
- refs/tags/B2G_1_3T_20140428_MERGEDAY
- refs/tags/B2G_1_3T_20140609_MERGEDAY
- refs/tags/B2G_1_3T_20140721_MERGEDAY
- refs/tags/B2G_1_3T_20140902_MERGEDAY
- refs/tags/B2G_1_3T_20141013_MERGEDAY
- refs/tags/B2G_1_3_20140203_MERGEDAY
- refs/tags/B2G_1_3_20140317_MERGEDAY
- refs/tags/B2G_1_3_20140428_MERGEDAY
- refs/tags/B2G_1_3_20140609_MERGEDAY
- refs/tags/B2G_1_3_20140721_MERGEDAY
- refs/tags/B2G_1_3_20140902_MERGEDAY
- refs/tags/B2G_1_4_20140317_MERGEDAY
- refs/tags/B2G_1_4_20140428_MERGEDAY
- refs/tags/B2G_1_4_20140609_MERGEDAY
- refs/tags/B2G_1_4_20140721_MERGEDAY
- refs/tags/B2G_1_4_20140902_MERGEDAY
- refs/tags/B2G_1_4_20141013_MERGEDAY
- refs/tags/B2G_1_4_20150112_MERGEDAY
- refs/tags/B2G_1_4_20150223_MERGEDAY
- refs/tags/B2G_1_4_20150330_MERGEDAY
- refs/tags/B2G_1_4_20150511_MERGEDAY
- refs/tags/B2G_2_0M_END
- refs/tags/B2G_2_0_20140609_MERGEDAY
- refs/tags/B2G_2_0_20140721_MERGEDAY
- refs/tags/B2G_2_0_20140902_MERGEDAY
- refs/tags/B2G_2_0_20141013_MERGEDAY
- refs/tags/B2G_2_0_20150112_MERGEDAY
- refs/tags/B2G_2_0_20150223_MERGEDAY
- refs/tags/B2G_2_0_20150511_MERGEDAY
- refs/tags/B2G_2_0_20150629_MERGEDAY
- refs/tags/B2G_2_0_END
- refs/tags/B2G_2_1_20140902_MERGEDAY
- refs/tags/B2G_2_1_20141013_MERGEDAY
- refs/tags/B2G_2_1_20150112_MERGEDAY
- refs/tags/B2G_2_1_20150223_MERGEDAY
- refs/tags/B2G_2_1_20150511_MERGEDAY
- refs/tags/B2G_2_1_20150629_MERGEDAY
- refs/tags/B2G_2_1_END
- refs/tags/B2G_2_1s_20150223_MERGEDAY
- refs/tags/B2G_2_1s_20150511_MERGEDAY
- refs/tags/B2G_2_1s_20150629_MERGEDAY
- refs/tags/B2G_2_1s_20150810_MERGEDAY
- refs/tags/B2G_2_1s_END
- refs/tags/B2G_2_2_20150223_MERGEDAY
- refs/tags/B2G_2_2_20150511_MERGEDAY
- refs/tags/B2G_2_2_20150629_MERGEDAY
- refs/tags/B2G_2_2_20150810_MERGEDAY
- refs/tags/B2G_2_2_20150921_MERGEDAY
- refs/tags/B2G_2_2_20151029_MERGEDAY
- refs/tags/B2G_2_2_20151214_MERGEDAY
- refs/tags/B2G_2_2r_20150810_MERGEDAY
- refs/tags/B2G_2_2r_20150921_MERGEDAY
- refs/tags/B2G_2_2r_20151029_MERGEDAY
- refs/tags/B2G_2_2r_20151214_MERGEDAY
- refs/tags/B2G_2_5_20151214_MERGEDAY
- refs/tags/B2G_2_5_20160125_MERGEDAY
- refs/tags/RELEASE_BASE_20110811
- refs/tags/RELEASE_BASE_20110922
- refs/tags/RELEASE_BASE_20111104
- refs/tags/RELEASE_BASE_20111216
- refs/tags/RELEASE_BASE_20120128
- refs/tags/RELEASE_BASE_20120308
- refs/tags/RELEASE_BASE_20120420
- refs/tags/RELEASE_BASE_20120531
- refs/tags/RELEASE_BASE_20120713
- refs/tags/RELEASE_BASE_20120824
- refs/tags/RELEASE_BASE_20121005
- refs/tags/RELEASE_BASE_20121114
- refs/tags/RELEASE_BASE_20130103
- refs/tags/RELEASE_BASE_20130214
- refs/tags/RELEASE_BASE_20130326
- refs/tags/RELEASE_BASE_20130506
- refs/tags/RELEASE_BASE_20130617
- refs/tags/RELEASE_BASE_20130729
- refs/tags/RELEASE_BASE_20130909
- refs/tags/RELEASE_BASE_20131021
- refs/tags/RELEASE_BASE_20131202
- refs/tags/RELEASE_BASE_20140127
- refs/tags/RELEASE_BASE_20140310
- refs/tags/RELEASE_BASE_20140421
- refs/tags/RELEASE_BASE_20140602
No releases to show
Raw File
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.Processing "take a new snapshot" request ...
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Tip revision: 35750b5af6e8a37f0b3977df5b0f68407cf24f06 authored by ffxbld on 18 October 2016, 19:26:02 UTC
Added FENNEC_49_0_2_RELEASE FENNEC_49_0_2_BUILD1 tag(s) for changeset 3ba91f7c77a2. DONTBUILD CLOSED TREE a=release
Added FENNEC_49_0_2_RELEASE FENNEC_49_0_2_BUILD1 tag(s) for changeset 3ba91f7c77a2. DONTBUILD CLOSED TREE a=release
Tip revision: 35750b5
AutoReferenceLimiter.h
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef NS_AUTOREFERENCELIMITER_H
#define NS_AUTOREFERENCELIMITER_H
#include "mozilla/Assertions.h"
#include "mozilla/Attributes.h"
#include "mozilla/ReentrancyGuard.h"
#include "nsDebug.h"
namespace mozilla {
/**
* This helper allows us to handle two related issues in SVG content: reference
* loops, and reference chains that we deem to be too long.
*
* SVG content may contain reference loops where an SVG effect (a clipPath,
* say) may reference itself either directly or, perhaps more likely,
* indirectly via a reference chain to other elements that eventually leads
* back to itself. This helper class allows us to detect and immediately break
* such reference loops when applying an effect so that we can prevent
* reference loops causing us to recurse until we run out of stack space and
* crash.
*
* SVG also allows for (non-loop) reference chains of arbitrary length, the
* length depending entirely on the SVG content. Some SVG authoring tools have
* been known to create absurdly long reference chains. (For example, bug
* 1253590 details a case where Adobe Illustrator created an SVG with a chain
* of 5000 clip paths which could cause us to run out of stack space and
* crash.) This helper class also allows us to limit the number of times we
* recurse into a function, thereby allowing us to limit the length ofreference
* chains.
*
* Consumers that need to handle the reference loop case should add a member
* variable (mReferencing, say) to the class that represents and applies the
* SVG effect in question (typically an nsIFrame sub-class), initialize that
* member to AutoReferenceLimiter::notReferencing in the class' constructor
* (and never touch that variable again), and then add something like the
* following at the top of the method(s) that may recurse to follow references
* when applying an effect:
*
* AutoReferenceLimiter refLoopDetector(&mInUse, 1); // only one ref allowed
* if (!refLoopDetector.Reference()) {
* return; // reference loop
* }
*
* Consumers that need to limit reference chain lengths should add something
* like the following code at the top of the method(s) that may recurse to
* follow references when applying an effect:
*
* static int16_t sChainLengthCounter = AutoReferenceLimiter::notReferencing;
*
* AutoReferenceLimiter refChainLengthLimiter(&sChainLengthCounter, MAX_LEN);
* if (!refChainLengthLimiter.Reference()) {
* return; // reference chain too long
* }
*/
class MOZ_RAII AutoReferenceLimiter
{
public:
static const int16_t notReferencing = -2;
AutoReferenceLimiter(int16_t* aRefCounter, int16_t aMaxReferenceCount)
{
MOZ_ASSERT(aMaxReferenceCount > 0 &&
aRefCounter &&
(*aRefCounter == notReferencing ||
(*aRefCounter >= 0 && *aRefCounter < aMaxReferenceCount)));
if (*aRefCounter == notReferencing) {
// initialize
*aRefCounter = aMaxReferenceCount;
}
mRefCounter = aRefCounter;
mMaxReferenceCount = aMaxReferenceCount;
}
~AutoReferenceLimiter() {
// If we fail this assert then there were more destructor calls than
// Reference() calls (a consumer forgot to to call Reference()), or else
// someone messed with the variable pointed to by mRefCounter.
MOZ_ASSERT(*mRefCounter < mMaxReferenceCount);
(*mRefCounter)++;
if (*mRefCounter == mMaxReferenceCount) {
*mRefCounter = notReferencing; // reset ready for use next time
}
}
/**
* Returns true on success (no reference loop/reference chain length is
* within the specified limits), else returns false on failure (there is a
* reference loop/the reference chain has exceeded the specified limits).
*/
MOZ_MUST_USE bool Reference() {
// If we fail this assertion then either a consumer failed to break a
// reference loop/chain, or else they called Reference() more than once
MOZ_ASSERT(*mRefCounter >= 0);
(*mRefCounter)--;
if (*mRefCounter < 0) {
// TODO: This is an issue with the document, not with Mozilla code. We
// should stop using NS_WARNING and send a message to the console
// instead (but only once per document, not over and over as we repaint).
if (mMaxReferenceCount == 1) {
NS_WARNING("Reference loop detected!");
} else {
NS_WARNING("Reference chain length limit exceeded!");
}
return false;
}
return true;
}
private:
int16_t* mRefCounter;
int16_t mMaxReferenceCount;
};
} // namespace mozilla
#endif // NS_AUTOREFERENCELIMITER_H