CN107577544A - 浏览器错误检测方法和浏览器错误检测设备 - Google Patents
浏览器错误检测方法和浏览器错误检测设备 Download PDFInfo
- Publication number
- CN107577544A CN107577544A CN201610525245.5A CN201610525245A CN107577544A CN 107577544 A CN107577544 A CN 107577544A CN 201610525245 A CN201610525245 A CN 201610525245A CN 107577544 A CN107577544 A CN 107577544A
- Authority
- CN
- China
- Prior art keywords
- browser
- event
- mistake
- context
- cookie
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
公开了一种浏览器错误检测方法和浏览器错误检测设备,其中该浏览器错误检测方法包括:监视和捕获步骤,用于监视浏览器并且捕获浏览器的当前上下文和当前事件;获取步骤,在浏览器的上下文改变时,基于当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件‑错误对;以及检测错误步骤,在获取步骤中检索到所述一个或多个源事件‑错误对的情况下,如果当前事件与所述一个或多个源事件‑错误对中的至少一个对中的源事件相同,则确定浏览器中存在错误。根据本公开的实施例,能够基于上下文和事件来检测浏览器中的错误并且能够在出现错误之前发出告警。
Description
技术领域
本公开涉及互联网和信息处理领域,更具体地,涉及一种基于上下文和事件来检测浏览器中的错误并且能够在出现错误之前发出告警的浏览器错误检测方法和浏览器错误检测设备。
背景技术
随着信息技术的发展,各种Web应用已经深入到人们的工作生活之中。然而运行于浏览器之中的Web应用经常会面临出错或崩溃的情况。在发生这类错误或崩溃的时候,将造成数据丢失等严重的损失。若能在出现错误或崩溃之前,向用户进行预警,从而延迟或阻止这些错误或崩溃的发生,那么将避免数据丢失,同时大大改善用户的使用体验。
传统的方法只能解决插件或者配置导致的浏览器崩溃的问题,即,删除导致浏览器崩溃的插件或者对浏览器进行正确配置以避免崩溃。然而,这些方法并不能解决一些网站或Web应用由于其自身代码的缺陷或者恶意代码导致浏览器崩溃的问题。
发明内容
在下文中给出了关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
鉴于以上问题,本公开的目的是提供一种浏览器错误检测方法和浏览器错误检测设备,其能够检测当前是否可能会发生错误、以及会发生哪种错误,从而能够在出现错误之前及时地向用户发出预警。
根据本公开的一方面,提供了一种浏览器错误检测方法,包括:监视和捕获步骤,可以用于监视浏览器并且捕获浏览器的当前上下文和当前事件;获取步骤,在浏览器的上下文改变时,可以基于当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对;以及检测错误步骤,在获取步骤中检索到所述一个或多个源事件-错误对的情况下,如果当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则可以确定浏览器中存在错误。
根据本公开的另一方面,还提供了一种浏览器错误检测设备,包括:监视和捕获单元,可以被配置监视浏览器并且捕获浏览器的当前上下文和当前事件;获取单元,可以被配置在浏览器的上下文改变时,可以基于当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对;以及检测错误单元,可以被配置在获取单元检索到所述一个或多个源事件-错误对的情况下,如果当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则可以确定浏览器中存在错误。
根据本公开的其它方面,还提供了用于实现上述根据本公开的方法的计算机程序代码和计算机程序产品以及其上记录有该用于实现上述根据本公开的方法的计算机程序代码的计算机可读存储介质。
在下面的说明书部分中给出本公开实施例的其它方面,其中,详细说明用于充分地公开本公开实施例的优选实施例,而不对其施加限定。
附图说明
本公开可以通过参考下文中结合附图所给出的详细描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并形成说明书的一部分,用来进一步举例说明本公开的优选实施例和解释本公开的原理和优点。其中:
图1是示出根据本公开的实施例的浏览器错误检测方法的流程示例的流程图;
图2是示出查找错误的源事件的示例的图;
图3是示出对上下文进行归一化的示例的图;
图4是示出归一化之前和归一化之后的上下文内容的具体示例的图;
图5是示出根据本公开的实施例的从本地数据库和云端数据库中检索源事件-错误对的流程示例的流程图;
图6是示出根据本公开的实施例的进行错误检测和告警的示例的图;
图7是示出根据本公开的实施例的浏览器错误检测设备的功能配置示例的框图;以及
图8是示出作为本公开的实施例中可采用的信息处理设备的个人计算机的示例结构的框图。
具体实施方式
在下文中将结合附图对本公开的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的设备结构和/或处理步骤,而省略了与本公开关系不大的其它细节。
下面结合附图详细说明根据本公开的实施例。
首先,将参照图1描述根据本公开的实施例的浏览器错误检测方法的流程示例。图1是示出根据本公开的实施例的浏览器错误检测方法的流程示例的流程图。如图1所示,根据本公开的实施例的浏览器错误检测方法可包括监视和捕获步骤S102、获取步骤S104以及检测错误步骤S106。
首先,在监视和捕获步骤S102中,可以监视浏览器并且捕获浏览器的当前上下文和当前事件。
上下文是指网页所处于的环境,包括域名、统一资源定位符(URL)、cookie、DOM、浏览器类型、浏览器版本、浏览器设置、安装的插件以及浏览历史等。
事件表示浏览器中正在发生的动作。它可以分为标准事件和浏览器特定的事件。标准事件在各种浏览器中都是通用的,如网络事件、用户操作事件、DOM更新事件,错误事件等。浏览器特定事件对于各种不同的浏览器是不同的,如Mozilla特定的时间,包括XUL事件、扩展事件等。事件在用户浏览网页之时被触发,例如拖拽、点击、按键等。当事件发生时,相应的处理器被调用用以捕获事件。可从各种事件中抽取出其特征用以表示该事件并判断两个事件是否等价。
在获取步骤S104中,在浏览器的上下文改变时,可以基于当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。
在监视和捕获步骤S102中,可以捕捉到浏览器的上下文改变。
在获取步骤S104中,在浏览器的上下文改变时,可以通过实时地将当前上下文、事件序列与数据库中的会导致错误的上下文、事件序列进行比对,从而判断当前是否可能会发生错误。为了加快检索速度,用于检测错误的源事件-错误对可以存储在本地数据库中。由于单个用户会遇到的上下文、事件和错误都是有限的,因此可以采用云在不同用户之间共享错误和相应的上下文、事件信息。由此,为了可以在不同用户之间共享错误信息,用于检测错误的源事件-错误对可以存储在云端数据库中。
优选地,本地数据库和/或云端数据库是通过以下方式获得的:对于所捕获的浏览器的错误,识别导致所捕获的错误的源事件并且构建相应的源事件-错误对;如果所构建的源事件-错误对没有存在于本地数据库中,则将其存储在本地数据库;以及如果所构建的源事件-错误对没有存在于云端数据库中,则将其存储在云端数据库中。
错误表示web应用或浏览器中不符合预期的行为或状态。它包括错误类型、错误消息、时间戳等。错误可以分为网络错误、性能错误、权限错误、脚本错误、解析错误、渲染错误等。错误是一种特殊的事件。
对于同步错误,可以通过try/catch的方法进行捕获。对于异步的错误,可以通过window.onerror进行捕获。此外,还可以通过触发器的方法来捕获错误,触发器通过判断预设的条件是否被满足来判断错误是否发生。
对于所捕获的浏览器的错误,要找出发生错误的源事件,并构造源事件错误对。如上所述,标准事件可以具有四种类型的事件:网络事件、用户操作事件、DOM更新事件以及错误事件。网络事件包括HTTP消息发送事件、HTTP消息接收事件。错误的源事件只可能是用户操作事件。
可以利用所捕获的错误和与该错误对应的源事件来构造源事件-错误对。如果所构建的源事件-错误对没有存在于本地数据库中,则将其存储在本地数据库,而如果所构建的源事件-错误对没有存在于云端数据库中,则将其存储在云端数据库中。
优选地,可以根据与所构建的源事件-错误对对应的浏览器的上下文,对所构建的源事件-错误对进行存储。该上下文是发生源事件时浏览器的上下文。具体地,根据发生所构建的源事件-错误对中的源事件时的浏览器的上下文,将所构建的源事件-错误存储在本地数据库和/或云端数据库中。由此,如上所述,在浏览器的上下文改变时,可以将当前上下文和发生所构建的源事件-错误对中的源事件时的上下文进行比对,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。例示而非限制,可以利用上下文的哈希值来表示上下文。
优选地,可以从与所捕获的错误相对应的、按时间戳排序的最近事件序列中,基于事件之间的直接因果关系,识别导致所述所捕获的错误的源事件。具体地,可以记录最近的N个事件,并按时间戳进行排序,组成事件序列。当错误发生时,可以基于事件之间的直接因果关系,从该序列中找出导致该错误发生的源事件。由于存在多个用户操作事件,必须确定哪个事件才是真正的源事件。如上所述,错误的源事件只可能是用户操作事件。
优选地,可以在最近事件序列中,首先找到导致所捕获的错误的直接原因事件;如果直接原因事件不是用户操作事件、则再找到导致直接原因事件的上层直接原因事件并且重复该过程,直到找到一个用户操作事件为止;以及将所找到的用户操作事件识别为导致所捕获的错误的源事件。
为了确定错误的源事件,当一个新的事件发生时,将找出导致该事件的直接原因事件。例如,当用户点击一个超链接,浏览器将发送多个HTTP请求并接收HTTP响应。因此,当用户点击超链接时,一个用户操作事件(e1)将发生。当浏览器发送一个HTTP请求时,一个HTTP消息发送事件(e2)将发生。当接收到一个HTTP响应,一个HTTP消息接收事件(e3)将发生。因此,e1是e2的直接原因事件,e2是e3的直接原因事件。
直接原因事件关系的记录方法如下。对于每个用户操作事件(UOP),添加一个监听器。该监听器的作用在于记录紧随该UOP之后发生的HTTP消息发送事件(HMS)和DOM更新事件(DM),并将该UOP记录为该HMS和DM的直接原因事件。每个HTTP消息发送事件(HMS)会对应多个HTTP消息接收事件(HMR)和DOM更新事件(DM),将该HMS记录为其对应的所有HMR和DM的直接原因事件。对于每个错误事件(ERR),获取其触发者的DOM对象,然后从事件序列中得到在该ERR之前发生的、距离该ERR最近的对该DOM进行了操作的事件,将该事件记录为该ERR的直接原因事件。
如上所述,错误的源事件只可能是用户操作事件。基于所记录的直接原因事件关系,可以确定一个错误的源事件。为了确定源事件,可以首先找出该错误的直接原因事件。如果该直接原因事件不是用户操作事件、则再找到导致直接原因事件的上层直接原因事件。重复这一过程,直到该直接原因事件的类型为用户操作事件为止,将该用户操作事件作为错误的源事件。
图2是示出查找错误的源事件的示例的图。如图2所示,对于给定的事件序列和ERR,我们可以得到UOP1是ERR的源事件,这是因为:UOP1导致了HMS1,HMS1导致了HMR1,HMR1导致了DM2,,DM2导致了ERR。
优选地,在获取步骤S104中,对当前上下文进行归一化以使得归一化后的当前上下文能够与所述浏览器的其他上下文和其他浏览器的上下文进行比较,并且基于归一化后的当前上下文来进行检索。
具体地,在获取步骤S104中,可以对上下文进行归一化。归一化的好处在于保护用户的隐私,减少上下文的规模,使得不同用户的上下文是可以比较的。对于如上所述的源事件-错误的存储,可以根据与源事件-错误对对应的浏览器的归一化后的上下文,对所构建的源事件-错误对进行存储。此外,当用户跳转到一个新的上下文时,可以将当前上下文归一化以使得其可以与浏览器的其他上下文和其他浏览器的上下文进行比较。这样,可以基于归一化后的当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。
优选地,浏览器的上下文至少包括URL和cookie,分别对URL和所述cookie进行归一化,并且将归一化后的URL和归一化后的cookie进行连接从而形成归一化后的上下文。
在本申请中,对于上下文,主要使用URL和cookie为例来进行说明。图3是示出对上下文进行归一化的示例的图。如图3所示,分别对URL和cookie进行归一化,然后对上下文的其他部分进行归一化,最后,连接上下文归一化后的各个部分,从而得到归一化后的上下文。
具体地,对URL归一化是将URL变为一种标准的一致的形式。可以通过已有的方法对URL进行归一化(例如,可参见https://en.wikipedia.org/wiki/URL_normalization)。对cookie进行归一化是为了删除用户相关的信息,对cookie中的各项信息进行排序,并使得不同用户的cookie可以比较。最终,归一化后的URL和cookie被连接在一起作为归一化后的上下文。
优选地,对cookie进行归一化是通过以下方式进行的:对于cookie中的每个cookie项,如果在预先安装的并且存储有与用户有关的cookie项的名称的字典中存在该cookie项的名称,则从cookie中删除该cookie项,然后按照名称将cookie中剩余的cookie项排序并且连接在一起,从而形成归一化后的cookie。
在对cookie进行归一化时,有一个预设的字典,存储着用户相关的cookie项的名称(例如USER_ID,SESSION_ID,USERNAME,ADDRESS,USER_PROFILE等)。对每个cookie项,如果其名称存在于该字典中,则进行归一化时将会将该cookie项移除。之后,剩余的cookie项将会根据名称进行排序,然后连接成一个归一化后的cookie的字符串。
图4是示出归一化之前和归一化之后的上下文内容的具体示例的图。如图4的左侧所示,归一化之前的内容包括URL:http://WWW.EXAMPLE.com/test/index.html和具有4个cookie项的cookie。每个cookie项具有名称和值。
如图4的右侧所示,对于URL,可以通过已有的方法将其归一化为:http://www.example.com/test/。对于名称为“USER_ID”和“SESSION_ID”的cookie项,由于它们的名称存在于该字典中(这表示这些cookie项是与用户关联的内容),因此在对cookie进行归一化时,会将这些项移除。名称为“PAGE”和“OTHER_COOKIE”的cookie项根据名称进行排序后连接成一个归一化后的cookie的字符串“OTHER_COOKIE=-&PAGE=10”。最终,如图4的下侧所示,归一化后的URL和cookie被连接在一起作为归一化后的上下文:http://www.example.com/test/&OTHER_COOKIE=-&PAGE=10。
如上所述,在得到归一化后的当前上下文之后,可以基于归一化后的当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。另外需要说明的是,域名也是上下文的一个示例。域名是指用户当前访问的域名,例如www.example.com。为了加快检索速度,可以使用域名代替URL。
优选地,在获取步骤S104中,首先从本地数据库中进行检索,在本地数据库中不存在与当前上下文相对应的记录的情况下,再从云端数据库中进行检索,并且利用在云端数据库中检索到的记录来更新本地数据库;而在本地数据库中存在相对应的记录的情况下,如果本地数据库中所检索到的记录的时间戳相比于云端数据库中的相应记录的时间戳更早,则获取云端数据库中的相应记录并且用该记录替换在本地数据库中所检索到的记录。图5是示出根据本公开的实施例的从本地数据库和云端数据库中检索源事件-错误对的流程示例的流程图。在步骤S501中,首先从本地数据库中进行检索。如果在步骤S502中确定本地数据库中不存在与当前上下文相对应的相应记录,则进行到步骤S503。在步骤S503中,从云端数据库中进行检索,然后在步骤S504中,利用在云端数据库中检索到的记录来更新本地数据库。而如果在步骤S502中确定本地数据库中存在相对应的记录,那么进行到步骤S505。在步骤S505中,对本地数据库中所检索到的记录的时间戳与云端数据库中的相应记录的时间戳进行比较。如果在步骤S506中确定云端数据库中的相应记录的时间戳更新,那么在步骤S507中,获取云端数据库中的相应记录并且用该记录替换在本地数据库中所检索到的记录。
最后,在检测错误步骤S106中,在获取步骤S104中检索到一个或多个源事件-错误对的情况下,如果当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则确定浏览器中存在错误。具体地,在检测错误步骤S106中,将当前事件与在获取步骤S104中所检索到的源事件-错误对中的分别源事件进行比对,如果当前事件与至少一个源事件-错误对中的源事件相同,则确定浏览器中存在错误。
图6是示出根据本公开的实施例的进行错误检测和告警的示例的图。如图6所示,假设在获取步骤S104中基于当前上下文检索到N个源事件-错误对,将当前事件与所检索到的N个源事件-错误对中的源事件(需要说明的是,为了方便描述,在图6中,将源事件1、源事件2、源事件3以及源事件N分别写成事件1、事件2、事件3以及事件N)分别进行比对,结果发现当前事件等价于源事件1和源事件3,则确定浏览器中存在错误。
优选地,根据本公开的实施例的浏览器错误检测方法还包括报警步骤,该报警步骤可以用于在检测错误步骤S106中确定存在错误时,向使用浏览器的用户发出与错误有关的告警。结合图6所示的示例,因为在错误检测过程中发现当前事件等价于源事件1和源事件3,因此确定浏览器中存在错误,那么在报警步骤中,可以向使用浏览器的用户发出与源事件1和源事件3有关的错误1和错误3的告警。这样,可以确定当前是否可能会发生错误、以及会发生哪种错误,从而及时地向用户提出预警。
根据以上描述可知,根据本公开的实施例的浏览器错误检测方法通过实时地将当前上下文、事件序列与数据库中的会导致错误的上下文、事件序列进行比对,从而得出当前是否可能会发生错误、以及会发生哪种错误,由此能够在出现错误之前及时地向用户发出预警。此外,由于单个用户会遇到的上下文、事件和错误都是有限的,根据本公开的实施例的浏览器错误检测方法采用云在不同用户之间共享错误和相应的上下文、事件信息。
与上述方法实施例相对应地,本公开还提供了以下设备实施例。
图7是示出根据本公开的实施例的浏览器错误检测设备700的功能配置示例的框图。
如图7所示,根据本公开的实施例的浏览器错误检测设备700可以包括监视和捕获单元702、获取单元704以及检测错误单元706。接下来将描述各个单元的功能配置示例。
在监视和捕获单元702中,可以监视浏览器并且捕获浏览器的当前上下文和当前事件。
关于上下文和事件的具体描述可参见以上方法实施例中相应位置的描述,在此不再重复。
在获取单元704中,在浏览器的上下文改变时,可以基于当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。
在监视和捕获单元702中,可以捕捉到浏览器的上下文改变。
在获取单元704中,在浏览器的上下文改变时,可以通过实时地将当前上下文、事件序列与数据库中的会导致错误的上下文、事件序列进行比对,从而判断当前是否可能会发生错误。为了加快检索速度,用于检测错误的源事件-错误对可以存储在本地数据库中。由于单个用户会遇到的上下文、事件和错误都是有限的,因此可以采用云在不同用户之间共享错误和相应的上下文、事件信息。由此,为了可以在不同用户之间共享错误信息,用于检测错误的源事件-错误对可以存储在云端数据库中。
优选地,本地数据库和/或云端数据库是通过以下方式获得的:对于所捕获的浏览器的错误,识别导致所捕获的错误的源事件并且构建相应的源事件-错误对;如果所构建的源事件-错误对没有存在于本地数据库中,则将其存储在本地数据库;以及如果所构建的源事件-错误对没有存在于云端数据库中,则将其存储在云端数据库中。
关于错误和错误捕获的具体描述可参见以上方法实施例中相应位置的描述,在此不再重复。可以利用所捕获的错误和与该错误对应的源事件来构造源事件-错误对。如果所构建的源事件-错误对没有存在于本地数据库中,则将其存储在本地数据库,而如果所构建的源事件-错误对没有存在于云端数据库中,则将其存储在云端数据库中。
优选地,可以根据与所构建的源事件-错误对对应的浏览器的上下文,对所构建的源事件-错误对进行存储。该上下文是发生源事件时浏览器的上下文。具体地,根据发生所构建的源事件-错误对中的源事件时的浏览器的上下文,将所构建的源事件-错误存储在本地数据库和/或云端数据库中。由此,如上所述,在浏览器的上下文改变时,可以将当前上下文和发生所构建的源事件-错误对中的源事件时的上下文进行比对,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。例示而非限制,可以利用上下文的哈希值来表示上下文。
优选地,可以从与所捕获的错误相对应的、按时间戳排序的最近事件序列中,基于事件之间的直接因果关系,识别导致所述所捕获的错误的源事件。具体地,可以记录最近的N个事件,并按时间戳进行排序,组成事件序列。当错误发生时,可以基于事件之间的直接因果关系,从该序列中找出导致该错误发生的源事件。由于存在多个用户操作事件,必须确定哪个事件才是真正的源事件。错误的源事件只可能是用户操作事件。
优选地,可以在最近事件序列中,首先找到导致所捕获的错误的直接原因事件;如果直接原因事件不是用户操作事件、则再找到导致直接原因事件的上层直接原因事件并且重复该过程,直到找到一个用户操作事件为止;以及将所找到的用户操作事件识别为导致所捕获的错误的源事件。
查找错误的源事件的具体描述可参见以上方法实施例中相应位置的描述,在此不再重复。
优选地,在获取单元704中,对当前上下文进行归一化以使得归一化后的当前上下文能够与所述浏览器的其他上下文和其他浏览器的上下文进行比较,并且基于归一化后的当前上下文来进行检索。
具体地,在获取单元704中,可以对上下文进行归一化。归一化的好处在于保护用户的隐私,减少上下文的规模,使得不同用户的上下文是可以比较的。对于如上所述的源事件-错误的存储,可以根据与源事件-错误对对应的浏览器的归一化后的上下文,对所构建的源事件-错误对进行存储。此外,当用户跳转到一个新的上下文时,可以将当前上下文归一化以使得其可以与浏览器的其他上下文和其他浏览器的上下文进行比较。这样,可以基于归一化后的当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对。
优选地,浏览器的上下文至少包括URL和cookie,分别对URL和所述cookie进行归一化,并且将归一化后的URL和归一化后的cookie进行连接从而形成归一化后的上下文。
优选地,对cookie进行归一化是通过以下方式进行的:对于cookie中的每个cookie项,如果在预先安装的并且存储有与用户有关的cookie项的名称的字典中存在该cookie项的名称,则从cookie中删除该cookie项,然后按照名称将cookie中剩余的cookie项排序并且连接在一起,从而形成归一化后的cookie。
对上下文进行归一化的具体描述可参见以上方法实施例中相应位置的描述,在此不再重复。
优选地,在获取单元704中,首先从本地数据库中进行检索,在本地数据库中不存在与当前上下文相对应的记录的情况下,再从云端数据库中进行检索,并且利用在云端数据库中检索到的记录来更新本地数据库;而在本地数据库中存在相对应的记录的情况下,如果本地数据库中所检索到的记录的时间戳相比于云端数据库中的相应记录的时间戳更早,则获取云端数据库中的相应记录并且用该记录替换在本地数据库中所检索到的记录。
从本地数据库和云端数据库中检索源事件-错误对的具体描述可参见以上方法实施例中相应位置的描述,在此不再重复。
在检测错误单元706中,在获取单元704检索到一个或多个源事件-错误对的情况下,如果当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则确定浏览器中存在错误。具体地,在检测错误单元706中,将当前事件与在获取单元704中所检索到的源事件-错误对中的分别源事件进行比对,如果当前事件与至少一个源事件-错误对中的源事件相同,则确定浏览器中存在错误。
优选地,根据本公开的实施例的浏览器错误检测设备还包括报警单元,该报警单元可以用于在检测错误单元706中确定存在错误时,向使用浏览器的用户发出与错误有关的告警。
关于错误检测和错误告警的具体描述可参见以上方法实施例中相应位置的描述,在此不再重复。
根据以上描述可知,根据本公开的实施例的浏览器错误检测设备通过实时地将当前上下文、事件序列与数据库中的会导致错误的上下文、事件序列进行比对,从而得出当前是否可能会发生错误、以及会发生哪种错误,由此能够在出现错误之前及时地向用户发出预警。此外,由于单个用户会遇到的上下文、事件和错误都是有限的,根据本公开的实施例的浏览器错误检测设备采用云在不同用户之间共享错误和相应的上下文、事件信息。
应指出,尽管以上描述了根据本公开的实施例的浏览器错误检测设备的功能配置,但是这仅是示例而非限制,并且本领域技术人员可根据本公开的原理对以上实施例进行修改,例如可对各个实施例中的功能模块进行添加、删除或者组合等,并且这样的修改均落入本公开的范围内。
此外,还应指出,这里的装置实施例是与上述方法实施例相对应的,因此在装置实施例中未详细描述的内容可参见方法实施例中相应位置的描述,在此不再重复描述。
应理解,根据本公开的实施例的存储介质和程序产品中的机器可执行的指令还可以被配置成执行上述浏览器错误检测方法,因此在此未详细描述的内容可参考先前相应位置的描述,在此不再重复进行描述。
相应地,用于承载上述包括机器可执行的指令的程序产品的存储介质也包括在本发明的公开中。该存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
另外,还应该指出的是,上述系列处理和装置也可以通过软件和/或固件实现。在通过软件和/或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图8所示的通用个人计算机800安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。
在图8中,中央处理单元(CPU)801根据只读存储器(ROM)802中存储的程序或从存储部分808加载到随机存取存储器(RAM)803的程序执行各种处理。在RAM 803中,也根据需要存储当CPU 801执行各种处理等时所需的数据。
CPU 801、ROM 802和RAM 803经由总线804彼此连接。输入/输出接口805也连接到总线804。
下述部件连接到输入/输出接口805:输入部分806,包括键盘、鼠标等;输出部分807,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等;存储部分808,包括硬盘等;和通信部分809,包括网络接口卡比如LAN卡、调制解调器等。通信部分809经由网络比如因特网执行通信处理。
根据需要,驱动器810也连接到输入/输出接口805。可拆卸介质811比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器810上,使得从中读出的计算机程序根据需要被安装到存储部分808中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质811安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图8所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质811。可拆卸介质811的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 802、存储部分808中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
以上参照附图描述了本公开的优选实施例,但是本公开当然不限于以上示例。本领域技术人员可在所附权利要求的范围内得到各种变更和修改,并且应理解这些变更和修改自然将落入本公开的技术范围内。
例如,在以上实施例中包括在一个单元中的多个功能可以由分开的装置来实现。替选地,在以上实施例中由多个单元实现的多个功能可分别由分开的装置来实现。另外,以上功能之一可由多个单元来实现。无需说,这样的配置包括在本公开的技术范围内。
在该说明书中,流程图中所描述的步骤不仅包括以所述顺序按时间序列执行的处理,而且包括并行地或单独地而不是必须按时间序列执行的处理。此外,甚至在按时间序列处理的步骤中,无需说,也可以适当地改变该顺序。
另外,根据本公开的技术还可以如下进行配置。
附记1.一种浏览器错误检测方法,包括:
监视和捕获步骤,用于监视浏览器并且捕获所述浏览器的当前上下文和当前事件;
获取步骤,在所述浏览器的上下文改变时,基于所述当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对;以及
检测错误步骤,在所述获取步骤中检索到所述一个或多个源事件-错误对的情况下,如果所述当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则确定所述浏览器中存在错误。
附记2.根据附记1所述的浏览器错误检测方法,其中,所述本地数据库和/或云端数据库是通过以下方式获得的:
对于所捕获的浏览器的错误,识别导致所捕获的错误的源事件并且构建相应的源事件-错误对;
如果所构建的源事件-错误对没有存在于所述本地数据库中,则将其存储在所述本地数据库中;以及
如果所构建的源事件-错误对没有存在于所述云端数据库中,则将其存储在所述云端数据库中。
附记3.根据附记2所述的浏览器错误检测方法,其中,根据与所述所构建的源事件-错误对对应的浏览器的上下文,对所述所构建的源事件-错误对进行存储。
附记4.根据附记2所述的浏览器错误检测方法,其中,从与所述所捕获的错误相对应的、按时间戳排序的最近事件序列中,基于事件之间的直接因果关系,识别导致所述所捕获的错误的源事件。
附记5.根据附记4所述的浏览器错误检测方法,其中,
在所述最近事件序列中,首先找到导致所述所捕获的错误的直接原因事件;
如果所述直接原因事件不是用户操作事件、则再找到导致所述直接原因事件的上层直接原因事件并且重复该过程,直到找到一个用户操作事件为止;以及
将所找到的用户操作事件识别为导致所述所捕获的错误的源事件。
附记6.根据附记1所述的浏览器错误检测方法,其中,在所述获取步骤中,对所述当前上下文进行归一化以使得归一化后的当前上下文能够与所述浏览器的其他上下文和其他浏览器的上下文进行比较,并且基于归一化后的当前上下文来进行检索。
附记7.根据附记6所述的浏览器错误检测方法,其中,所述浏览器的上下文至少包括统一资源定位符URL和cookie,分别对所述URL和所述cookie进行归一化,并且将归一化后的URL和归一化后的cookie进行连接从而形成归一化后的上下文。
附记8.根据附记7所述的浏览器错误检测方法,其中,对所述cookie进行归一化是通过以下方式进行的:
对于所述cookie中的每个cookie项,如果在预先安装的并且存储有与用户有关的cookie项的名称的字典中存在该cookie项的名称,则从所述cookie中删除该cookie项,然后按照名称将所述cookie中剩余的cookie项排序并且连接在一起,从而形成所述归一化后的cookie。
附记9.根据附记1所述的浏览器错误检测方法,还包括报警步骤,用于在所述检测错误步骤中确定存在错误时,向使用所述浏览器的用户发出与所述错误有关的告警。
附记10.根据附记1所述的浏览器错误检测方法,在所述获取步骤中,首先从所述本地数据库中进行检索,在所述本地数据库中不存在与所述当前上下文相对应的记录的情况下,再从所述云端数据库中进行检索,并且利用在所述云端数据库中检索到的记录来更新所述本地数据库;而在所述本地数据库中存在相对应的记录的情况下,如果所述本地数据库中所检索到的记录的时间戳相比于所述云端数据库中的相应记录的时间戳更早,则获取所述云端数据库中的相应记录并且用该记录替换在所述本地数据库中所检索到的记录。
附记11.一种浏览器错误检测设备,包括:
监视和捕获单元,被配置成监视浏览器并且捕获所述浏览器的当前上下文和当前事件;
获取单元,被配置成在所述浏览器的上下文改变时,基于所述当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对;以及
检测错误单元,被配置成在所述获取单元检索到所述一个或多个源事件-错误对的情况下,如果所述当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则确定所述浏览器中存在错误。
附记12.根据附记11所述的浏览器错误检测设备,其中,所述本地数据库和/或云端数据库是通过以下方式获得的:
对于所捕获的浏览器的错误,识别导致所捕获的错误的源事件并且构建相应的源事件-错误对;
如果所构建的源事件-错误对没有存在于所述本地数据库中,则将其存储在所述本地数据库中;以及
如果所构建的源事件-错误对没有存在于所述云端数据库中,则将其存储在所述云端数据库中。
附记13.根据附记12所述的浏览器错误检测设备,其中,根据与所述所构建的源事件-错误对对应的浏览器的上下文,对所述所构建的源事件-错误对进行存储。
附记14.根据附记12所述的浏览器错误检测设备,其中,从与所述所捕获的错误相对应的、按时间戳排序的最近事件序列中,基于事件之间的直接因果关系,识别导致所述所捕获的错误的源事件。
附记15.根据附记14所述的浏览器错误检测设备,其中,
在所述最近事件序列中,首先找到导致所述所捕获的错误的直接原因事件;
如果所述直接原因事件不是用户操作事件、则再找到导致所述直接原因事件的上层直接原因事件并且重复该过程,直到找到一个用户操作事件为止;以及
将所找到的用户操作事件识别为导致所述所捕获的错误的源事件。
附记16.根据附记11所述的浏览器错误检测设备,其中,在所述获取单元中,对所述当前上下文进行归一化以使得归一化后的当前上下文能够与所述浏览器的其他上下文和其他浏览器的上下文进行比较,并且基于归一化后的当前上下文来进行检索。
附记17.根据附记16所述的浏览器错误检测设备,其中,所述浏览器的上下文至少包括统一资源定位符URL和cookie,分别对所述URL和所述cookie进行归一化,并且将归一化后的URL和归一化后的cookie进行连接从而形成归一化后的上下文。
附记18.根据附记17所述的浏览器错误检测设备,其中,对所述cookie进行归一化是通过以下方式进行的:
对于所述cookie中的每个cookie项,如果在预先安装的并且存储有与用户有关的cookie项的名称的字典中存在该cookie项的名称,则从所述cookie中删除该cookie项,然后按照名称将所述cookie中剩余的cookie项排序并且连接在一起,从而形成所述归一化后的cookie。
附记19.根据附记11所述的浏览器错误检测设备,还包括报警单元,所述报警单元被配置成在所述检测错误单元中确定存在错误时,向使用所述浏览器的用户发出与所述错误有关的告警。
附记20.根据附记11所述的浏览器错误检测设备,在所述获取单元中,首先从所述本地数据库中进行检索,在所述本地数据库中不存在与所述当前上下文相对应的记录的情况下,再从所述云端数据库中进行检索,并且利用在所述云端数据库中检索到的记录来更新所述本地数据库;而在所述本地数据库中存在相对应的记录的情况下,如果所述本地数据库中所检索到的记录的时间戳相比于所述云端数据库中的相应记录的时间戳更早,则获取所述云端数据库中的相应记录并且用该记录替换在所述本地数据库中所检索到的记录。
Claims (10)
1.一种浏览器错误检测方法,包括:
监视和捕获步骤,用于监视浏览器并且捕获所述浏览器的当前上下文和当前事件;
获取步骤,在所述浏览器的上下文改变时,基于所述当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对;以及
检测错误步骤,在所述获取步骤中检索到所述一个或多个源事件-错误对的情况下,如果所述当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则确定所述浏览器中存在错误。
2.根据权利要求1所述的浏览器错误检测方法,其中,所述本地数据库和/或云端数据库是通过以下方式获得的:
对于所捕获的浏览器的错误,识别导致所捕获的错误的源事件并且构建相应的源事件-错误对;
如果所构建的源事件-错误对没有存在于所述本地数据库中,则将其存储在所述本地数据库;以及
如果所构建的源事件-错误对没有存在于所述云端数据库中,则将其存储在所述云端数据库中。
3.根据权利要求2所述的浏览器错误检测方法,其中,根据与所述所构建的源事件-错误对对应的浏览器的上下文,对所述所构建的源事件-错误对进行存储。
4.根据权利要求2所述的浏览器错误检测方法,其中,从与所述所捕获的错误相对应的、按时间戳排序的最近事件序列中,基于事件之间的直接因果关系,识别导致所述所捕获的错误的源事件。
5.根据权利要求4所述的浏览器错误检测方法,其中,
在所述最近事件序列中,首先找到导致所述所捕获的错误的直接原因事件;
如果所述直接原因事件不是用户操作事件、则再找到导致所述直接原因事件的上层直接原因事件并且重复该过程,直到找到一个用户操作事件为止;以及
将所找到的用户操作事件识别为导致所述所捕获的错误的源事件。
6.根据权利要求1所述的浏览器错误检测方法,其中,在所述获取步骤中,对所述当前上下文进行归一化以使得归一化后的当前上下文能够与所述浏览器的其他上下文和其他浏览器的上下文进行比较,并且基于归一化后的当前上下文来进行检索。
7.根据权利要求6所述的浏览器错误检测方法,其中,所述浏览器的上下文至少包括统一资源定位符URL和cookie,分别对所述URL和所述cookie进行归一化,并且将归一化后的URL和归一化后的cookie进行连接从而形成归一化后的上下文。
8.根据权利要求7所述的浏览器错误检测方法,其中,对所述cookie进行归一化是通过以下方式进行的:
对于所述cookie中的每个cookie项,如果在预先安装的并且存储有与用户有关的cookie项的名称的字典中存在该cookie项的名称,则从所述cookie中删除该cookie项,然后按照名称将所述cookie中剩余的cookie项排序并且连接在一起,从而形成所述归一化后的cookie。
9.根据权利要求1所述的浏览器错误检测方法,还包括报警步骤,用于在所述检测错误步骤中确定存在错误时,向使用所述浏览器的用户发出与所述错误有关的告警。
10.一种浏览器错误检测设备,包括:
监视和捕获单元,被配置成监视浏览器并且捕获所述浏览器的当前上下文和当前事件;
获取单元,被配置成在所述浏览器的上下文改变时,基于所述当前上下文,从本地数据库和/或云端数据库中检索一个或多个源事件-错误对;以及
检测错误单元,被配置成在所述获取单元检索到所述一个或多个源事件-错误对的情况下,如果所述当前事件与所述一个或多个源事件-错误对中的至少一个对中的源事件相同,则确定所述浏览器中存在错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610525245.5A CN107577544A (zh) | 2016-07-05 | 2016-07-05 | 浏览器错误检测方法和浏览器错误检测设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610525245.5A CN107577544A (zh) | 2016-07-05 | 2016-07-05 | 浏览器错误检测方法和浏览器错误检测设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107577544A true CN107577544A (zh) | 2018-01-12 |
Family
ID=61048913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610525245.5A Pending CN107577544A (zh) | 2016-07-05 | 2016-07-05 | 浏览器错误检测方法和浏览器错误检测设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107577544A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271153A1 (en) * | 2006-06-27 | 2011-11-03 | Confluence Commons, Inc. | Aggregation System Error Handling |
CN102812441A (zh) * | 2010-04-06 | 2012-12-05 | 瑞厄姆芬特公司 | 自动化的恶意软件检测和修复 |
CN104239158A (zh) * | 2013-06-07 | 2014-12-24 | Sap欧洲公司 | 用于自动分析和链接错误日志的分析引擎 |
-
2016
- 2016-07-05 CN CN201610525245.5A patent/CN107577544A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110271153A1 (en) * | 2006-06-27 | 2011-11-03 | Confluence Commons, Inc. | Aggregation System Error Handling |
CN102812441A (zh) * | 2010-04-06 | 2012-12-05 | 瑞厄姆芬特公司 | 自动化的恶意软件检测和修复 |
CN104239158A (zh) * | 2013-06-07 | 2014-12-24 | Sap欧洲公司 | 用于自动分析和链接错误日志的分析引擎 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11870795B1 (en) | Identifying attack behavior based on scripting language activity | |
US11947556B1 (en) | Computerized monitoring of a metric through execution of a search query, determining a root cause of the behavior, and providing a notification thereof | |
US11134094B2 (en) | Detection of potential security threats in machine data based on pattern detection | |
US11620300B2 (en) | Real-time measurement and system monitoring based on generated dependency graph models of system components | |
US20210021614A1 (en) | Executing modular alerts and associated security actions | |
US11803548B1 (en) | Automated generation of metrics from log data | |
US11798209B1 (en) | Systems and methods for rendering a third party visualization in response to events received from search queries | |
US8769073B2 (en) | Intelligent offline caching of non-navigated content based on usage metrics | |
US9921730B2 (en) | Statistics time chart interface row mode drill down | |
US20220247770A1 (en) | Systems data availability validation | |
US20150180891A1 (en) | Using network locations obtained from multiple threat lists to evaluate network data or machine data | |
US11477263B2 (en) | Identifying un-deployed features of an application | |
US11809810B1 (en) | Dynamically displaying portions of a hierarchically organized data file in a web application | |
US11561962B2 (en) | System and method for detecting changes in webpages and generating metric correlations therefrom | |
WO2016027173A1 (en) | Method of and a system for monitoring web site consistency | |
CN107577544A (zh) | 浏览器错误检测方法和浏览器错误检测设备 | |
EP4185969A1 (en) | System and method for detecting changes in webpages and generating metric correlations therefrom | |
US11907310B2 (en) | Data correlation system and method | |
US20230096332A1 (en) | Virtual Browser For Retail Crawling Engine | |
US11934256B1 (en) | Determining ingestion latency of data intake and query system instances | |
US20230095711A1 (en) | Data Extraction Approach For Retail Crawling Engine | |
CN107231446A (zh) | 同步ip配置方法和装置 | |
WO2023049858A1 (en) | Data correlation system and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180112 |
|
WD01 | Invention patent application deemed withdrawn after publication |