Firefox Source Docs Logo

Quick search

Overview

  • A Glossary of Common Terms
  • A Quick Guide to Mozilla Applications

Getting Started

  • Getting Set Up To Work On The Firefox Codebase

Working On Firefox

  • Working on Firefox
  • Bug Handling
  • Firefox Crash Reporting

Firefox User Guide

  • 3D view
  • about:debugging
  • Accessibility Inspector
  • Application
  • Browser Console
  • Browser Toolbox
  • Custom Formatters
  • The Firefox JavaScript Debugger
  • Debugger-API
  • Deprecated tools
  • DevTools API
  • DevToolsColors
  • DOM Property Viewer
  • Eyedropper
  • Index
  • JavaScript Tracer
  • JSON viewer
  • All keyboard shortcuts
  • Local Mode
  • Measure a portion of the page
  • Memory
  • Migrating from Firebug
  • Network Monitor
  • Page Inspector
  • Performance Tool
  • Responsive Design Mode
  • Rulers
  • Settings
  • Shader Editor
  • Storage Inspector
  • Style Editor
  • Taking screenshots
  • Tips
  • Toolbox
  • Validators
  • View Source
  • Web Audio Editor
  • Web Console
  • Working with iframes
  • Firefox DevTools User Docs

Source Code Documentation

  • Governance
  • Firefox Front-end
  • DOM
  • Editor
  • Style system (CSS) & Layout
  • Graphics
  • Processes, Threads and IPC
  • Getting started
  • Architecture overview
  • Contributing
  • Bugs and issues
  • Firefox DevTools Contributor Docs
  • Toolkit
  • SpiderMonkey
  • JS Loader
  • GeckoView
  • Fenix
  • Focus for Android
  • WebIDL
  • libpref
  • Networking
  • Remote Protocols
  • Services
  • Permissions
  • File Handling
  • Firefox on macOS
  • Firefox on Windows
  • Firefox AI Runtime
  • Accessibility
  • Media Playback
  • Code quality
  • Writing Rust Code
  • Rust Components
  • Gecko Profiler
  • Performance
  • Database bindings (SQLite, KV, …)
  • XPCOM
  • NSPR
    • Documentation
    • Getting NSPR
    • Community
    • Related Topics
      • NSPR listing
        • About NSPR
        • Creating a cookie log
        • PR_Poll() and the layered I/O
        • Nonblocking IO in NSPR
        • Non-blocking layered I/O
        • NSPR build instructions
        • NSPR contributor guide
        • NSPR pool method
        • NSPR release procedure
        • NSPR’s position on abrupt thread termination
        • Optimizing applications for NSPR
        • NSPR platforms
        • Process forking in NSPR
        • Running NSPR tests
        • NSPR IO on NT
        • IO Timeout and Interrupt
        • Canceling Overlapped IO by Closing the File Descriptor
        • Limitations
        • Conclusions
        • Original Document Information
        • Anonymous Shared Memory
        • Atomic Operations Functions
        • Important
        • Cached Monitors Functions
        • Condition Variable Type
        • Condition Variable Functions
        • Macros for Time Unit Conversion
        • Types and Constants
        • Time Parameter Callback Functions
        • Functions
        • Dynamic Library Search
        • References
        • Hash Table Types and Constants
        • Hash Table Functions
        • I/O functions
        • Directory Type
        • File Descriptor Types
        • File Info Types
        • Network Address Types
        • Types Used with Socket Options Functions
        • Type Used with Memory-Mapped I/O
        • Offset Interpretation for Seek Functions
        • NSPR API Reference
        • Interval Time Type and Constants
        • Interval Functions
        • Introduction to NSPR
        • IPC Semaphore Functions
        • Linked List Types
        • Linked List Macros
        • Lock Type
        • Lock Functions
        • NSPR Logging
        • Long Long integers
        • Memory Allocation Functions
        • Memory Allocation Macros
        • Monitor Type
        • Monitor Functions
        • Shared Memory Protocol
        • Named Shared Memory Functions
        • Network Address Types and Constants
        • Network address functions
        • Error Type
        • Error Functions
        • Error Codes
        • NSPR_LOG_FILE
        • NSPR_LOG_MODULES
        • Calling Convention Types
        • Algebraic Types
        • Miscellaneous Types
        • PL_CompareStrings
        • PL_CompareValues
        • PL_HashString
        • PL_HashTableAdd
        • PL_HashTableDestroy
        • PL_HashTableEnumerateEntries
        • PL_HashTableLookup
        • PL_HashTableRemove
        • PL_NewHashTable
        • PL_strcpy
        • PL_strdup
        • PL_strfree
        • PL_strlen
        • PLHashAllocOps
        • PLHashComparator
        • PLHashEntry
        • PLHashEnumerator
        • PLHashFunction
        • PLHashNumber
        • PLHashTable
        • PR_Abort
        • PR_Accept
        • PR_AcceptRead
        • PR_Access
        • PR_APPEND_LINK
        • PR_ASSERT
        • PR_AtomicAdd
        • PR_AtomicDecrement
        • PR_AtomicIncrement
        • PR_AtomicSet
        • PR_AttachSharedMemory
        • PR_AttachThread
        • PR_Available
        • PR_Available64
        • PR_Bind
        • PR_BlockClockInterrupts
        • PR_CALLBACKimplementation
        • PR_Calloc
        • PR_CallOnce
        • PR_CancelJob
        • PR_CEnterMonitor
        • PR_CExitMonitor
        • PR_Cleanup
        • PR_ClearInterrupt
        • PR_CLIST_IS_EMPTY
        • PR_Close
        • PR_CloseDir
        • PR_CloseFileMap
        • PR_CloseSemaphore
        • PR_CloseSharedMemory
        • PR_CNotify
        • PR_CNotifyAll
        • PR_cnvtf
        • PR_Connect
        • PR_ConnectContinue
        • PR_ConvertIPv4AddrToIPv6
        • PR_CreateFileMap
        • PR_CreateIOLayerStub
        • PR_CreatePipe
        • PR_CreateThread
        • PR_CreateThreadPool
        • PR_CWait
        • PR_Delete
        • PR_DELETE (Deprecated)
        • PR_DeleteSemaphore
        • PR_DeleteSharedMemory
        • PR_DestroyCondVar
        • PR_DestroyLock
        • PR_DestroyMonitor
        • PR_DestroyPollableEvent
        • PR_DetachSharedMemory
        • PR_DetachThread
        • PR_DisableClockInterrupts
        • PR_dtoa
        • PR_EnterMonitor
        • PR_EnumerateAddrInfo
        • PR_EnumerateHostEnt
        • PR_ExitMonitor
        • PR_ExplodeTime
        • PR_ExportFileMapAsString
        • PR_EXTERN
        • PR_FamilyInet
        • PR_FindSymbol
        • PR_FindSymbolAndLibrary
        • PR_Free
        • PR_FreeAddrInfo
        • PR_FREEIF
        • PR_FreeLibraryName
        • PR_GetAddrInfoByName
        • PR_GetCanonNameFromAddrInfo
        • PR_GetConnectStatus
        • PR_GetCurrentThread
        • PR_GetDefaultIOMethods
        • PR_GetDescType
        • PR_GetError
        • PR_GetErrorText
        • PR_GetErrorTextLength
        • PR_GetFileInfo
        • PR_GetFileInfo64
        • PR_GetHostByAddr
        • PR_GetHostByName
        • PR_GetIdentitiesLayer
        • PR_GetInheritedFileMap
        • PR_GetLayersIdentity
        • PR_GetLibraryName
        • PR_GetLibraryPath
        • PR_GetNameForIdentity
        • PR_GetOpenFileInfo
        • PR_GetOpenFileInfo64
        • PR_GetOSError
        • PR_GetPeerName
        • PR_GetProtoByName
        • PR_GetProtoByNumber
        • PR_GetRandomNoise
        • PR_GetSocketOption
        • PR_GetSockName
        • PR_GetSpecialFD
        • PR_GetThreadPriority
        • PR_GetThreadPrivate
        • PR_GetThreadScope
        • PR_GetUniqueIdentity
        • PR_GMTParameters
        • PR_htonl
        • PR_htons
        • PR_IMPLEMENT
        • PR_ImplodeTime
        • PR_ImportFileMapFromString
        • PR_ImportTCPSocket
        • PR_Init
        • PR_INIT_CLIST
        • PR_INIT_STATIC_CLIST
        • PR_Initialize
        • PR_Initialized
        • PR_InitializeNetAddr
        • PR_INSERT_AFTER
        • PR_INSERT_BEFORE
        • PR_INSERT_LINK
        • PR_Interrupt
        • PR_IntervalNow
        • PR_IntervalToMicroseconds
        • PR_IntervalToMilliseconds
        • PR_IntervalToSeconds
        • PR_JoinJob
        • PR_JoinThread
        • PR_JoinThreadPool
        • PR_LIST_HEAD
        • PR_LIST_TAIL
        • PR_Listen
        • PR_LoadLibrary
        • PR_LocalTimeParameters
        • PR_Lock
        • PR_MALLOC
        • PR_MemMap
        • PR_MicrosecondsToInterval
        • PR_MillisecondsToInterval
        • PR_MkDir
        • PR_MSEC_PER_SEC
        • PR_NAME
        • PR_NetAddrToString
        • PR_NETDB_BUF_SIZE
        • PR_NEW
        • PR_NewCondVar
        • PR_NewLock
        • PR_NewMonitor
        • PR_NewPollableEvent
        • PR_NewProcessAttr
        • PR_NewTCPSocket
        • PR_NewThreadPrivateIndex
        • PR_NewUDPSocket
        • PR_NEWZAP
        • PR_NEXT_LINK
        • PR_NormalizeTime
        • PR_Notify
        • PR_NotifyAll
        • PR_NotifyAllCondVar
        • PR_NotifyCondVar
        • PR_Now
        • PR_NSEC_PER_MSEC
        • PR_NSEC_PER_SEC
        • PR_ntohl
        • PR_ntohs
        • PR_Open
        • PR_OpenAnonFileMap
        • PR_OpenDir
        • PR_OpenSemaphore
        • PR_OpenSharedMemory
        • PR_OpenTCPSocket
        • PR_OpenUDPSocket
        • PR_Poll
        • PR_PopIOLayer
        • PR_PostSemaphore
        • PR_PREV_LINK
        • PR_ProcessAttrSetInheritableFileMap
        • PR_ProcessExit
        • PR_PushIOLayer
        • PR_QueueJob
        • PR_QueueJob_Connect
        • PR_QueueJob_Read
        • PR_QueueJob_Timer
        • PR_QueueJob_Write
        • PR_QueueJob_Accept
        • PR_Read
        • PR_ReadDir
        • PR_Realloc
        • PR_Recv
        • PR_RecvFrom
        • PR_REMOVE_AND_INIT_LINK
        • PR_REMOVE_LINK
        • PR_Rename
        • PR_RmDir
        • PR_SecondsToInterval
        • PR_Seek
        • PR_Seek64
        • PR_Send
        • PR_SendTo
        • PR_SetConcurrency
        • PR_SetError
        • PR_SetErrorText
        • PR_SetLibraryPath
        • PR_SetPollableEvent
        • PR_SetSocketOption
        • PR_SetThreadPriority
        • PR_SetThreadPrivate
        • PR_Shutdown
        • PR_ShutdownThreadPool
        • PR_Sleep
        • PR_STATIC_ASSERT
        • PR_StringToNetAddr
        • PR_strtod
        • PR_Sync
        • PR_TicksPerSecond
        • PR_TransmitFile
        • PR_UnblockClockInterrupts
        • PR_UnloadLibrary
        • PR_Unlock
        • PR_MemUnmap
        • PR_USEC_PER_MSEC
        • PR_USEC_PER_SEC
        • PR_VERSION
        • PR_VersionCheck
        • PR_Wait
        • PR_WaitCondVar
        • PR_WaitForPollableEvent
        • PR_WaitSemaphore
        • PR_Write
        • PR_Writev
        • PRAccessHow
        • PRBool
        • PRCallOnceFN
        • PRCallOnceType
        • PRCList
        • PRCondVar
        • PRDescIdentity
        • PRDir
        • PRErrorCode
        • PRExplodedTime
        • PRFileDesc
        • PRFileInfo
        • PRFileInfo64
        • PRFileMap
        • PRFilePrivate
        • PRFileType
        • PRFloat64
        • PRHostEnt
        • PRInt16
        • PRInt32
        • PRInt64
        • PRInt8
        • PRIntervalTime
        • PRIntn
        • PRIOMethods
        • PRIPv6Addr
        • PRJob
        • PRJobFn
        • PRJobIoDesc
        • PRLibrary
        • PRLinger
        • PRLock
        • PR_NewLogModule
        • PRLogModuleLevel
        • PRMcastRequest
        • PRMonitor
        • PRNetAddr
        • Process Initialization
        • Process Management And Interprocess Communication
        • PRPackedBool
        • PRPrimordialFn
        • PRProcess
        • PRProcessAttr
        • PRProtoEnt
        • PRPtrdiff
        • PRSeekWhence
        • PRSize
        • PRSocketOptionData
        • PRSockOption
        • PRStaticLinkTable
        • PRStatus
        • PRThread
        • PRThreadPool
        • PRThreadPriority
        • PRThreadPrivateDTOR
        • PRThreadScope
        • PRThreadStack
        • PRThreadState
        • PRThreadType
        • PRTime
        • PRTimeParameters
        • PRTimeParamFn
        • PRUint16
        • PRUint32
        • PRUint64
        • PRUint8
        • PRUintn
        • PRUnichar
        • PRUptrdiff
        • Random Number Generator
        • String Operations
        • Thread Pool Types
        • Thread Pool Functions
        • Threading Types and Constants
        • Threading Functions
  • Network Security Services (NSS)
  • Web Security Checks in Gecko

The Firefox Build System

  • Mach
  • Pushing to Try
  • Build System
  • Firefox CI and Taskgraph
  • Managing Documentation
  • Vendoring Third Party Components

Testing & Test Infrastructure

  • Automated Testing
  • Understanding Treeherder Results
  • Sheriffed intermittent failures
  • Turning on Firefox tests for a new configuration
  • Avoiding intermittent tests
  • Debugging Intermittent Test Failures
  • Testing Policy
  • Configuration Changes
  • Browser chrome mochitests
  • Chrome Tests
  • geckodriver
  • Test Verification
  • WebRender Tests
  • Mochitest
  • XPCShell tests
  • TPS
  • web-platform-tests
  • GTest
  • Fuzzing
  • Sanitizer
  • Performance Testing
  • Code coverage
  • Testing & Debugging Rust Code

AI Agent Tools

  • AI Agent Tools for Firefox Development

Releases & Updates

  • Mozilla Update Infrastructure
  • Watershed Updates
  • Desupport Updates
  • Update Verify

Localization & Internationalization

  • Internationalization
  • Localization

Firefox and Python

  • mozbase
  • Using third-party Python packages

Metrics Collected in Firefox

  • Firefox metrics
Firefox Source Docs
  • NSPR
  • NSPR listing
  • Creating a cookie log
  • Report an issue / View page source

Creating a cookie log

Creating a cookie log is often necessary to troubleshoot problems with Firefox’s cookie handling. If you are reading this, you have probably been directed here from a bug report. Please follow the instructions below to run Firefox with cookie logging enabled.

Enabling Cookie Logging

Windows

Open a command prompt (this is under Programs or Programs/Accessories in normal installations of Windows).

  1. Change to your Firefox directory (usually C:Program FilesMozilla Firefox)

  2. Type “set NSPR_LOG_FILE=C:tempcookie-log.txt”, enter

  3. Type “set NSPR_LOG_MODULES=cookie:4” and press Enter

  4. Run Firefox by typing “firefox.exe” and pressing Enter.

Linux

Start a command shell (these instructions are for bash, if you use something else, you probably know how to modify these instructions already).

  1. Change to the installation directory for Firefox.

  2. Type “export NSPR_LOG_FILE=~/cookie-log.txt” and press Enter.

  3. Type “export NSPR_LOG_MODULES=cookie:4” and press Enter.

  4. Run Firefox by typing “./firefox” and pressing Enter

macOS

Open Terminal.app, which is located in the /Applications/Utilities folder (these instructions are for bash, the default shell in macOS 10.3 and higher; if you use something else, you probably know how to modify these instructions already).

  1. Change to the installation directory for Firefox, e.g. type “cd /Applications/Firefox.app/Contents/MacOS” and press Return.

  2. Type “export NSPR_LOG_FILE=~/Desktop/cookie-log.txt” and press Return.

  3. Type “export NSPR_LOG_MODULES=cookie:4” and press Return.

  4. Run Firefox by typing “./firefox” and pressing Return (note that Firefox will launch behind windows for other applications).

Creating the Log

Now that you have Firefox running with logging enabled, please try to replicate the bug using the steps to reproduce from the bug report. Once you have reproduced the bug, shut down Firefox. Close out of the command prompt/shell/Terminal, and then launch Firefox normally. Finally, attach the cookie-log.txt file to the bug where it was requested (by clicking on Create New Attachment). It should be in C:temp on Windows, your home directory on Linux, or the Desktop on Mac OS X.

Thanks for helping us make Firefox better!

Previous Next

Built with Sphinx using a theme provided by Read the Docs.