# Debugging options for the org.eclipse.ui intro.

# Master flag for all org.eclipse.ui.intro plugin debug options.
org.eclipse.ui.intro/debug = true

# Enable logging of information messages in the plugin. By default, info
# messages are not logged. Setting this option to true will enable logging
# trace information messages.
org.eclipse.ui.intro/trace/logInfo = true

# Enable logging of performance messages in the plugin. By default, performance
# messages are not logged. Setting this option to true will enable logging
# trace information messages. (note: enabling info logging does not enable
# this flag.)
org.eclipse.ui.intro/trace/logPerformance = false

# Enable printing the generated HTML to the console.  By default, the HTML
# is not printed.  By setting this option to true, the HTML for each 
# dynamic page will be printed to the console when the page is loaded in the browser.  
org.eclipse.ui.intro/trace/printHTML = false

# Used for testing the non Browser presentation. By default the HTML presentation
# will be used if possible. If this flag is true the Browser presentation will not be used.
org.eclipse.ui.intro/flags/noBrowser= false

# Add extra toolbar buttons to help debugging
org.eclipse.ui.intro/debug/toolbar= false

# Performance flags used by the Performance framework to report failures 
# of specific thresholds.  

# Time to create and display the full Intro view.
# org.eclipse.ui.intro/perf/createView = 1000

# Time needed to switch between Intro standby states.
# org.eclipse.ui.intro/perf/setStandbyState = 300