# See system/core/logcat/event.logtags for a description of the format of this file.

option java_package com.android.browser

# This event is logged when a user adds a new bookmark. This could just be a boolean,
# but if lots of users add the same bookmark it could be a default bookmark on the browser.
# Second parameter is where the bookmark was added from, currently history or bookmarks view.
70103 browser_bookmark_added (url|3), (where|3)

# This event is logged after a page has finished loading. It is sending back the page url,
# and how long it took to load the page. Could maybe also tell the kind of connection (2g, 3g, WiFi)?
70104 browser_page_loaded (url|3), (time|2|3)

# This event is logged when the user navigates to a new page, sending the time spent on the current page.
70105 browser_timeonpage (url|3), (time|2|3)
