author David Keeler <dkeeler@mozilla.com>
Fri, 16 Oct 2015 14:31:57 -0700
changeset 269017 406f9bce7d238e3d4d63fb83114723d8d7114d90
parent 268966 3fa48c9d205bc6628b74caf93716338935b48689
child 274452 6eeb5d9cc0d8a34303fa6871a58e0b130ec55131
child 274642 d6754894897cbf3eafe0f15fb2f4389024a814dd
permissions -rw-r--r--
bug 1215690 - remove nsPSMUITracker r=Cykesiopka r=mgoodwin nsPSMUITracker was problematic. Apparently it was originally intended to prevent NSS shutdown while NSS-related UI operations were going on (such as choosing a client certificate). However, when nsNSSComponent would receive the event that told it to shutdown NSS, it would attempt to call mShutdownObjectList->evaporateAllNSSResources(), which would call mActivityState.restrictActivityToCurrentThread(), which failed if such a UI operation was in progress. This actually prevented the important part of evaporateAllNSSResources, which is the releasing of all NSS objects in use by PSM objects. Importantly, nsNSSComponent didn't check for or handle this failure and proceeded to call NSS_Shutdown(), leaving PSM in an inconsistent state where it thought it was okay to keep using the NSS objects it had when in fact it wasn't. In any case, nsPSMUITracker isn't really necessary as long as we have the nsNSSShutDownPreventionLock mechanism, which mostly works and is what we should use instead (or not at all, if no such lock is needed for the operation being performed (for example, if no NSS functions are being called)).

# .hgignore - List of filenames hg should ignore

# Filenames that should be ignored wherever they appear

# Vim swap files.

# Emacs directory variable files.

# User files that may appear at the root

# Empty marker file that's generated when we check out NSS

# Build directories

# Build directories for js shell

# SpiderMonkey configury
# SpiderMonkey test result logs

# Java HTML5 parser classes

# SVN directories

# Ignore the files and directory that Eclipse IDE creates

# Ignore the files and directory that JetBrains IDEs create.

# Gradle cache.

# Python stuff installed at build time.

# Git repositories

# Ignore chrome.manifest files from the devtools loader

# git checkout of libstagefright

# Tag files generated by GNU Global

# Unit tests for Loop

# Git clone directory for updating web-platform-tests

# Android Gradle artifacts.

# XCode project cruft

# Ignore mozharness execution files

# Ignore node_modules from eslint-plugin-mozilla

# Ignore talos virtualenv and tp5n files.
# The tp5n set is supposed to be decompressed at
# testing/talos/talos/page_load_test/tp5n in order to run tests like tps
# locally. Similarly, running talos requires a Python package virtual
# environment. Both the virtual environment and tp5n files end up littering
# the status command, so we ignore them.