summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autocomplete/autocomplete_edit.cc
Commit message (Collapse)AuthorAgeFilesLines
* Omnibox: Add histogram to count omnibox eventsmpearson@chromium.org2012-06-131-0/+1
| | | | | | | | | | | | Adds a non-UMA histogram for the number of omnibox events. This should be the number of events recorded in OmniboxEventProto (in the proto buffer logging pipeline) or as the UI Element Event of type autocomplete (in the old XML logging pipeline). BUG= TEST=about:histograms Review URL: https://chromiumcodereview.appspot.com/10540143 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141978 0039d316-1c4b-4281-b951-d872f2087c98
* Make AutocompleteClassifier a ProfileKeyedService.pkasting@chromium.org2012-06-121-5/+7
| | | | | | | | | | This also cleans up some usage of TemplateURLServiceFactory, especially in order to remove knowledge of TemplateURLService[Factory] from TestingProfile. The changes for this parallel some implementation details for the AutocompleteClassifierFactory. BUG=112557 TEST=none Review URL: https://chromiumcodereview.appspot.com/10532096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141580 0039d316-1c4b-4281-b951-d872f2087c98
* Don't cancel instant if renderer is clicked during IME composition.falken@chromium.org2012-06-111-1/+6
| | | | | | | | | | | | | | | This fixes the bug on Linux and Windows, but not on Mac. BUG=95397 TEST=enable instant. compose in an IME but don't commit, wait for instant to run, then click a link in the results. verify the link is navigated to as expected. Review URL: https://chromiumcodereview.appspot.com/10540046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141392 0039d316-1c4b-4281-b951-d872f2087c98
* TabContentsWrapper -> TabContents, part 4.avi@chromium.org2012-06-081-4/+4
| | | | | | | | | | | | Autocomplete. BUG=131026 TEST=no change Review URL: https://chromiumcodereview.appspot.com/10533046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141137 0039d316-1c4b-4281-b951-d872f2087c98
* Don't cache tab_contents.sreeram@chromium.org2012-05-291-12/+5
| | | | | | | | | | | | | I think it's safer to always ask for the current tab_contents from the Browser, to avoid any potential issues with accessing a dangling tab_contents_ (and to avoid having to think deeply and reason about these cases). BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10454047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@139364 0039d316-1c4b-4281-b951-d872f2087c98
* Extension/App Omnibox provider cleanupmihaip@chromium.org2012-05-251-1/+2
| | | | | | | | | | | | | | | | | - Allow platform apps to be launched (they don't really have a launch URL) - Don't display launch URLs for platform apps or packaged apps (they're chrome-extension:// URLs that we don't show in the omnibox once loaded) - Move LaunchAppFromOmnibox from omnibox_api.cc to extension_app_provider.cc since it's related to the Omnibox API, but is used on matches given by the provider. BUG=129494 R=pkasting@chromium.org Review URL: https://chromiumcodereview.appspot.com/10436014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@138946 0039d316-1c4b-4281-b951-d872f2087c98
* Adds per-provider information to omnibox UMA logs.mpearson@chromium.org2012-05-151-0/+1
| | | | | | | | | | | Adds a fairly general structure to omnibox logs that can be used to pass information (that's not per-result information) from providers to the UMA logs. Right now it's only used to pass whether the asynchronous pass of a provider has finished, but it will probably be used for other things in the future. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/10380007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137288 0039d316-1c4b-4281-b951-d872f2087c98
* Refactoring AutocompleteActionPredictor Database.shishir@chromium.org2012-05-101-1/+4
| | | | | | | | | | BUG= TEST=Same as before Review URL: https://chromiumcodereview.appspot.com/10380041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136439 0039d316-1c4b-4281-b951-d872f2087c98
* Make GoogleURLTracker a profile-keyed service.pkasting@chromium.org2012-05-091-1/+1
| | | | | | | | | | | | The original multi-profile work made this object use the system request context, which meant it never sent cookies to searchdomaincheck. This is bad because these are important to determining the correct domain to reply with. Instead, there should be a different instance per-profile, and these instances should use the standard Profile-scoped cookie stores, so we send the relevant google.com cookies. BUG=106086 TEST=Requests to searchdomaincheck should send cookies. Review URL: https://chromiumcodereview.appspot.com/10377054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135959 0039d316-1c4b-4281-b951-d872f2087c98
* Now that TemplateURLs are guaranteed to have a unique, non-empty keyword, ↵pkasting@chromium.org2012-05-081-4/+4
| | | | | | | | | | | | | | | | replace AutocompleteMatch's TemplateURL* with a std::string |keyword_|. This has two benefits: * It's safer in general, because the pointer can't be deleted out from under us. Users inherently have to recheck the TemplateURL* they get via the keyword each time they re-fetch it. * It allows the SearchProvider to stop keeping copied TemplateURLs for the default and keyword providers (in an attempt to mitigate the above problem) and instead just keep their keywords. This will also help in removing the TemplateURL copy constructor in a later patch. Note that there already was a |keyword_| field on AutocompleteMatch, so to make this change we have to expand its meaning a bit to cover the scenarios where before we would have had a |template_url_| but not a keyword. Code that cares about this distinction has already been migrated to using functions like GetKeywordUIState() instead of checking the member directly so this isn't terribly invasive. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10382066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135905 0039d316-1c4b-4281-b951-d872f2087c98
* Remove RLZ stats that are not needed anymore.pastarmovj@chromium.org2012-05-041-5/+1
| | | | | | | | | | | | | The code that this stats used to track (rather unsuccessfully) has long since then been rewritten so the best thing to do is to get rid of thsi dead stale code. BUG=none TEST=none Review URL: http://codereview.chromium.org/10361004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135312 0039d316-1c4b-4281-b951-d872f2087c98
* Omnibox: Add logging of whether the user just deleted text from the omniboxmpearson@chromium.org2012-05-031-0/+1
| | | | | | | | | | | | | | For UMA opted-in users, this adds a new field to the omnibox event record that's uploaded when the user uses the omnibox. In particular, it records a simple boolean of whether the user just deleted text in the omnibox before accepting a suggestion. Basically, was the last key in the omnibox a backspace? This change only adds the field to the protocol buffer upload format, not the XML format. If I decide later I want to add it to the XML format, I'll do it in another changelist. BUG= TEST=by hand, with VLOG(1) lines in autocomplete_edit.cc Review URL: http://codereview.chromium.org/10337005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@135196 0039d316-1c4b-4281-b951-d872f2087c98
* Moving and renaming the NetworkActionPredictor into chrome/browser/predictorsshishir@chromium.org2012-05-021-25/+24
| | | | | | | | | | BUG= TEST=Same as before since this is just a move and renaming. Review URL: http://codereview.chromium.org/9610006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134865 0039d316-1c4b-4281-b951-d872f2087c98
* content: Move kStandardSchemeSeparator into content namespace.tfarina@chromium.org2012-05-021-1/+1
| | | | | | | | | | BUG=98716 R=jam@chromium.org TBR=willchan@chromium.org,sky@chromium.org Review URL: https://chromiumcodereview.appspot.com/10261003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134843 0039d316-1c4b-4281-b951-d872f2087c98
* Omnibox: Add logging of what type of page was displayed when it's usedmpearson@chromium.org2012-05-011-0/+19
| | | | | | | | | | | | | | For UMA opted-in users, this adds a new field to the omnibox event record that's uploaded when the user uses the omnibox. In particular, it records a simple enum of what type of page the user was looking at, such as a generic web page or the new tab page. This change only adds the field to the protocol buffer upload format, not the XML format. If I decide later I want to add it to the XML format, I'll do it in another changelist. BUG= TEST=using VLOG(1) of what would be uploaded Review URL: http://codereview.chromium.org/10273019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134824 0039d316-1c4b-4281-b951-d872f2087c98
* Moving extensions inside chrome/browser/extensions/vabr@chromium.org2012-05-011-3/+3
| | | | | | | | | | | | | | Two steps: 1. moving chrome/browser/extensions/extension_omnibox* to a new directory chrome/browser/extensions/api/omnibox, along with dropping the prefix "extension_" 2. putting the classes, structs and functions from [extension_]omnibox_api.h to namespace extensions BUG=125622 TEST=N/A Review URL: http://codereview.chromium.org/10265022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134794 0039d316-1c4b-4281-b951-d872f2087c98
* Remove const qualifiers on "TemplateURL*" in many TemplateURLService APIs. ↵pkasting@chromium.org2012-04-271-1/+1
| | | | | | | | | | | | | | This has followon effects in many other places, most noticeably ConfirmAddSearchProvider(), which seems to be declared in like 20 files :P This removes most const_cast<>()s and makes the TemplateURLService APIs a lot more accurate about when the URLs they take or return can be modified. Note that because most of TemplateURL is now immutable except to friends, this doesn't actually give callers dangerous latitude in mucking with TemplateURLs. This does add a few const_cast<>()s related to keyword autogeneration. Keyword autogeneration will die soon so I didn't care about finding ways around these. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/10209018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134337 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r130431: Move the URL string from TemplateURLRef onto the owning ↵pkasting@chromium.org2012-04-041-5/+2
| | | | | | | | | | | | | | | TemplateURL. This will make it easier to move the data members of TemplateURL into a new class later. This changes the accessors for TemplateURL's TemplateURLRefs. There are now separate accessors for the URLs as strings and as TemplateURLRefs, and the latter have changed to returning a const ref, meaning they no longer return NULL when the corresponding URL string is empty. This makes a number of callers clearer. This differs from r130431 only by including changes to fix the compile on official builds, which enable some #ifdefs that guarded additional points that needed migrating. BUG=none TEST=none TBR=sky,mnissler,atwilson Review URL: https://chromiumcodereview.appspot.com/9960016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130660 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 130431 - Move the URL string from TemplateURLRef onto the owning ↵dbeam@chromium.org2012-04-041-1/+2
| | | | | | | | | | | | | | | TemplateURL. This will make it easier to move the data members of TemplateURL into a new class later. This changes the accessors for TemplateURL's TemplateURLRefs. There are now separate accessors for the URLs as strings and as TemplateURLRefs, and the latter have changed to returning a const ref, meaning they no longer return NULL when the corresponding URL string is empty. This makes a number of callers clearer. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9968016 TBR=pkasting@chromium.org Review URL: https://chromiumcodereview.appspot.com/9965143 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130566 0039d316-1c4b-4281-b951-d872f2087c98
* Move the URL string from TemplateURLRef onto the owning TemplateURL. This ↵pkasting@chromium.org2012-04-031-2/+1
| | | | | | | | | | | | will make it easier to move the data members of TemplateURL into a new class later. This changes the accessors for TemplateURL's TemplateURLRefs. There are now separate accessors for the URLs as strings and as TemplateURLRefs, and the latter have changed to returning a const ref, meaning they no longer return NULL when the corresponding URL string is empty. This makes a number of callers clearer. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9968016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@130431 0039d316-1c4b-4281-b951-d872f2087c98
* Misc. small cleanups to minimize TemplateURL refactoring diffs:pkasting@chromium.org2012-03-221-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Non-functional changes: * 0 -> TemplateURLRef::NO_SUGGESTIONS_AVAILABLE * GURL x = GURL(...) -> GURL x(...) * Infobar -> InfoBar * AllSources -> AllBrowserContextsAndSources * Pass a Profile* to SearchProviderInstallData, which it will need for more purposes once UIThreadSearchTermsData takes a Profile* * Add/modify comments * "" -> std::string() * Other trivial changes to minimize diffs Functional changes: * TemplateURLFetcher::RequestDelegate::AddSearchProvider() no longer clears the keyword for a newly-added, explicitly-requested TemplateURL that conflicts with a non-replaceable keyword. This means the conflicting keyword will appear in the dialog box and the box will indicate a conflict. This is mostly to avoid giving a TemplateURL an empty keyword, which will later be made illegal. * TemplateURLFetcher::ScheduleDownload() now expects the provided keyword to be non-NULL for autodetected cases (which was always true already) and ignores the keyword for explicit cases (which only matters to tests, as the actual browser code always passed an empty keyword here anyway). * TemplateURLService::CanReplaceKeyword() now always sets its outparam. This prevents any possible use-without-set on the caller side. * Properly order (expected, actual) * ASSERT -> EXPECT * Construct the TemplateURL for TemplateURLTableModel::Add() in that function rather than the caller. This will make it easier to change TemplateURLs to require a Profile* later. * Check all fields at the end of WebDatabaseMigrationTest.MigrateVersion27ToCurrent BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9811022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128270 0039d316-1c4b-4281-b951-d872f2087c98
* Misc. autocomplete cleanup: pkasting@chromium.org2012-03-131-63/+55
| | | | | | | | | | | | | | * Add or rename some functions on AutocompleteMatch for getting keyword-related state. One of these in particular (GetTemplateURL()) currently has a trivial implementation, but that will change in the future. * Change OpenMatch() to not take a final keyword argument. After some study, I don't think this argument is important. Basically, we use it to look up the appropriate TemplateURL* for the match; but the match already has a TemplateURL* as a member that we can just use directly. * Simplify OpenMatch() a bit by making it explicitly rely on the fact that we only set TemplateURLs for "GENERATED" and "KEYWORD" transition types. * Fix a bug (introduced by the NetworkActionPredictor code) that caused the whole autocomplete backing system to spin up immediately during startup. * A few other odds and ends, some aiming at minimizing future diffs due to TemplateURL refactoring. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9695026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126477 0039d316-1c4b-4281-b951-d872f2087c98
* Move Render(View|Widget)Host and associated classes to content namespace.joi@chromium.org2012-03-071-1/+2
| | | | | | | | | TBR=jam@chromium.org BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9600036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125388 0039d316-1c4b-4281-b951-d872f2087c98
* Move RenderWidgetHost and RenderViewHost interfaces to their own files.joi@chromium.org2012-03-061-1/+1
| | | | | | | | | | | This also finishes breaking the Chrome dependency on RenderWidgetHostImpl and RenderViewHostImpl. TBR=jam@chromium.org BUG=98716 Review URL: https://chromiumcodereview.appspot.com/9599011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125166 0039d316-1c4b-4281-b951-d872f2087c98
* Extract minimal RenderViewHost interface for embedders, leavingjoi@chromium.org2012-03-051-1/+1
| | | | | | | | | | | | RenderViewHostImpl for content. TBR=darin@chromium.org BUG=98716 Review URL: http://codereview.chromium.org/9473001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124941 0039d316-1c4b-4281-b951-d872f2087c98
* Fix keyword search erroneously not triggering in two obscure cases:pkasting@chromium.org2012-03-021-39/+44
| | | | | | | | | | | | | | | | | (1) User types something that doesn't look at all like a keyword (e.g. "go om") and gets a non-default dropdown result that does look like a keyword ("google.com"). Arrowing down to this result, the user then presses space after the keyword name. (2) Similar to the case above, but this time the non-default result in question looks like a keyword + some more text, with no whitespace between ("google.comxxx"). The user arrows to this result, arrows back to just after the keyword, and presses space. Item (2) was happening because ShouldAllowExactKeywordMatch() (which has now been renamed) was always looking at the old |user_text_| as the "before change" text, which was wrong if there was temporary text, since the user text was not visible at that point. Fixed by getting the actual displayed text in that case. Item (1) was happening for similar reasons, but in MaybeAcceptKeywordBySpace() instead. This could have been fixed by the same change as above. However, I elected to change this function to look at the |keyword_| instead of the previously-displayed text, as in https://chromiumcodereview.appspot.com/9289034/ patch set 1. Not only is this slightly simpler, it is more robust against future changes. Let's say that someday we want to allow a provider to show a keyword hint for keyword "foobar" on input of "foo ". By checking against |keyword_| in this function, we ensure that in that future case, the space after "foo" will never trigger keyword search mode for "foobar". (If we ever bother to fix our bugs with keywords containing spaces, this might apply today for those as well.) I also tried to change the naming and comments of some things for clarity. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9570064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124745 0039d316-1c4b-4281-b951-d872f2087c98
* Enabled pressing TAB to traverse through the Omnibox results, removed moving ↵aaron.randolph@gmail.com2012-02-291-19/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | the caret to the end of the line with TAB, and filtered out redundant URLs. This adds the ability to move through Omnibox result matches using TAB in addition to the arrow keys. To enable this, pressing TAB to move the caret to the end of the line was removed and the keyword hint/shortcut logic has been modified. The Omnibox popup now shows keyword markers on the right side of matches that have associated keywords (represented by a right arrow). When this kind of match is selected, and the keyword is accepted, the match changes appearance by animating in the associated keyword match from the right to display the "Search X for <>" message. If multiple matches have the same keyword then only the most relevant match will display the keyword marker and hint. Pressing TAB while a keyword hint is shown will enter keyword mode in place; the results will no longer change when keyword mode is entered. Additionally, substituting keyword provider matches will only be shown if a keyword substitution is available. Finally, results with redundant destination URLs (e.g., "foo.com", "www.foo.com") will have the less relevant URLs filtered out. This also addresses some GTK omnibox browsertest flakiness; see bug 112041. See original change review at http://codereview.chromium.org/6731036 Contributed by aaron.randolph@gmail.com BUG=57748,76278,77662,80934,84420 TEST=Press TAB to move the selection down the list of results, SHIFT+TAB to move up. Review URL: http://codereview.chromium.org/9309099 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124125 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 122412 - Enabled pressing TAB to traverse through the Omnibox resultsthestig@chromium.org2012-02-171-53/+19
| | | | | | | | | | | | | | | Landing patch for aaron.randolph: http://codereview.chromium.org/9309099/ BUG=57748, 76278, 77662, 80934, 84420 TEST= Review URL: https://chromiumcodereview.appspot.com/9417032 TBR=sail@chromium.org Review URL: https://chromiumcodereview.appspot.com/9419043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122472 0039d316-1c4b-4281-b951-d872f2087c98
* Enabled pressing TAB to traverse through the Omnibox resultssail@chromium.org2012-02-171-19/+53
| | | | | | | | | | | | Landing patch for aaron.randolph: http://codereview.chromium.org/9309099/ BUG=57748, 76278, 77662, 80934, 84420 TEST= Review URL: https://chromiumcodereview.appspot.com/9417032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122412 0039d316-1c4b-4281-b951-d872f2087c98
* Verifies that the AutocompleteEditModel goes through the right mpearson@chromium.org2012-02-091-13/+4
| | | | | | | | | | | | | intermediate UI calls before seeing results / opening a suggestion. BUG= TEST= Review URL: http://codereview.chromium.org/9358036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121143 0039d316-1c4b-4281-b951-d872f2087c98
* Help: Implement the initial version of the cross-platform help/about page.jhawkins@chromium.org2012-02-041-2/+2
| | | | | | | | | | BUG=110506 TEST=none R=csilv Review URL: https://chromiumcodereview.appspot.com/9320056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120497 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 120448 - Revert 120018 - Revert 120005 - Enabled pressing TAB to ↵pkasting@chromium.org2012-02-041-53/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | traverse through the Omnibox results, removed moving the caret to the end of the line with TAB, and filtered out redundant URLs. This adds the ability to move through Omnibox result matches using TAB in addition to the arrow keys. To enable this, pressing TAB to move the caret to the end of the line was removed and the keyword hint/shortcut logic has been modified. The Omnibox popup now shows keyword markers on the right side of matches that have associated keywords (represented by a right arrow). When this kind of match is selected, and the keyword is accepted, the match changes appearance by animating in the associated keyword match from the right to display the "Search X for <>" message. If multiple matches have the same keyword then only the most relevant match will display the keyword marker and hint. Pressing TAB while a keyword hint is shown will enter keyword mode in place; the results will no longer change when keyword mode is entered. Additionally, substituting keyword provider matches will only be shown if a keyword substitution is available. Finally, results with redundant destination URLs (e.g., "foo.com", "www.foo.com") will have the less relevant URLs filtered out. This also addresses some GTK omnibox browsertest flakiness; see bug 112041. Contributed by aaron.randolph@gmail.com BUG=57748,76278,77662,80934,84420 TEST=Press TAB to move the selection down the list of results, SHIFT+TAB to move up. Review URL: http://codereview.chromium.org/6731036 TBR=aaron.randolph@gmail.com Review URL: https://chromiumcodereview.appspot.com/9310017 TBR=kinuko@chromium.org Review URL: https://chromiumcodereview.appspot.com/9309097 TBR=pkasting@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120457 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 120018 - Revert 120005 - Enabled pressing TAB to traverse through the ↵pkasting@chromium.org2012-02-041-19/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Omnibox results, removed moving the caret to the end of the line with TAB, and filtered out redundant URLs. This adds the ability to move through Omnibox result matches using TAB in addition to the arrow keys. To enable this, pressing TAB to move the caret to the end of the line was removed and the keyword hint/shortcut logic has been modified. The Omnibox popup now shows keyword markers on the right side of matches that have associated keywords (represented by a right arrow). When this kind of match is selected, and the keyword is accepted, the match changes appearance by animating in the associated keyword match from the right to display the "Search X for <>" message. If multiple matches have the same keyword then only the most relevant match will display the keyword marker and hint. Pressing TAB while a keyword hint is shown will enter keyword mode in place; the results will no longer change when keyword mode is entered. Additionally, substituting keyword provider matches will only be shown if a keyword substitution is available. Finally, results with redundant destination URLs (e.g., "foo.com", "www.foo.com") will have the less relevant URLs filtered out. This also addresses some GTK omnibox browsertest flakiness; see bug 112041. Contributed by aaron.randolph@gmail.com BUG=57748,76278,77662,80934,84420 TEST=Press TAB to move the selection down the list of results, SHIFT+TAB to move up. Review URL: http://codereview.chromium.org/6731036 TBR=aaron.randolph@gmail.com Review URL: https://chromiumcodereview.appspot.com/9310017 TBR=kinuko@chromium.org Review URL: https://chromiumcodereview.appspot.com/9309097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120448 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 120005 - Enabled pressing TAB to traverse through the Omnibox ↵kinuko@chromium.org2012-02-011-53/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | results, removed moving the caret to the end of the line with TAB, and filtered out redundant URLs. This adds the ability to move through Omnibox result matches using TAB in addition to the arrow keys. To enable this, pressing TAB to move the caret to the end of the line was removed and the keyword hint/shortcut logic has been modified. The Omnibox popup now shows keyword markers on the right side of matches that have associated keywords (represented by a right arrow). When this kind of match is selected, and the keyword is accepted, the match changes appearance by animating in the associated keyword match from the right to display the "Search X for <>" message. If multiple matches have the same keyword then only the most relevant match will display the keyword marker and hint. Pressing TAB while a keyword hint is shown will enter keyword mode in place; the results will no longer change when keyword mode is entered. Additionally, substituting keyword provider matches will only be shown if a keyword substitution is available. Finally, results with redundant destination URLs (e.g., "foo.com", "www.foo.com") will have the less relevant URLs filtered out. This also addresses some GTK omnibox browsertest flakiness; see bug 112041. Contributed by aaron.randolph@gmail.com BUG=57748,76278,77662,80934,84420 TEST=Press TAB to move the selection down the list of results, SHIFT+TAB to move up. Review URL: http://codereview.chromium.org/6731036 TBR=aaron.randolph@gmail.com Review URL: https://chromiumcodereview.appspot.com/9310017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120018 0039d316-1c4b-4281-b951-d872f2087c98
* Enabled pressing TAB to traverse through the Omnibox results, removed moving ↵aaron.randolph@gmail.com2012-02-011-19/+53
| | | | | | | | | | | | | | | | | | | | | | | | the caret to the end of the line with TAB, and filtered out redundant URLs. This adds the ability to move through Omnibox result matches using TAB in addition to the arrow keys. To enable this, pressing TAB to move the caret to the end of the line was removed and the keyword hint/shortcut logic has been modified. The Omnibox popup now shows keyword markers on the right side of matches that have associated keywords (represented by a right arrow). When this kind of match is selected, and the keyword is accepted, the match changes appearance by animating in the associated keyword match from the right to display the "Search X for <>" message. If multiple matches have the same keyword then only the most relevant match will display the keyword marker and hint. Pressing TAB while a keyword hint is shown will enter keyword mode in place; the results will no longer change when keyword mode is entered. Additionally, substituting keyword provider matches will only be shown if a keyword substitution is available. Finally, results with redundant destination URLs (e.g., "foo.com", "www.foo.com") will have the less relevant URLs filtered out. This also addresses some GTK omnibox browsertest flakiness; see bug 112041. Contributed by aaron.randolph@gmail.com BUG=57748,76278,77662,80934,84420 TEST=Press TAB to move the selection down the list of results, SHIFT+TAB to move up. Review URL: http://codereview.chromium.org/6731036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120005 0039d316-1c4b-4281-b951-d872f2087c98
* When UMA logs omnibox events, record omnibox modification time.mpearson@chromium.org2012-01-311-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Precisely, keep track of the time that the user first began modifying text in the omnibox. When the UMA finally selects an omnibox suggestion and this selection is logged (for opted-in / UMA users), record in this log entry the elapsed time since the user began modifying the omnibox. This will be useful to measure changes to the omnibox. In general, omnibox changes should result in less time spent typing in the omnibox / reviewing proferred suggestions. This code works as you'd expect with two caveats: * If the current tab/window loses focus at some point (e.g., the user types, switches tabs, switches back, and types more), the elapsed time only starts from the beginning of the second series of modifications. Nuance to this rule: if a user types in the omnibox, clicks somewhere on the page in a way that doesn't navigate to a new page (but this click will have the effect of closing the omnibox dropdown), then returns to the omnibox and types more, the elapsed time counts from the beginning of the first modification. (Basically, this type of action, where the current tab still remains in focus even if the omnibox itself has gone in and out of focus, calculates elapsed time in a way that makes sense.) * If a user enters text in the omnibox, switches tabs/windows, and then returns to this tab and presses enter without typing more, thereby navigating to the inline suggestion that was originally offered, no omnibox transition event is currently logged. This changelist does not alter this policy. The omnibox event is only logged if the omnibox suggestion dropdown is open with the transition happens. In this case, when the user leaves the tab, the dropdown closes. When the user returns, the dropdown doesn't re-open unless the user types something new. I believe this changelist is fine/useful as-is. I don't like the first caveat mentioned above but I'm inclined to submit this as-is and fix that special case in a later changelist (if I decided it's worth bothering). I prevent not to postpone this changelist on this subtlety. Regarding the second caveat, that's orthogonal to this changelist and should be fixed in a different change (if indeed we desire to fix it--I'll have to look at everyone who is observing omnibox transition events). I will submit this changelist only *after* the server processing UMA uploads is running code that can handle the XML format with this new attribute. Chrome privacy folks have okayed this change. Tested by hand (on linux). I looked at normal use and tested in particular: * Startup. The initial blank window with an empty omnibox doesn't start the timing until the user types something into the box. * Highlight all in omnibox. Then type. The timer starts only when you begin typing, not at the highlight stage. * Start typing. Press escape (which reverts omnibox to the current page's URL), then type more. The timer starts when the second series of typing begins. * Type in omnibox. Click on a link on the page (this causes a page transition and the omnibox to display the new page's URL). Modify the omnibox. The timer starts when the second series of typing begins; the first modification does not count. * Alt-enter (to open an omnibox suggestion in a new foreground tab) gets emitted as normal, with appropriate timing. * If you go back to the tab that you used to open the background tab, its omnibox shows the current page's URL. If you start typing here, the starting time is from this second set of typing, not the first use in this tab that ended with opening a suggestion in a new tab. * Open a new tab. The timer only starts when you start typing in the omnibox, not when the tab gets opened. * Middle-click (to open an omnibox suggestion in a new background tab) gets emitted as normal, with appropriate timing. * After you middle-click a result, the omnibox dropdown stays open on the current tab. If you select something new here, the timing is from the beginning of when you originally started typing. That is, both the results opened from this list of suggestions have the same start time. * After you middle-click a result, you type more (and thus get new suggestions), the timing still starts from the time you originally began modifying the omnibox (i.e., before you opened a new tab in the background). I saw some behavior we may want to change later. These are described in the caveats section above. * Highlight all and press delete. Then type. The timer starts when you press delete, not at the first real character you type. * Type in the omnibox. Switch tabs/windows/whatever. Return and type more. The timing starts from this second batch of typing. I'd think it should start from the first. * If you middle-click a result, then switch windows (i.e., this window or this tab loses focus), the omnibox disappears. If you return to the omnibox and hit return to select whatever inline autocompletion is already in the omnibox, no notify event is emitted. * Likewise, if you type in the omnibox, switch windows or tabs, then return and hit return (the omnibox is closed but populated with original inline suggestion), no notify event is emitted. BUG= TEST= Review URL: https://chromiumcodereview.appspot.com/9241020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119832 0039d316-1c4b-4281-b951-d872f2087c98
* Remove all but the Exact Full Omnibox Prerender algorithm.dominich@chromium.org2012-01-061-4/+2
| | | | | | | | | BUG=106427 Review URL: http://codereview.chromium.org/8801017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116696 0039d316-1c4b-4281-b951-d872f2087c98
* Get rid of a bunch of tab_contents.h includes from chrome. These are all ↵jam@chromium.org2012-01-041-2/+2
| | | | | | | | | trivial changes to use WebContents instead of TabContents. BUG=98716 Review URL: http://codereview.chromium.org/9030032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116392 0039d316-1c4b-4281-b951-d872f2087c98
* Rename TabContents::render_view_host() to GetRenderViewHost and put it into ↵jam@chromium.org2011-12-201-1/+1
| | | | | | | | | the WebContents interface. BUG=98716 Review URL: http://codereview.chromium.org/9007026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115200 0039d316-1c4b-4281-b951-d872f2087c98
* Enable UMA logging of tab IDs for omnibox interactions.mpearson@chromium.org2011-12-191-1/+12
| | | | | | | | | | | | | | | Useful to know how users use omnibox. Testing: There are no tests for autocomplete logging. Rather than add tests in this changelist (they're outside the scope of this), I tested this changelist by hand. It works; the tab_ids are getting set and used as desired. Contributed by mpearson@chromium.org BUG= TEST= Review URL: http://codereview.chromium.org/8599009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114982 0039d316-1c4b-4281-b951-d872f2087c98
* Split UserMetrics into API vs. implementation. Move API to content/public.joi@chromium.org2011-12-141-3/+5
| | | | | | | | | TBR=davemoore@chromium.org BUG=98716 Review URL: http://codereview.chromium.org/8919017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114416 0039d316-1c4b-4281-b951-d872f2087c98
* Profiles: Move NetworkActionPredictor to the ProfileKeyedService framework.erg@chromium.org2011-12-121-3/+5
| | | | | | | | | BUG=77155, 103574 TEST=none Review URL: http://codereview.chromium.org/8872036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114067 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up TCW, make it solely a hub for 1:1 observer/helper objects.avi@chromium.org2011-12-121-0/+1
| | | | | | | | | BUG=105872 TEST=no functional change Review URL: http://codereview.chromium.org/8892011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114017 0039d316-1c4b-4281-b951-d872f2087c98
* Fix reference to potentially NULL TabContentsWrapper.dominich@chromium.org2011-12-021-4/+11
| | | | | | | | | BUG=105689 Review URL: http://codereview.chromium.org/8745016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112705 0039d316-1c4b-4281-b951-d872f2087c98
* Adding a fourth omnibox prerender experiment.dominich@chromium.org2011-11-211-11/+21
| | | | | | | | | | | | | This adds or updates entries in the database for the entire chain of text the user typed. For example, if the user types 'goog' and navigates to google.com, this will add or update database entries for 'go' -> google.com, 'goo' -> google.com and 'goog' -> google.com. BUG= TEST= Review URL: http://codereview.chromium.org/8600004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@111005 0039d316-1c4b-4281-b951-d872f2087c98
* Add database to use as the source of an alternative algorithm for Network ↵dominich@chromium.org2011-11-101-18/+18
| | | | | | | | | | | | Action Prediction BUG=98110 TEST=unit_tests:NetworkActionPredictor*,interactive_ui_tests:OmniboxViewTest* Review URL: http://codereview.chromium.org/8241014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109509 0039d316-1c4b-4281-b951-d872f2087c98
* Prerendered tabs use the same SessionStorage namespace as the tab that ↵cbentzel@chromium.org2011-11-021-2/+6
| | | | | | | | | | | | | triggered the prerender. If the prerendered page is swapped in to a tab which has a different namespace, it will be canceled. BUG=80679 Review URL: http://codereview.chromium.org/8392041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108342 0039d316-1c4b-4281-b951-d872f2087c98
* Make NotificationService an interface in the content namespace, and switch ↵jam@chromium.org2011-10-191-2/+2
| | | | | | | | | callers to use it. Move the implementation to content/browser. Stop creating it in all child processes since it's only used in the browser. BUG=98716 Review URL: http://codereview.chromium.org/8342048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106403 0039d316-1c4b-4281-b951-d872f2087c98
* Move NotificationObserver, NotificationSource, and NotificationDetails to ↵jam@chromium.org2011-10-191-2/+3
| | | | | | | | | | | content/public/browser. This patch got way bigger than I wanted, but once I moved NotificationDetails, I figured I might as well mvoe the others since they're in the same files. In hindsight, I should have converted a subset of files at a time by leaving a using statement in the header. BUG=98716 TBR=joi git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106196 0039d316-1c4b-4281-b951-d872f2087c98
* record UMA histogram for different bookmark launch typesestade@chromium.org2011-10-181-0/+4
| | | | | | | | | | | for now, only record on windows. BUG=97141 TEST=none Review URL: http://codereview.chromium.org/8231035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106023 0039d316-1c4b-4281-b951-d872f2087c98