Abstract: Various embodiments provide an add on advisor that is designed to assist users in managing add ons for a browser and/or other application programs. In at least some embodiments the add on advisor can be implemented to detect newly installed add ons and provide notifications to a user of the detected add ons. The notifications regarding new add ons can be configured with options to permit the user to enable or disable the add ons. Add ons that are not explicitly enabled by a user can be prevented from operating by the add on advisor. Further in at least some embodiments the add on advisor can be implemented to monitor performance impact of add ons and provide notifications to a user when add ons adversely affect performance. The user can then interact with the add on advisor to improve performance by selectively enabling and disabling add ons.
ADD-ON PERFORMANCE ADVISOR
Background
[0001] Add-ons are popular with users because add-ons are a convenient way to
add new and customized functionality to a browser or other application program.
Unfortunately, users may not be aware that certain add-ons have been installed
and/or may not appreciate that add-ons can adversely affect performance due to the
time it takes add-ons to load and operate. Accordingly, users may misattribute poor
performance that is caused by add-ons to the browser or other application program.
Moreover, a traditional approach to management of add-ons is limited to turning
add-ons on or off collectively. While this approach gives the user some control
over add-ons, the user may be forced to disable some add-ons the user likes due to
poor performance caused by other add-ons.
Summary
[0002] This Summary is provided to introduce a selection of concepts in a
simplified form that are further described below in the Detailed Description. This
Summary is not intended to identify key features or essential features of the
claimed subject matter, nor is it intended to be used to limit the scope of the
claimed subject matter.
[0003] Various embodiments provide an add-on advisor that is designed to assist
users in managing add-ons for a browser and/or other application programs. In at
least some embodiments, the add-on advisor can be implemented to detect newly
installed add-ons and provide notifications to a user of the detected add-ons. The
notifications regarding new add-ons can be configured with options to permit the
user to enable or disable the add-ons. Add-ons that are not explicitly enabled by a
user can be prevented from operating by the add-on advisor. Further, in at least
some embodiments, the add-on advisor can be implemented to monitor
performance impact of add-ons and provide notifications to a user when add-ons
adversely affect performance. The user can then interact with the add-on advisor to
improve performance by selectively enabling and disabling add-ons.
Brief Description of the Drawings
[0004] The same numbers are used throughout the drawings to reference like
features.
[0005] Fig. 1 illustrates an operating environment in which various principles
described herein can be employed in accordance with one or more embodiments.
[0006] Fig. 2 illustrates an example web browser in accordance with one or
more embodiments.
[0007] Fig. 3 is a flow diagram that describes steps of a method in accordance
with one or more embodiments.
[0008] Figs. 4A and 4B illustrate example notifications related to add-ons in
accordance with one or more embodiments.
[0009] Fig. 5 is a flow diagram that describes steps of a method in accordance
with one or more embodiments.
[0010] Fig. 6 illustrates an example dialog for an add-on advisor in accordance
with one or more embodiments.
[0011] Fig. 7 illustrates an example system that can be used to implement one or
more embodiments.
Detailed Description
Overview
[0012] Various embodiments provide an add-on advisor that is designed to assist
users in managing add-ons for a browser and/or other application programs. In at
least some embodiments, the add-on advisor can be implemented to detect newly
installed add-ons and provide notifications to a user of the detected add-ons. The
notifications regarding new add-ons can be configured with options to permit the
user to enable or disable the add-ons. Add-ons that are not explicitly enabled by a
user can be prevented from operating by the add-on advisor. Further, in at least
some embodiments, the add-on advisor can be implemented to monitor
performance impact of add-ons and provide notifications to a user when add-ons
adversely affect performance. The user can then interact with the add-on advisor to
improve performance by selectively enabling and disabling add-ons.
[0013] In the discussion that follows, a section entitled "Operating
Environment" is provided and describes one environment in which one or more
embodiments can be employed. Following this, a section entitled "Example User
Interface with Notification Bar" describes an example user interface for an
application configured to use a notification bar for add-on notifications in
accordance with one or more embodiments. Next, a section entitled "Example
Add-On Advisor Features" describes example techniques and features of an add-on
advisor in accordance with one or more embodiments. This section includes
multiple subsections that describe various features in accordance with one or more
embodiments. Last, a section entitled "Example System" describes an example
system that can be utilized to implement one or more embodiments.
Operating Environment
[0014] Fig. 1 illustrates an operating environment in accordance with one or
more embodiments, generally at 100. Environment 100 includes a computing
device 102 having one or more processors 104, one or more computer-readable
storage media 106 and one or more applications 108 that reside on the computerreadable
storage media and which are executable by the processor(s). The
computer-readable storage media can include, by way of example and not
limitation, all forms of volatile and non-volatile memory and/or storage media that
are typically associated with a computing device. Such media can include ROM,
RAM, flash memory, hard disk, removable media and the like. One specific
example of a computing device is shown and described below in Fig. 7.
[0015] In addition, computing device 102 includes a software application in the
form of a web browser 110 that includes or otherwise makes use of an add-on
advisor 111 that operates as described above and below. The add-on advisor
provides add-on management designed to keep users in control of their add-ons. In
at least some embodiments, the add-on advisor can detect newly installed add-ons
and notify a user to provide the user with options to enable installed add-ons. The
add-on advisor can prevent or restrict operation of add-ons that are not explicitly
enabled by a user. Further, in at least some embodiments, the add-on advisor can
monitor add-on performance and prompt a user when performance impact exceeds
a configurable performance threshold. The user can then interact with the add-on
advisor to selectively enable or disable add-ons, as will become apparent below.
[0016] While various examples of add-on management are described herein in
the context of a browsing environment and a web browser, it is to be appreciated
that the add-on advisor 111 and corresponding techniques can be employed in a
variety of environments and with any suitable applications that make use of add
ons. By way of example, the add-on advisor can be implemented to manage add
ons for one or more of a web browser as in the described examples, email
applications, desktop productivity applications, game applications, media
applications, and/or other suitable applications of a computing device 102.
[0017] In addition, environment 100 includes a network 112, such as the
Internet, and one or more web servers 114 from and to which content can be
received and sent, as described above and below. Such content can include web
pages that are received from the web servers.
[0018] Computing device 102 can be embodied as any suitable computing
device such as, by way of example and not limitation, a desktop computer, a
portable computer, a handheld computer such as a personal digital assistant (PDA),
cell phone, and the like.
[0019] Having described an example operating environment, consider now a
discussion of some example embodiments that can utilize the add-on advisor 111.
Example User Interface with Notification Bar
[0020] Fig. 2 illustrates an example web browser, in accordance with one or
more embodiments, generally at 200. The depicted web browser is but one
example of an application that can make use of add-ons and an add-on advisor 111
to facilitate management of the add-ons. Web browser 200 includes a web browser
user interface 202 which includes typical instrumentalities such as back and
forward navigation buttons, an address bar, a search bar, and a tab band that can
support multiple tabs, all of which are undesignated. The web browser user
interface also includes a content rendering area 204 (designated by the cross
hatching) in which content can be rendered. In addition, web browser user
interface 202 includes a notification bar 206. In one or more embodiments, the
notification bar is designed to help users maintain focus on their browsing
activities, while offering notifications in the form of suggestions. Notifications
presented via the notification bar can include notifications related to add-ons that
are output or otherwise caused via operation of the add-on advisor 111 to enable
various techniques for add-on management.
[0021] In at least some embodiments, the notification bar is non-modal and is
presented at a location within the browsing field-of-view that is selected to reduce
user distraction. For example, in the illustrated and described embodiment, the
notification bar is presented at or near the bottom of the web browser's user
interface - here adjacent the bottom of or below content rendering area 204. The
notification bar is designed to be noticeable yet ignorable, thus enabling a user to
continue with their browsing tasks in content rendering area 204, without being
distracted by a modal dialog. Further, in at least some embodiments, the
notification bar is presented in a manner which overlays content that is rendered by
the web browser. The notification bar's location effectively prioritizes content
that is rendered within content rendering area 204 over a particular notification that
might appear in the notification bar.
[0022] Having considered an example user interface that makes use of a
notification bar in accordance with one or more embodiments, consider now some
details regarding example add-on advisor features that can be provided in
accordance with one or more embodiments.
Example Add-on Advisor Features
Add-on Notifications
[0023] Fig. 3 is a flow diagram that describes steps of a method in accordance
with one or more embodiments. The method can be implemented in connection
with any suitable hardware, software, firmware, or combination thereof. In at least
some embodiments, the method can be implemented by way of a suitability
configured computing device, such as the example computing device 102 of Fig. 1
that includes or otherwise makes use of a add-on advisor 111. In the discussion of
Fig. 3, reference will be made to example notifications that are depicted in Figs. 4A
and 4B.
[0024] Step 300 detects installation of add-ons. For example, add-ons can be
installed directly by a user, as part of installation of another application program,
and/or by a background process. Thus, a user may or may not know when add-ons
are installed. To facilitate user control of add-ons, add-on advisor 111 can be
configured to initially disable add-ons when they are first installed. An add-on can
remain disabled until a user provides explicit selection to enable the add-on. In this
manner, execution of add-ons that a user has not selected can be prevented or
otherwise restricted.
[0025] Add-ons can be enabled/disabled in any suitable way. One way this can
occur is through one or more configurable flags or fields that are associated with
add-ons when they are installed. The configurable flags or fields can be set to
indicate when an add-on is new and also whether the add-on is enabled or disabled.
A new add-on in this context refers to an add-on for which a user has yet to take
action on to enable or disable the add-on. Accordingly, the add-on advisor can
reference the flags, fields, and/or other suitable indicators to detect newly installed
add-ons that have not been acted upon by a user.
[0026] Step 302 notifies a user to selectively enable or disable installed add-ons.
This step can occur responsive to the detection of one or more newly installed add
ons. The notification can be configured to inform the user of the newly installed
add-ons and provide options selectable to permit the user to choose add-ons to
enable or disable by setting the configurable flags or fields. Options to permit the
user to choose add-ons to enable or disable can be provided directly through the
notification and/or through a separate dialog or interface that is made accessible
through the notification. Add-ons that are enabled by setting the configurable flags
or fields can be permitted to operate. On the other hand, operation of add-ons that
are disabled through the configurable flags or fields can be restricted.
[0027] Any suitable notification can be presented to notify a user regarding add
ons that have been installed and are ready for use. Suitable notifications can
include a pop-up dialog box, an html page rendered by a web browser or other
application, a tab alert of a tabbed user interface, a notification bar notice as
discussed in relation to Fig. 2, and/or combinations thereof. In at least some
embodiments, the notification can be output automatically, if appropriate, upon the
occurrence of particular events such as when an application (e.g., browser) is
opened, a new add-on is installed by an application, the application is closed, and
so forth.
[0028] By way of example, Fig. 4A depicts an example notification for newly
installed add-ons that is configured for presentation via the notification bar 206 of
Fig 2. In this example, a notification 400 includes informational text 402 that
indicates "Several add-ons are ready for use." Optionally, informational text 402
can include details regarding the various add-ons such as names, publisher, status,
performance statistics, and so forth. The notification 400 can also include one or
more user-selectable instrumentalities such as the illustrated buttons shown
generally at 404 that are configured to provide various options for management of
add-ons. For instance, the example buttons of Fig. 4A include a "Manage add-ons"
button that when selected can be configured to expose another dialog or interface
through which the user can obtain more detailed information regarding add-ons,
choose add-ons to enable and disable, and/or perform other actions to manage add
ons. The other dialog or interface can be configured to provide details regarding
the various add-ons mentioned above, in addition to or in lieu of providing such
details as part of informational text 402. An example add-on dialog to facilitate
various add-on management techniques is discussed in detail herein in a section
below entitled "Add-On Management." The example buttons of Fig. 4A further
include a "Don't Enable" button that can be selected to keep the new add-ons
disabled directly through the notification 400.
[0029] Step 304 monitors performance impact of add-ons. For example, the
add-on advisor can operate to monitor the impact of add-ons using various
performance metrics. Examples of suitable performance metrics include, but are
not limited to, add-on load times, page navigation time, document rendering time,
memory usage, and CPU usage, to name a few. By monitoring these and/or other
suitable metrics, the add-on advisor can ascertain when an add-on or multiple add
ons in combination create performance issues. Further details regarding such
monitoring can be found in a section below entitled "Add-On Performance
Monitoring."
[0030] When a performance issue is ascertained through the monitoring
performed in step 304, a notification can be output to inform the user and prompt
the user to take action. In particular, step 306 prompts a user to selectively enable
or disable add-ons based on the performance impact. Any suitable notification can
be presented to notify a user regarding add-on performance, including at least the
example kinds of notifications discussed above with respect to detection of newly
installed add-ons. In at least some embodiments, the notification can be output
automatically when a performance threshold related to one or more performance
metrics is exceeded.
[0031] By way of example, Fig. 4B depicts an example notification for add-on
performance that is configured for presentation via the notification bar 206 of Fig.
2. In the depicted example, the notification relates to a browsing context. In this
context, the add-on advisor can cause the notification to be automatically presented
when performance monitoring indicates that page load times and/or navigation
times have exceeded a threshold value set for browsing delay due to operation of
one or more add-ons. Accordingly, the notification can be configured to provide
the user with available options to speed-up browsing.
[0032] In particular, the example notification 406 includes informational text
408 that prompts the user to "Speed up browsing by disabling add-ons." The
notification 406 also includes example buttons shown generally at 410 that are
configured to provide various options for management of add-ons in response to the
notification. For instance, the example buttons of Fig. 4B include a "Manage add
ons" button comparable to one discussed in relation to Fig. 4A. The "Manage addons"
button can be selected to expose another dialog or interface through which the
user can obtain more detailed information regarding add-ons, choose from among
various add-ons to enable and disable, and otherwise manage add-ons. The
example buttons of Fig. 4B also include an "Ask Me Later" button that can be
selected to cause the add-on advisor to notify the user again at some future time.
[0033] Having described example add-on notifications that can be utilized in
accordance with one more embodiments, consider now example add-on
performance monitoring techniques in accordance with one or more embodiments.
Add-On Performance Monitoring
[0034] Recall from the preceding discussion that add-on advisor 111 can be
configured to perform various monitoring of add-ons to facilitate add-on
management. As noted, performance monitoring can be employed to provide
feedback to users regarding the performance of add-ons. In particular, monitoring
of performance metrics can trigger notifications to provide user with control over
add-ons and offer options to manage the add-ons. Notifications that are output
responsive to monitoring of various performance metrics can provide access to
tools, interfaces, and instrumentalities to facilitate management of add-ons based on
performance of the add-ons.
[0035] In a browsing context, examples of suitable performance metrics that can
be monitored by the add-on advisor include, but are not limited to, add-on load
times, page navigation time, memory usage, and CPU usage, to name a few. Add
on load times can be ascertained when a browser is initially opened or otherwise
when add-ons are loaded. Page navigation time can be computed when navigation
events occur, such as when a link is selected, a new tab is opened, and/or other
navigation events occur. Memory usage and/or CPU usage can be determined
during operation of add-ons to perform the tasks they are configured to perform.
Naturally, other metrics can be monitored in other contexts in which the add-on
advisor can be employed for add-on management. For instance, an add-on advisor
can be implemented to monitor email send/receive times for an email application,
content download times for a media application, document rendering times for a
word processor, and game load times for a gaming application, to name a few other
examples.
[0036] By way of example, consider Fig. 5, which is a flow diagram that
describes steps of a method for monitoring add-on performance in accordance with
one or more embodiments. The method can be implemented in connection with
any suitable hardware, software, firmware, or combination thereof. In at least some
embodiments, the method can be implemented by way of a suitability configured
computing device, such as the example computing device 102 of Fig. 1 that
includes or otherwise makes use of an add-on advisor 111.
[0037] Step 500 monitors performance metrics for add-ons. The monitoring can
occur for various metrics as discussed above and/or in various different contexts.
It is further contemplated that the add-on advisor can be configured to perform
various techniques to facilitate add-on management as described herein, including
performance monitoring, for multiple different applications of a computing device.
[0038] Step 502 determines whether a number of samples are sufficient. For
instance, monitoring and data collection can be performed until a defined number
of data samples have been obtained. A configurable value for a number of samples
to collect for the monitoring can optionally be set to control the quantity and quality
of data used for analysis. Using too few data points for a particular add-on could
give inaccurate or unpredictable results. Accordingly, a check can be made to
ensure that at least a defined number of samples (e.g., five samples, ten samples,
etc.) have been obtained for the purpose of analyzing add-on performance.
[0039] When sufficient data is collected, step 504 calculates performance impact
of add-ons. One way this can occur by computing averages for the samples
collected through the monitoring. Statistical techniques can also be utilized to
discard outlying or erroneous data points. In the example of a web browser, one or
more add-ons can be monitored to ascertain a performance impact on browsing.
More particularly, monitoring of browser add-ons can involve monitoring of one or
more targeted performance metrics related to browsing, such as load times and
navigation times. A number of samples can be collected for the targeted metrics as
noted above. When sufficient data has been collected, performance impact on
browsing (e.g., browsing delay) can be computed based on the metrics. For
example, total load times and navigation times associated with add-ons (e.g., total
impact) and/or individual times for each add-on (e.g., individual impact) can be
computed. Other metrics as discussed previously can also be employed.
[0040] Step 506 ascertains whether the calculated impact exceeds a performance
threshold. For instance, based on various metrics, an assessment can be made
regarding whether the performance impact computed in step 504 is at an acceptable
or unacceptable level. Add-on notifications and/or management options described
herein can be triggered accordingly.
[0041] By way of example, a configurable threshold can be associated with load
times, navigation times, and/or other performance metrics. Accordingly, add-on
advisor can operate to compare performance metrics to corresponding thresholds
and take action when the thresholds are exceeded. If, for example, a browser delay
threshold is set to 0.2 seconds, add-on advisor can be configured to compute
load/navigation times associated with add-ons and output appropriate add-on
notifications when the 0.2 second threshold is exceeded by add-ons as a whole
and/or by individual add-ons. When performance impact does not exceed the
threshold (e.g., performance impact is acceptable), monitoring of performance
metrics can continue as per step 500.
[0042] When one or more performance thresholds are exceeded, step 508 checks
whether additional criteria for add-on notifications are met. If one or more criteria
are not met, notifications regarding add-ons may be suppressed (e.g., not
displayed). It is contemplated that various additional criteria can be defined to
control when add-on notifications are provided to a user. For instance, a user may
be able to set preferences to disable add-on notifications or suppress the
notifications for a selected time period. In this case, add-on notification can be
suppressed accordingly. In another example, notifications can be suppressed if the
user has recently dismissed another add-on notification within a designated time
period, such as within the last hour or on the same day. Accordingly, add-on
advisor can check to make sure any additional criteria defined for add-on
notifications are met before causing the notifications to be presented to the user.
[0043] When a notification is appropriate, step 510 outputs an ad-on
performance notification. For instance, add-on advisor 111 can cause a
notification comparable to the examples depicted in Fig. 4A and 4B to be output,
when a performance threshold is exceeded and any other criteria defined to control
notifications have been met. A user can then interact with the notification and
choose to take various actions that are made available through the notification to
manage add-ons, further details of which can be found in the following section.
[0044] Having described various embodiments associated with add-on
performance monitoring, consider now example add-on management techniques in
accordance with one or more embodiments.
Add-On Management
[0045] Consider now various example add-on management techniques in
accordance with one or more embodiments that are discussed in relation to an
example dialog for an add-on advisor that is illustrated in Fig. 6. In particular, Fig.
6 depicts generally at 600 an example add-on dialog that can be employed to
facilitate management of add-ons. The depicted add-on dialog can be exposed
through notifications such as the examples discussed in relation to Figs. 4A and 4B.
In particular, the add-on dialog can be presented responsive to selection of a
"Manage Add-ons" button or other instrumentality that is provided with a
notification. A user can also access the dialog through a menu item selection, a
keyboard short-cut, and so forth. A variety of different options for management of
add-ons can be provided by the add-on advisor through one or more dialogs
comparable to the example dialog of Fig. 6.
[0046] For instance, the example add-on dialog includes a header message 602,
an add-on list 604, and various user selectable instrumentalities configured for add
on management. The header message 602 notifies the user as to the performance
impact of add-ons and indicates that the user can control add-ons by enabling or
disabling the add-ons. The header message 602 in the example also indicates that
the performance impact of the add-ons increases browsing times by "1.40 seconds."
This performance impact can be determined through performance monitoring as
described above and below.
[0047] The add-on list 604 can be configured to provide a list of add-ons that
can be managed through the dialog and information for the individual add-ons,
such as add-on name, creator/publisher, and metrics computed for the add-on (e.g.,
load times, navigation times, CPU usage, and so on). The add-on list 604 can also
be configured to represent the performance impact of add-ons in a relative fashion
one to another. In the depicted example, bars 606 having different lengths are used
to represent the relative increase in browsing time that is due to each of the add
ons. Visual indicators can also be used to show which of the individual add-ons
exceed the threshold and/or cause the total performance impact to exceed the
threshold. Visual indicators can include any combination of different colors, text
properties, highlighting, animations, icons, and/or other indicators.
[0048] Optionally, add-ons in the list can be arranged in order according to the
relative impact. In this manner, visual indicators can be used to distinguish add-ons
that cause the performance impact to exceed the performance threshold
(collectively or individually) from add-ons that do not cause the performance
impact to exceed the performance threshold. Accordingly, a user can quickly scan
the list to determine which add-ons create the greatest impact on performance.
[0049] For example, the bar for the Contoso Toolbar in Fig. 6 is shown in a
different color relative to the other bars to indicate that the associated value of 1.26
seconds exceeds the threshold that is set at 0.2 seconds. The values of 0.10 and
0.04 associated with Fabrikam and Wing Tip Toys respectively do not exceed the
0.2 second threshold and thus the corresponding bars appear in a color designated
for add-ons that fall under the threshold. Notice that the example add-ons in the list
are also arranged from top to bottom in descending order according to their relative
impact on performance.
[0050] The add-on dialog can be further configured with functionality to allow
a user to disable and/or enable various add-ons. This can be accomplished using
any suitable user selectable instrumentalities. In the example add-on dialog of Fig.
6, a disable button 608 appears with each item listed in the add-on list. The disable
buttons are selectable to disable a corresponding add-on. In addition, a disable all
button 610 can be provided that is selectable to disable the add-ons collectively.
[0051] In at least some embodiments, add-ons can be assigned to groups and the
user can be provided with options to selectively enable/disable add-ons group by
group. Add-ons can be grouped in various ways. For instance, groups of add-ons
can be formed based on one or more of the type of add-on, functional similarities,
creators or providers of the add-on, and/or add-on categories. Add-ons can also be
placed in groups based upon whether binaries associated with the add-ons are
installed into the same directory. Thus, different group of add-ons can be presented
to the user along with options to enable/disable the different groups.
[0052] It is noted that an add-on dialog can be configured to show just enabled
add-ons as illustrated, all installed add-ons including those that are enabled and
disabled, just disabled add-ons, newly installed add-ons, and so forth. The user
also can be provided with options to selectively show or hide different kinds of
add-ons via the dialog at different times. For instance, an example view all button
612 is shown in Fig. 6 that represents functionality operable to expose a full list of
installed add-ons. Options to filter the full list in various ways can appear when
the full list is presented. For add-ons shown in an add-on dialog that are disabled,
an enable control can be provided that is selectable to enable a corresponding add
on. Likewise, newly installed add-ons can appear in the list with buttons or other
controls selectable to enable/disable corresponding add-ons. Thus, a dialog
comparable to the example dialog can be configured to facilitate management of
newly detected add-ons. For instance, a dialog listing newly detected add-ons can
be accessed through a new add-on notification, such as the example discussed in
relation to Fig. 4A.
[0053] Also depicted in Fig. 6 is an example more options button 614 that
represents functionality operable to access various additional options that can be
made available via the add-on advisor to facilitate add-on management. Such
additional options can include, but are not limited to, links to obtain more
information regarding add-ons, category and/or filter tools for add-ons and lists,
and/or analysis tools to provide detailed and/or historic performance data associated
with add-ons, to name a few examples.
[0054] Recall that add-on notifications and management can be triggered based
upon thresholds that are associated with various performance metrics. The example
add-on dialog can also provide options to view and/or configure the thresholds for
various performance metrics. For instance, an example threshold control 616 in
Fig. 6 shows a current value of 0.2 seconds that is set for browsing delays. The
threshold control 616 is selectable to enable a user to change the value associated
with the corresponding threshold. In the depicted example, the threshold control
616 is illustrated as an input list box that when selected can provide a scrollable list
of selectable values for the threshold. Although an input list box is depicted in the
example, threshold control 616 can be implemented via any suitable instrumentality
that enables values for thresholds to be selected. The add-on dialog can include
one or more threshold controls comparable to the example threshold control 616 to
facilitate threshold management for one or more corresponding performance
metrics.
[0055] Having considered various example features of an add-on advisor,
consider now an example system that can be employed to implement various
techniques for add-on management in accordance with one or more embodiments.
Example System
[0056] Fig. 7 illustrates an example computing device 700 that can be used to
implement the various embodiments described above. Computing device 700 can
be, for example, computing device 102 or web server 114 of Fig. 1.
[0057] Computing device 700 includes one or more processors or processing
units 702, one or more memory and/or storage components 704, one or more
input/output (I/O) devices 706, and a bus 708 that allows the various components
and devices to communicate with one another. Bus 708 represents one or more of
any of several types of bus structures, including a memory bus or memory
controller, a peripheral bus, an accelerated graphics port, and a processor or local
bus using any of a variety of bus architectures. Bus 708 can include wired and/or
wireless buses.
[0058] Memory/storage component 704 represents one or more computer
storage media. Component 704 can include volatile media (such as random access
memory (RAM)) and/or nonvolatile media (such as read only memory (ROM),
Flash memory, optical disks, magnetic disks, and so forth). Component 704 can
include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as
removable media (e.g., a Flash memory drive, a removable hard drive, an optical
disk, and so forth).
[0059] One or more input/output devices 706 allow a user to enter commands
and information to computing device 700, and also allow information to be
presented to the user and/or other components or devices. Examples of input
devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a
scanner, and so forth. Examples of output devices include a display device (e.g., a
monitor or projector), speakers, a printer, a network card, and so forth.
[0060] Various techniques may be described herein in the general context of
software or program modules. Generally, software includes routines, programs,
objects, components, data structures, and so forth that perform particular tasks or
implement particular abstract data types. An implementation of these modules and
techniques may be stored on or transmitted across some form of computer readable
media. Computer readable media can be any available medium or media that can
be accessed by a computing device. By way of example, and not limitation,
computer readable media may comprise "computer-readable storage media".
[0061] "Computer-readable storage media" include volatile and non-volatile,
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-readable storage media include, but are
not limited to, RAM, ROM, EEPROM, flash memory or other memory technology,
CD-ROM, digital versatile disks (DVD) or other optical 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 a computer.
Conclusion
[0062] Various embodiments provide an add-on advisor that is designed to assist
users in managing add-ons for a browser and/or other application programs. In at
least some embodiments, the add-on advisor can be implemented to detect newly
installed add-ons and provide notifications to a user of the detected add-ons. The
notifications regarding new add-ons can be configured with options to permit the
user to enable or disable the add-ons. Add-ons that are not explicitly enabled by a
user can be prevented from operating by the add-on advisor. Further, in at least
some embodiments, the add-on advisor can be implemented to monitor
performance impact of add-ons and provide notifications to a user when add-ons
adversely affect performance. The user can then interact with the add-on advisor to
improve performance by selectively enabling and disabling add-ons.
[0063] Although the subject matter has been described in language specific to
structural features and/or methodological acts, it is to be understood that the subject
matter defined in the appended claims is not necessarily limited to the specific
features or acts described above. Rather, the specific features and acts described
above are disclosed as example forms of implementing the claims.
Claims
What is claimed is:
1. One or more computer readable storage media storing instructions,
that when executed by a computing device, cause the computing device to
implement an add-on advisor configured to perform acts comprising:
monitoring a performance impact of one or more add-ons associated with an
application of the computing device;
detecting when the performance impact of the add-ons exceeds one or more
performance thresholds defined for the add-ons; and
outputting a notification to inform a user of the detected add-ons and provide
the user with access to options to selectively enable or disable the detected add-ons.
2. The one or more computer readable storage media of claim 1, wherein the
application comprises a web browser.
3. The one or more computer readable storage media of claim 1, wherein the
notification is non modal and output via a notification bar that overlays content
that is rendered by the application in a content rendering area.
4. The one or more computer readable storage media of claim 1, wherein the
notification is a pop-up dialog box.
5. The one or more computer readable storage media of claim 1, wherein the
add-on advisor is further configured to perform acts comprising:
receiving a selection of one or more of the detected add-ons to be enabled;
enabling the one or more selected add-ons by setting flags associated with
the add-ons; and
permitting operation of the one or more add-ons that are enabled.
6. The one or more computer readable storage media of claim 1, wherein the
add-on advisor is further configured to perform acts comprising:
receiving a selection of one or more of the detected add-ons to be disabled;
disabling the one or more selected add-ons by setting flags associated with
the add-ons; and
preventing operation of the one or more add-ons that are disabled.
7. The one or more computer readable storage media of claim 1, wherein the
notification includes a user selectable instrumentality configured to enable or
disable the detected add-ons directly via the notification.
8. The one or more computer readable storage media of claim 1, wherein the
notification includes a user selectable instrumentality that is selectable to access
an add-on management dialog that provides the options to selectively enable or
disable the detected add-ons.
9. A computer implemented method comprising;
monitoring a performance impact of one or more add-ons for a web browser;
and
when the performance impact exceeds a performance threshold, outputting a
notification to inform a user of the performance impact and provide the user with
access to options to selectively enable or disable the one or more add-ons to
improve performance.
10. The computer implemented method of claim 9, wherein the performance
impact corresponds to a delay in browsing time caused by the one or more add
ons.
11. The computer implemented method of claim 9, wherein monitoring the
performance impact of the one or more add-ons for the web browser comprises
calculating one or more of load times or navigation times associated with each of
the one or more add-ons to determine a delay in browsing caused by the one or
more add-ons.
12. The computer implemented method of claim 9, wherein the notification is
non modal and output via a notification bar that overlays content that is rendered
by the web browser in a content rendering area.
13. The computer implemented method of claim 9, further comprising:
detecting when add-ons for the web browser are installed;
outputting a new add-on notification to inform the user of the detected add
ons and provide the user with access to options to selectively enable or disable the
detected add-ons; and
preventing operation of the detected add-ons prior to action by the user to
enable or disable the detected add-ons.
14. The computer implemented method of claim 9, wherein the notification
includes a user selectable instrumentality that is selectable to expose an add-on
management dialog configured to:
represent the relative impact on performance of the one or more add-ons one
to another; and
provide the options to selectively enable or disable the one or more add-ons.
15. The computer implemented method of claim 14, wherein:
the performance impact corresponds to a delay in browsing time caused by
the one or more add-ons; and
the relative impact on performance of the one or more add-ons is represented
in the add-on management dialog using bars of different lengths to show a relative
delay in browsing time caused by each of the one or more add-ons.
| # | Name | Date |
|---|---|---|
| 1 | 2819-CHENP-2013 PCT PUBLICATION 12-04-2013.pdf | 2013-04-12 |
| 1 | 2819-CHENP-2013-IntimationOfGrant20-11-2023.pdf | 2023-11-20 |
| 2 | 2819-CHENP-2013-PatentCertificate20-11-2023.pdf | 2023-11-20 |
| 2 | 2819-CHENP-2013 DESCRIPTION (COMPLETE) 12-04-2013.pdf | 2013-04-12 |
| 3 | 2819-CHENP-2013-Response to office action [19-09-2023(online)].pdf | 2023-09-19 |
| 3 | 2819-CHENP-2013 CLAIMS 12-04-2013.pdf | 2013-04-12 |
| 4 | 2819-CHENP-2013-Written submissions and relevant documents [12-05-2023(online)].pdf | 2023-05-12 |
| 4 | 2819-CHENP-2013 FORM-2 FIRST PAGE 12-04-2013.pdf | 2013-04-12 |
| 5 | 2819-CHENP-2013-Information under section 8(2) [05-05-2023(online)].pdf | 2023-05-05 |
| 5 | 2819-CHENP-2013 CLAIMS SIGNATURE LAST PAGE 12-04-2013.pdf | 2013-04-12 |
| 6 | 2819-CHENP-2013-FORM-26 [13-04-2023(online)].pdf | 2023-04-13 |
| 6 | 2819-CHENP-2013 POWER OF ATTORNEY 12-04-2013.pdf | 2013-04-12 |
| 7 | 2819-CHENP-2013-Correspondence to notify the Controller [11-04-2023(online)].pdf | 2023-04-11 |
| 7 | 2819-CHENP-2013 FORM-5 12-04-2013.pdf | 2013-04-12 |
| 8 | 2819-CHENP-2013-US(14)-HearingNotice-(HearingDate-28-04-2023).pdf | 2023-04-10 |
| 8 | 2819-CHENP-2013 FORM-3 12-04-2013.pdf | 2013-04-12 |
| 9 | 2819-CHENP-2013-Correspondence_07-02-2020.pdf | 2020-02-07 |
| 9 | 2819-CHENP-2013 FORM-1 12-04-2013.pdf | 2013-04-12 |
| 10 | 2819-CHENP-2013 DRAWINGS 12-04-2013.pdf | 2013-04-12 |
| 10 | 2819-CHENP-2013-Form26_General Power of Attorney_07-02-2020.pdf | 2020-02-07 |
| 11 | 2819-CHENP-2013 CORRESPONDENCE OTHERS 12-04-2013.pdf | 2013-04-12 |
| 11 | 2819-CHENP-2013-Response to office action [27-01-2020(online)].pdf | 2020-01-27 |
| 12 | 2819-CHENP-2013-ABSTRACT [22-01-2020(online)].pdf | 2020-01-22 |
| 12 | 2819-CHENP-2013.pdf | 2013-04-15 |
| 13 | 2819-CHENP-2013 FORM-3 20-09-2013.pdf | 2013-09-20 |
| 13 | 2819-CHENP-2013-CLAIMS [22-01-2020(online)].pdf | 2020-01-22 |
| 14 | 2819-CHENP-2013 CORRESPONDENCE OTHERS 20-09-2013.pdf | 2013-09-20 |
| 14 | 2819-CHENP-2013-DRAWING [22-01-2020(online)].pdf | 2020-01-22 |
| 15 | 2819-CHENP-2013 CORRESPONDENCE OTHERS 08-10-2013.pdf | 2013-10-08 |
| 15 | 2819-CHENP-2013-FER_SER_REPLY [22-01-2020(online)].pdf | 2020-01-22 |
| 16 | 2819-CHENP-2013 ASSIGNMENT 08-10-2013.pdf | 2013-10-08 |
| 16 | 2819-CHENP-2013-FORM 3 [22-01-2020(online)].pdf | 2020-01-22 |
| 17 | 2819-CHENP-2013-Information under section 8(2) (MANDATORY) [22-01-2020(online)].pdf | 2020-01-22 |
| 17 | abstract2819-chenp-2013.jpg | 2014-06-07 |
| 18 | 2819-CHENP-2013 FORM-6 01-03-2015.pdf | 2015-03-01 |
| 18 | 2819-CHENP-2013-OTHERS [22-01-2020(online)].pdf | 2020-01-22 |
| 19 | MTL-GPOA - JAYA.pdf ONLINE | 2015-03-09 |
| 19 | 2819-CHENP-2013-FER.pdf | 2019-07-26 |
| 20 | Form 3 [14-10-2016(online)].pdf | 2016-10-14 |
| 20 | MS to MTL Assignment.pdf ONLINE | 2015-03-09 |
| 21 | FORM-6-1801-1900(JAYA).64.pdf | 2015-03-13 |
| 21 | FORM-6-1801-1900(JAYA).64.pdf ONLINE | 2015-03-09 |
| 22 | MS to MTL Assignment.pdf | 2015-03-13 |
| 22 | MTL-GPOA - JAYA.pdf | 2015-03-13 |
| 23 | MS to MTL Assignment.pdf | 2015-03-13 |
| 23 | MTL-GPOA - JAYA.pdf | 2015-03-13 |
| 24 | FORM-6-1801-1900(JAYA).64.pdf | 2015-03-13 |
| 24 | FORM-6-1801-1900(JAYA).64.pdf ONLINE | 2015-03-09 |
| 25 | MS to MTL Assignment.pdf ONLINE | 2015-03-09 |
| 25 | Form 3 [14-10-2016(online)].pdf | 2016-10-14 |
| 26 | 2819-CHENP-2013-FER.pdf | 2019-07-26 |
| 26 | MTL-GPOA - JAYA.pdf ONLINE | 2015-03-09 |
| 27 | 2819-CHENP-2013 FORM-6 01-03-2015.pdf | 2015-03-01 |
| 27 | 2819-CHENP-2013-OTHERS [22-01-2020(online)].pdf | 2020-01-22 |
| 28 | 2819-CHENP-2013-Information under section 8(2) (MANDATORY) [22-01-2020(online)].pdf | 2020-01-22 |
| 28 | abstract2819-chenp-2013.jpg | 2014-06-07 |
| 29 | 2819-CHENP-2013 ASSIGNMENT 08-10-2013.pdf | 2013-10-08 |
| 29 | 2819-CHENP-2013-FORM 3 [22-01-2020(online)].pdf | 2020-01-22 |
| 30 | 2819-CHENP-2013 CORRESPONDENCE OTHERS 08-10-2013.pdf | 2013-10-08 |
| 30 | 2819-CHENP-2013-FER_SER_REPLY [22-01-2020(online)].pdf | 2020-01-22 |
| 31 | 2819-CHENP-2013 CORRESPONDENCE OTHERS 20-09-2013.pdf | 2013-09-20 |
| 31 | 2819-CHENP-2013-DRAWING [22-01-2020(online)].pdf | 2020-01-22 |
| 32 | 2819-CHENP-2013 FORM-3 20-09-2013.pdf | 2013-09-20 |
| 32 | 2819-CHENP-2013-CLAIMS [22-01-2020(online)].pdf | 2020-01-22 |
| 33 | 2819-CHENP-2013-ABSTRACT [22-01-2020(online)].pdf | 2020-01-22 |
| 33 | 2819-CHENP-2013.pdf | 2013-04-15 |
| 34 | 2819-CHENP-2013 CORRESPONDENCE OTHERS 12-04-2013.pdf | 2013-04-12 |
| 34 | 2819-CHENP-2013-Response to office action [27-01-2020(online)].pdf | 2020-01-27 |
| 35 | 2819-CHENP-2013 DRAWINGS 12-04-2013.pdf | 2013-04-12 |
| 35 | 2819-CHENP-2013-Form26_General Power of Attorney_07-02-2020.pdf | 2020-02-07 |
| 36 | 2819-CHENP-2013 FORM-1 12-04-2013.pdf | 2013-04-12 |
| 36 | 2819-CHENP-2013-Correspondence_07-02-2020.pdf | 2020-02-07 |
| 37 | 2819-CHENP-2013-US(14)-HearingNotice-(HearingDate-28-04-2023).pdf | 2023-04-10 |
| 37 | 2819-CHENP-2013 FORM-3 12-04-2013.pdf | 2013-04-12 |
| 38 | 2819-CHENP-2013-Correspondence to notify the Controller [11-04-2023(online)].pdf | 2023-04-11 |
| 38 | 2819-CHENP-2013 FORM-5 12-04-2013.pdf | 2013-04-12 |
| 39 | 2819-CHENP-2013-FORM-26 [13-04-2023(online)].pdf | 2023-04-13 |
| 39 | 2819-CHENP-2013 POWER OF ATTORNEY 12-04-2013.pdf | 2013-04-12 |
| 40 | 2819-CHENP-2013-Information under section 8(2) [05-05-2023(online)].pdf | 2023-05-05 |
| 40 | 2819-CHENP-2013 CLAIMS SIGNATURE LAST PAGE 12-04-2013.pdf | 2013-04-12 |
| 41 | 2819-CHENP-2013-Written submissions and relevant documents [12-05-2023(online)].pdf | 2023-05-12 |
| 41 | 2819-CHENP-2013 FORM-2 FIRST PAGE 12-04-2013.pdf | 2013-04-12 |
| 42 | 2819-CHENP-2013-Response to office action [19-09-2023(online)].pdf | 2023-09-19 |
| 42 | 2819-CHENP-2013 CLAIMS 12-04-2013.pdf | 2013-04-12 |
| 43 | 2819-CHENP-2013 DESCRIPTION (COMPLETE) 12-04-2013.pdf | 2013-04-12 |
| 43 | 2819-CHENP-2013-PatentCertificate20-11-2023.pdf | 2023-11-20 |
| 44 | 2819-CHENP-2013 PCT PUBLICATION 12-04-2013.pdf | 2013-04-12 |
| 44 | 2819-CHENP-2013-IntimationOfGrant20-11-2023.pdf | 2023-11-20 |
| 1 | search_22-07-2019.pdf |