Not applicable.
Not applicable.
This invention relates to the field of computer software using web browsers and toolbars.
Current form fill systems require a user to fill in a form, with assistance, field by field. Form fill solutions are limited to a very rigid structure or require that the user take a field by field edit approach to complete an online form. Today, if the user goes to a standard shipping form on a web page and fills the form, the user typically has one choice for a billing address and one choice for a shipping address in some form fill solutions. These may be presented as options based on previously entered user information. In many cases, such choices may not be satisfactory since the shipping address often changes. In some other form fill solutions, the user may have the ability to select multiple choices for addresses but the information cannot be readily changed with speed or minimum effort. A better user experience is needed that provides more flexibility.
In general, users desire to have more flexibility over their web browsing experience. One of the drawbacks of current web experiences involves encountering websites that repeatedly ask the users to enter the same information. Sometimes, the user may type information into a form on a web page only to find the typed data missing after refreshing the page or referring back to another page and then going forward to the current page again. A better experience is needed to alleviate these problems, or reduce them, by providing users with a method that allows users to automatically fill forms, and also enhance their experience by giving users more flexibility in the type of information that may be populated in the form.
The present invention identifies data clusters and fills appropriate fields with user information in a form as a unit. In addition, the present invention provides the user an interface to update selections made to the form. The user may initially populate user information through direct input to a computing device or by retrieving user information from another source. Subsequently, the user information is filled into forms encountered on a web page.
In a first aspect, a method for creating profiles for automatically filling web forms on a web page is provided. The method includes operating, at a computing device, a web browser and a form-fill tool located on a toolbar in communication with the web browser. Upon operation, a user populates, from a data source, data fields in the form-fill tool corresponding to one or more profiles. Subsequently, either a form-fill button associated with the form-fill tool on the toolbar is selected to automatically populate data fields in forms displayed in web pages with data pre-populated and stored in the form-fill tool, or data pre-populated in the form-fill tool is automatically populated into fields in a form without manual intervention. A password is required for data pre-populated in the form-fill tool associated with secure or private information. User-selectable categories corresponding to grouped profiles are displayed. The user-selectable categories contain a listing of profiles to allow the user to select a different profile to change information previously populated in the forms.
In a second aspect, a method for detecting data fields in a form displayed on a web page is provided. The method includes activating a form-fill feature on a toolbar to execute computer software running on computer hardware to detect in the form displayed on the web page user-selectable fields for data input. Computer software is executed to group fields of unique address information, unique credit card information, and unique login and password information appearing in the form. In the form, uniquely identified and group address fields, credit card information fields, and login and password fields are shaded in different colors.
In a final aspect, a method for selecting address, password, and credit card clusters is provided. The method includes operating a web browser to display forms from websites. A toolbar connected to the web browser is operated with selectable buttons. A form-fill button on the toolbar is selected to populate data in forms located in the web browser and to open a drop-down menu with selectable elements.
The present invention is described in detail below with reference to the attached drawing figures, which are incorporated herein by reference, and wherein:
The present invention will be better understood from the detailed description provided below and from the accompanying drawings of various embodiments of the invention, which describe, for example, methods to use a tool and web browser to automatically fill forms with user information. The detailed description and drawings, however, should not be read to limit the invention to the specific embodiments. Rather, these specifics are provided for explanatory purposes that help the invention to be better understood.
FormFill is a tool that provides users an ability to fill data into fields on web pages from information they have previously entered. This information includes a set of profiles such as personal information, addresses, telephone numbers, credit cards, logins and passwords. The tool identifies and fills in fields in web pages with this information.
Having briefly described an overview of the present invention, an exemplary operating environment for the present invention is described below.
Exemplary Operating Environment
Referring to the drawings in general and initially to
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system (BIOS) 133, containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the network interface 170, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in a remote memory storage device. By way of example, and not limitation,
Although many other internal components of the computer 110 are not shown, those of ordinary skill in the art will appreciate that such components and the interconnection are well known. Accordingly, additional details concerning the internal construction of the computer 110 need not be disclosed in connection with the present invention.
When the computer 110 is turned on or reset, the BIOS 133, which is stored in the ROM 131, instructs the processing unit 120 to load the operating system, or necessary portion thereof, from the hard disk drive 141 into the RAM 132. Once the copied portion of the operating system, designated as operating system 144, is loaded in RAM 132, the processing unit 120 executes the operating system code and causes the visual elements associated with the user interface of the operating system 134 to be displayed on the monitor 191. Typically, when an application program 145 is opened by a user, the program code and relevant data are read from the hard disk drive 141 and the necessary portions are copied into RAM 132, the copied portion represented herein by reference numeral 135.
The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between the various steps herein disclosed unless and except when the order of individual steps is explicitly described.
Automatic Form Fill
With the present invention, the first time that a tool detects a form with one or more “fillable” fields it presents a user with a first-run dialog. This dialog informs the user about the tool, and has a button to launch a FormFill wizard. The wizard gives the user an opportunity to enter personal information, credit card information, and login and password information. This information is stored in the tool for subsequent use. The first-run dialog may only be shown once in order to establish initial information with the user. For subsequent data entry, the user may input and change data in an options section of the tool. The user may access options from a drop-down menu next to a “FormFill” button on a toolbar, or from options of other components. The tool has several option pages of which several shall be discussed below.
In
In
On the left side of the window in FormFill options 220, a folder list 222 provides the user with potential access to other data. Folder List 222 contains several entries which may be selected to bring up windows of other information to the user. In the current depiction, folder list 222 contains a form fill heading, Form Fill 224, with subheadings for addresses, credit cards, and sign-in information. By selecting Form Fill 224 in folder list 222, corresponding information to the right of folder list 222 is illustrated in FormFill options 220. The user may view at all times the current status of the tool in this window. The user may select to turn on or turn off the tool in selection control 226. If this box is left unchecked, the tool will turn off and not operate on forms that become available when accessing web pages.
In addition to selection control 226, additional general information may be provided to the user for flexibility and control. The user may select to have address information automatically filled in a form through selection control 228. When selected, this option will fill out the user's address information that has been populated in the tool. Otherwise, when not selected, the user may manually select the “Form Fill” button located on a toolbar in order for data to be filled into the form. The user may select to have sign-in or login and password information entered automatically by the tool as indicated in selection control 230. The user may select to automatically save this website sign-in information as indicated in selection control 232. This option alleviates the user from retyping information on the web page when browsing within a domain. The user also has the option to select to have text overwritten in selection control 234.
Another aspect of FormFill options 220 allows the user to establish a password to access information pertaining to secure information such as credit card information, sign-in information, and login and password information as indicated by create password control 236. The user uses control 236 to create the password to be used when accessing sensitive or private information. This password is required whenever sensitive or private information is used, accessed, or modified. In addition, the password may be retrieved from a computer program or authentication system, or may be re-used from being previously entered.
Now referring to
By highlighting work address 260 in address options 250, the user's information is detailed below in an address information display 262. One may appreciate the flexibility that this embodiment provides in allowing the user to enter multiple addresses for use with the tool. By having multiple addresses stored in the tool, the user has flexibility in selecting which addresses the tool uses to populate forms that appear on web pages. If the user desires to change address information, modifications may be made in the available fields in address information 260.
Now turning to
In a credit card information box 350, details of the visa 340 entry are shown. When visa 340 is selected in box 330, the details are provided below box 330 showing the information that has been populated in the tool. In this embodiment, the name on the credit card, type of credit card, credit card number, expiration date, and security code are provided in credit card information 350 to indicate the information that has been stored. One may appreciate that the information provided here is illustrative and that different data may be configured to provide a different set of credit card data under credit card information 350.
When data is shown in credit card information 350, it may be modified and saved as a new entry in box 350 or saved as an update to an existing entry, like visa 340.
One may appreciate the flexibility that this embodiment offers in allowing the user to enter multiple credit cards for use with the tool. By having multiple credit cards stored in the tool, the user has flexibility in selecting which credit card to use to populate forms that appear on web pages. If the user desires to change credit card information, modifications may be made in the available fields in credit card information 350.
In
By selecting sign-in 420, a box 430 is shown to provide a list of domains that may be accessed or may require passwords for access to information in the domains. Box 430 contains a list of saved domains relating to login and password information populated by the user. The tool allows the user to automatically populate fields requiring login and password information from the domains that are encountered in the web page. The tool also allows for login and password information stored in the tool to be re-used without prompting the user to provide the same again.
When one of the entries in box 430 is selected, details about the stored login and password information are provided in sign-in details display 440. Here, GHI.com is selected and a user name and password are provided in sign-in details display 440. The user may view, change, or delete information shown in sign-in details 440. New entries may be added to box 430 giving the user flexibility in choosing which sign-in data to use for a particular web site access.
As shown above, folder list 222 is illustrated with similar information down a left-side of each window in the several figures. One may appreciate that different information may be shown in any location in the same window. More particularly, by selecting different subheadings located in the folder list 222, the user may access different pages of data within the same window for the present invention. However, other embodiments of the present invention may be implemented allowing new windows to open when accessing data.
For the embodiments shown in
Prior to a general discussion of the tool in operation, and turning to
The computer software that executes to operate the form-fill tool may be stored on and distributed across a variety of sources. For example, portions of the computer software may execute on the computing device, while other portions execute across a distributed network. In one embodiment of the present invention, computer software executing on the computing device interacts with HTML files encountered by the computing device in order to detect forms in web pages as described in a step 720. In step 720, the HTML files are examined to determine whether the page contains a form.
In steps 730, 740, and 750, the HTML files are more particularly examined to identify personal address fields, credit card fields, and login and password fields, respectively, in any identified forms. The form-fill tool takes an ordinary form encountered on any web page and analyzes the HTML information to determine the existence of any form fields. When form fields are identified, the form-fill tool also determines whether the form fields are associated with address information, credit card information, and/or login and password information. In addition, the form-fill tool further determines whether there are multiple addresses within a form, such as both a billing address and a shipping address. The fields are then clustered together by type as shown at step 760. More specifically, personal information is grouped together; credit card information is grouped together; and login and password information is grouped together. Because address fields may contain more than one address, the form-fill tool performs a further subdivision of the address cluster to distinguish between multiple addresses, as shown in step 770. The same subdivision may be performed on multiple fields requesting credit card information, or login and password information.
Using computer hardware and computer software, one approach to accomplish the clustering of related fields is to use pattern matching technology to identify fields in the HTML form. The computer software may associate the fields to clusters, and examine the clusters for certain keywords in order to determine the type of information that is to be filled in the form. For example, the computer software may identify a field, look for adjacent fields, look above and below the current fields, and look for certain word terms near the fields in order to perform the clustering of fields and determine the information that is to go into the fields.
One may note that other computer software approaches may be employed to accomplish the same tasks as mentioned above. The computer software approach mentioned above is exemplary as to how the recognizing, selection, and clustering of fields occurs for the tool.
With information separated into clusters and sub-clusters, the form-fill tool preferably displays each clustered information set in a unique color, allowing the user to recognize associated information and distinguish it from other information, as shown in step 780. Additionally, a form may be too large to be completely displayed at once. If the user has to scroll through information to view fields of information, the colored cluster sets aid the user in recognizing associated fields.
Without reference to a particular computer software approach, one may think of the steps discussed above as occurring in three phases: Phase 1 occurs with the searching for fields across the form, and determining the types of fields that are in the form using parsing; phase 2 occurs with grouping the fields into clusters or sub-clusters, and making a determination as to what information is to be associated with the cluster or sub-cluster; and phase 3 occurs with recognizing if there are more than one type of similar information populated in the tool, and providing drop-down menu bars that are color-coded to each cluster or sub-cluster.
Turning now to
Once the form is populated, the user may still change information in the form. A drop-down bar 540, as discussed below with respect to
As shown, personal information, credit card information, and login and password information stored in the tool may be used to fill in a form 530 containing billing information, shipping information, and credit card information. The tool may be configured to automatically fill in the information when the form is initially encountered or may be configured to allow the user to depress form fill icon 510 to fill in the information. In
The invention can also discern different fields and cluster them according to relevant information. Please refer to the discussion above in
When data is filled in the form, drop-down bar 540 appears when the user has several entries available for personal information, credit card information, and/or login and password information. As stated above, personal information, credit card information, and login and password information are shown in clusters and colored accordingly. For example, fields relating to personal information may be clustered and colored a particular color for a first address in the form. Fields relating to personal information may be clustered and colored another color for a subsequent address and so forth. Fields for credit card information may be treated accordingly and clustered with a unique color. Drop-down bar 540 has boxes that appear whose background color matches the background color of the fields on the page in the same cluster. In the illustration here, three boxes appear corresponding to the three clusters of information shown in form 530. A first box 550 indicates a work address used for billing information. One may note that the work address may very well correspond to work address 260 mentioned above in
One ordinarily skilled in the art may realize that the embodiment of the present invention provides the user flexibility in changing and updating form information even after data has been filled in the form. Drop-down bar 540 provides the user access to stored information to allow the user to change information before a selection is permanently made or submitted. The user is not restricted to one set of form information and may readily choose from multiple sets of personal information, credit card information, and login and password information to suit needs. Furthermore, data may flexibly be interchanged and used together depending upon the circumstances. For example, the user may use a home address for billing purposes, a work address for shipping purposes, and a personal credit card. Then later, the user may use the work address for billing purposes and a business credit card even if encountering the same form on the same web page as before.
Sometimes, the user may have a form filled automatically with fields scattered throughout the web page. It may be difficult for the user to see all the data that has been filled. As a result, in