一種瀏覽器自動(dòng)恢復(fù)方法及設(shè)備的制作方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)一種瀏覽器自動(dòng)恢復(fù)方法及設(shè)備,該方法包括:捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件;判斷該異常事件是否為可恢復(fù)異常事件,如果否,保存瀏覽器在發(fā)生異常事件之前的運(yùn)行信息;其中,該運(yùn)行信息至少包括瀏覽器的界面布局信息以及瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑;啟動(dòng)崩潰處理程序,并將瀏覽器進(jìn)程的句柄傳給崩潰處理程序以使崩潰處理程序通過(guò)該句柄獲得瀏覽器的轉(zhuǎn)儲(chǔ)文件,并根據(jù)轉(zhuǎn)儲(chǔ)文件分析瀏覽器發(fā)生異常的原因后觸發(fā)瀏覽器重新啟動(dòng);將保存的瀏覽器在發(fā)生異常事件之前的運(yùn)行信息加載到瀏覽器,從而恢復(fù)瀏覽器在發(fā)生異常事件之前的運(yùn)行狀態(tài)。本發(fā)明能夠在瀏覽器崩潰后自動(dòng)恢復(fù)出瀏覽器崩潰前的運(yùn)行狀態(tài),從而減少用戶(hù)的重復(fù)操作。
【專(zhuān)利說(shuō)明】一種瀏覽器自動(dòng)恢復(fù)方法及設(shè)備
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體涉及一種瀏覽器自動(dòng)恢復(fù)方法及設(shè)備。
【背景技術(shù)】
[0002]瀏覽器作為一款廣大網(wǎng)民上網(wǎng)的入口產(chǎn)品,不管是進(jìn)行網(wǎng)上搜索、娛樂(lè)或者辦公等,都需要首先通過(guò)瀏覽器和互聯(lián)網(wǎng)打交道。同時(shí),由于互聯(lián)網(wǎng)是一個(gè)很開(kāi)放的平臺(tái),網(wǎng)絡(luò)上的內(nèi)容形式千變?nèi)f化,不免會(huì)產(chǎn)生一些異常事件,甚至崩潰,因此,瀏覽器在穩(wěn)定性方面的要求很高。
[0003]實(shí)踐中發(fā)現(xiàn),再成功的瀏覽器也不能保證在運(yùn)行過(guò)程中永遠(yuǎn)不會(huì)發(fā)生崩潰而強(qiáng)制退出。而一般瀏覽器在發(fā)生崩潰之后,之前的運(yùn)行信息就發(fā)生了丟失,導(dǎo)致用戶(hù)必須重復(fù)操作。例如,用戶(hù)在瀏覽器崩潰之前打開(kāi)了很多網(wǎng)頁(yè),如果瀏覽器發(fā)生崩潰,用戶(hù)再次打開(kāi)瀏覽器后,之前打開(kāi)的頁(yè)面就丟失了,用戶(hù)不得不重復(fù)打開(kāi)這些頁(yè)面。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種瀏覽器自動(dòng)恢復(fù)方法及設(shè)備,能夠在瀏覽器崩潰后自動(dòng)恢復(fù)出瀏覽器崩潰前的運(yùn)行狀態(tài),從而減少用戶(hù)的重復(fù)操作。
[0005]本發(fā)明第一方面提供一種瀏覽器自動(dòng)恢復(fù)方法,包括:
[0006]捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件;
[0007]判斷所述異常事件是否為可恢復(fù)異常事件,如果否,則保存所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息;其中,所述運(yùn)行信息至少包括所述瀏覽器的界面布局信息以及所述瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑;
[0008]啟動(dòng)崩潰處理程序,并將所述瀏覽器進(jìn)程的句柄傳給所述崩潰處理程序以使所述崩潰處理程序通過(guò)所述句柄獲得所述瀏覽器的轉(zhuǎn)儲(chǔ)文件,并根據(jù)所述轉(zhuǎn)儲(chǔ)文件分析所述瀏覽器發(fā)生異常的原因后觸發(fā)所述瀏覽器重新啟動(dòng);
[0009]將保存的所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載到所述瀏覽器,從而恢復(fù)瀏覽器在發(fā)生所述異常事件之前的運(yùn)行狀態(tài)。
[0010]本發(fā)明第二方面提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有程序,所述程序執(zhí)行時(shí)包括所述瀏覽器自動(dòng)恢復(fù)方法的步驟。
[0011]本發(fā)明第三方面提供一種瀏覽器自動(dòng)恢復(fù)設(shè)備,包括:
[0012]捕獲模塊,用于捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件;
[0013]判斷模塊,用于判斷所述異常事件是否為可恢復(fù)異常事件;
[0014]保存模塊,用于在所述判斷模塊的判斷結(jié)果為否時(shí),保存所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息;其中,所述運(yùn)行信息至少包括所述瀏覽器的界面布局信息以及所述瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑;
[0015]崩潰處理程序模塊,用于啟動(dòng)崩潰處理程序,并將所述瀏覽器進(jìn)程的句柄傳給所述崩潰處理程序以使所述崩潰處理程序通過(guò)所述句柄獲得所述瀏覽器的轉(zhuǎn)儲(chǔ)文件,并根據(jù)所述轉(zhuǎn)儲(chǔ)文件分析所述瀏覽器發(fā)生異常的原因后觸發(fā)所述瀏覽器重新啟動(dòng);
[0016]加載模塊,用于將保存的所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載到所述瀏覽器,從而恢復(fù)瀏覽器在發(fā)生所述異常事件之前的運(yùn)行狀態(tài)。
[0017]通過(guò)上述分析可知,本發(fā)明實(shí)施例提供的瀏覽器自動(dòng)恢復(fù)方法及設(shè)備能夠在瀏覽器產(chǎn)品發(fā)生不可恢復(fù)的異常事件(即瀏覽器崩潰)后,先保存瀏覽器在發(fā)生崩潰之前的運(yùn)行信息,這樣在瀏覽器下一次啟動(dòng)時(shí),能夠?qū)g覽器在發(fā)生崩潰之前的運(yùn)行信息加載至瀏覽器,從而可以恢復(fù)瀏覽器在發(fā)生崩潰之前的運(yùn)行狀態(tài)。從而能夠最大限度的在瀏覽器發(fā)生崩潰之后,彌補(bǔ)崩潰帶來(lái)的損失,減少用戶(hù)的重復(fù)操作。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0018]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1是本發(fā)明實(shí)施例提供的一種瀏覽器自動(dòng)恢復(fù)方法的流程圖;
[0020]圖2是本發(fā)明實(shí)施例提供的另一種瀏覽器自動(dòng)恢復(fù)方法的流程圖;
[0021]圖3是本發(fā)明實(shí)施例提供的一種瀏覽器運(yùn)行信息存儲(chǔ)方法的流程圖;
[0022]圖4是本發(fā)明實(shí)施例提供的一種瀏覽器運(yùn)行信息記載方法的流程圖;
[0023]圖5是本發(fā)明實(shí)施例提供的一種瀏覽器自動(dòng)恢復(fù)設(shè)備的結(jié)構(gòu)圖;
[0024]圖6是本發(fā)明實(shí)施例提供的另一種瀏覽器自動(dòng)恢復(fù)設(shè)備的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0025]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0026]本發(fā)明實(shí)施例提供一種瀏覽器自動(dòng)恢復(fù)方法及設(shè)備,能夠在瀏覽器崩潰后自動(dòng)恢復(fù)出瀏覽器崩潰前的運(yùn)行狀態(tài),從而可以彌補(bǔ)瀏覽器崩潰帶來(lái)的損失,減少用戶(hù)的重復(fù)操作。以下分別進(jìn)行詳細(xì)說(shuō)明。
[0027]請(qǐng)參閱圖1,圖1是本發(fā)明實(shí)施例提供的一種瀏覽器自動(dòng)恢復(fù)方法的流程圖。如圖1所示,該方法可以包括以下步驟。
[0028]101、捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
[0029]本發(fā)明實(shí)施例中,瀏覽器可以是QQ瀏覽器、微軟IE瀏覽器、歐朋瀏覽器(Opera)、360安全瀏覽器、搜狗瀏覽器、谷歌瀏覽器、行者無(wú)疆瀏覽器以及遨游瀏覽器等等,本發(fā)明實(shí)施例對(duì)瀏覽器的類(lèi)型不作具體限定。
[0030]作為一種可選的實(shí)施方式,本發(fā)明實(shí)施例可以米用向量化異常處理VectoredException Handler、無(wú)效的參數(shù)處理程序Invalid Parameter Handler或純虛函數(shù)調(diào)用異常處理Purecall Handler來(lái)捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
[0031]102、判斷異常事件是否為可恢復(fù)異常事件,如果否,則保存瀏覽器在發(fā)生異常事件之前的運(yùn)行信息;其中,該運(yùn)行信息至少包括瀏覽器的界面布局信息以及瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑。
[0032]其中,若判斷出異常事件是可恢復(fù)異常事件,那么本發(fā)明實(shí)施例可以采用容錯(cuò)方式對(duì)該瀏覽器的運(yùn)行狀態(tài)進(jìn)行恢復(fù)。
[0033]103、啟動(dòng)崩潰處理程序,并將瀏覽器進(jìn)程的句柄傳給崩潰處理程序以使崩潰處理程序通過(guò)該句柄獲得瀏覽器的轉(zhuǎn)儲(chǔ)(dump)文件,并根據(jù)轉(zhuǎn)儲(chǔ)文件分析瀏覽器發(fā)生異常的原因后觸發(fā)該瀏覽器重新啟動(dòng)。
[0034]104、將保存的該瀏覽器在發(fā)生異常事件之前的運(yùn)行信息加載到該瀏覽器,從而恢復(fù)該瀏覽器在發(fā)生異常事件之前的運(yùn)行狀態(tài)。
[0035]在圖1所描述的瀏覽器自動(dòng)恢復(fù)方法中,能夠在瀏覽器產(chǎn)品發(fā)生不可恢復(fù)的異常事件(即瀏覽器崩潰)后,先保存瀏覽器在發(fā)生崩潰之前的運(yùn)行信息,這樣在瀏覽器下一次啟動(dòng)時(shí),能夠?qū)g覽器在發(fā)生崩潰之前的運(yùn)行信息加載至瀏覽器,從而可以恢復(fù)瀏覽器在發(fā)生崩潰之前的運(yùn)行狀態(tài)。從而能夠最大限度的在瀏覽器發(fā)生崩潰之后,彌補(bǔ)崩潰帶來(lái)的損失,減少用戶(hù)的重復(fù)操作。
[0036]為了更好地理解本發(fā)明,下面進(jìn)一步結(jié)合圖2所示的瀏覽器自動(dòng)恢復(fù)方法對(duì)本發(fā)明進(jìn)行詳細(xì)介紹。如圖2所示,該瀏覽器自動(dòng)恢復(fù)方法可以包括以下步驟。
[0037]201、瀏覽器運(yùn)行過(guò)程中發(fā)生異常事件。
[0038]舉例來(lái)說(shuō),瀏覽器在運(yùn)行過(guò)程中可以發(fā)生內(nèi)存非法訪問(wèn)異常EXCEPT 10N_ACCESS_VIOLATION、棧溢出異常EXCEPT 10N_STACK_0VERFL0W等一系列不可恢復(fù)的異常事件,這些異常事件會(huì)直接導(dǎo)致瀏覽器關(guān)閉退出。
[0039]202、捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
[0040]當(dāng)瀏覽器在運(yùn)行過(guò)程中發(fā)生異常事件之后,首先第一步就是必須知道瀏覽器發(fā)生了異常事件。其中,捕獲異常事件可以采用系統(tǒng)綁定的程序來(lái)實(shí)現(xiàn)的。例如,本發(fā)明實(shí)施例可以米用系統(tǒng)綁定的程序 Vectored Exception Handler、Invalid Parameter Handler 或Purecall Handler來(lái)捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。這些程序可以捕獲包括內(nèi)存非法訪問(wèn)異常 EXCEPT10N_ACCESS_V10LAT10N、棧溢出異常 EXCEPT 10N_STACK_0VERFL0W 等一系列不可恢復(fù)的異常事件在內(nèi)的大多數(shù)異常事件。
[0041]203、判斷異常事件是否為可恢復(fù)異常事件,如果否,則執(zhí)行步驟204,如果是,則執(zhí)行步驟208。
[0042]204、保存瀏覽器在發(fā)生異常事件之前的運(yùn)行信息;其中,該運(yùn)行信息可以包括瀏覽器運(yùn)行的網(wǎng)頁(yè)標(biāo)簽、瀏覽器的界面布局信息、瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑、瀏覽器的下載任務(wù)以及瀏覽器的皮膚修改信息。
[0043]其中,在瀏覽器發(fā)生不可恢復(fù)的異常事件(即瀏覽器崩潰)時(shí),需要將瀏覽器崩潰之前的運(yùn)行信息進(jìn)行保存,以便用于后續(xù)瀏覽器的運(yùn)行狀態(tài)恢復(fù)。而且,瀏覽器崩潰之前的運(yùn)行信息必須保存在本地外部設(shè)備,因?yàn)楫?dāng)瀏覽器崩潰退出時(shí),內(nèi)存中保存的運(yùn)行信息就會(huì)丟失,無(wú)法恢復(fù)。
[0044]請(qǐng)一并參閱圖3,圖3是本發(fā)明實(shí)施例提供的一種瀏覽器運(yùn)行信息存儲(chǔ)方法的流程圖。該方法可以將瀏覽器崩潰之前的運(yùn)行信息進(jìn)行保存,確保瀏覽器崩潰之前的運(yùn)行信息不會(huì)丟失。如圖3所示,該瀏覽器運(yùn)行信息存儲(chǔ)方法可以包括以下步驟:[0045]301、獲取瀏覽器在發(fā)生異常事件之前的運(yùn)行信息。
[0046]其中,本發(fā)明實(shí)施例可以從內(nèi)存中獲取瀏覽器在發(fā)生異常事件之前的運(yùn)行信息。
[0047]302、將運(yùn)行信息進(jìn)行數(shù)據(jù)串行化,獲得可擴(kuò)展標(biāo)記語(yǔ)言(Extensible MarkupLanguage, XML)格式的文件。
[0048]303、將XML格式的文件保存至本地外部設(shè)備。
[0049]通過(guò)圖3所示的方法,可以將瀏覽器崩潰之前的運(yùn)行信息進(jìn)行保存至本地外部設(shè)備,從而可以確保瀏覽器崩潰之前的運(yùn)行信息不會(huì)丟失。
[0050]205、啟動(dòng)崩潰處理程序。
[0051]其中,在保存完瀏覽器崩潰之前的運(yùn)行信息之后,本發(fā)明實(shí)施例可以啟動(dòng)崩潰處理程序來(lái)執(zhí)行瀏覽器崩潰后的崩潰處理操作。
[0052]206、將瀏覽器進(jìn)程的句柄傳給崩潰處理程序以使崩潰處理程序通過(guò)該句柄獲得瀏覽器的轉(zhuǎn)儲(chǔ)dump文件,并根據(jù)轉(zhuǎn)儲(chǔ)文件分析瀏覽器發(fā)生異常的原因。
[0053]進(jìn)一步地,當(dāng)瀏覽器運(yùn)行多個(gè)進(jìn)程時(shí),如果一個(gè)主進(jìn)程發(fā)生了崩潰,其他子進(jìn)程也就沒(méi)有存在的意義了,此時(shí)崩潰處理程序來(lái)可以將主進(jìn)程已崩潰的消息通知其他子進(jìn)程,以使其他子進(jìn)程各自進(jìn)行自己的收尾處理工作。
[0054]207、崩潰處理程序根據(jù)轉(zhuǎn)儲(chǔ)dump文件分析瀏覽器發(fā)生異常的原因后觸發(fā)該瀏覽
器重新啟動(dòng)。
[0055]其中,崩潰處理程序觸發(fā)該瀏覽器重新啟動(dòng)之后,崩潰處理程序就完成了崩潰處理操作,崩潰處理程序會(huì)默默退出。
[0056]其中,重新啟動(dòng)的瀏覽器只處于初始化狀態(tài),完全不是上一次崩潰之前的運(yùn)行狀態(tài)。要想瀏覽器恢復(fù)到崩潰之前的運(yùn)行狀態(tài),就需要將保存的該瀏覽器在發(fā)生異常事件之前的運(yùn)行信息加載到該瀏覽器。
[0057]208、將保存的該瀏覽器在發(fā)生異常事件之前的運(yùn)行信息加載到該瀏覽器,從而恢復(fù)該瀏覽器在發(fā)生異常事件之前的運(yùn)行狀態(tài),結(jié)束本流程。
[0058]請(qǐng)一并參閱圖4,圖4是本發(fā)明實(shí)施例提供的一種瀏覽器運(yùn)行信息加載方法的流程圖。該方法可以在瀏覽器重新啟動(dòng)之后,將瀏覽器在崩潰之前的運(yùn)行信息加載至瀏覽器,從而恢復(fù)出瀏覽器崩潰之前的運(yùn)行狀態(tài)。如圖4所示,該瀏覽器運(yùn)行信息加載方法可以包括以下步驟:
[0059]401、從本地外部設(shè)備中獲取XML格式的文件。
[0060]402、將XML格式的文件進(jìn)行數(shù)據(jù)反序列化,獲得瀏覽器在發(fā)生異常事件之前的運(yùn)行信息;
[0061]403、將瀏覽器在發(fā)生異常事件之前的運(yùn)行信息加載至瀏覽器。
[0062]可見(jiàn),通過(guò)圖4所示方法可以在瀏覽器重新啟動(dòng)之后,將瀏覽器在崩潰之前的運(yùn)行信息加載至瀏覽器,從而恢復(fù)出瀏覽器崩潰之前的運(yùn)行狀態(tài)。
[0063]209、若判斷出異常事件是可恢復(fù)異常事件,則采用容錯(cuò)方式對(duì)該瀏覽器的運(yùn)行狀態(tài)進(jìn)行恢復(fù),結(jié)束本流程。
[0064]在圖2所描述的瀏覽器自動(dòng)恢復(fù)方法中,能夠在瀏覽器產(chǎn)品發(fā)生不可恢復(fù)的異常事件(即瀏覽器崩潰)后,先在外部存儲(chǔ)設(shè)備中保存瀏覽器在發(fā)生崩潰之前的運(yùn)行信息,這樣在瀏覽器下一次啟動(dòng)時(shí),能夠?qū)g覽器在發(fā)生崩潰之前的運(yùn)行信息加載至瀏覽器,從而可以恢復(fù)瀏覽器在發(fā)生崩潰之前的運(yùn)行狀態(tài)。從而能夠最大限度的在瀏覽器發(fā)生崩潰之后,彌補(bǔ)崩潰帶來(lái)的損失,減少用戶(hù)的重復(fù)操作。同時(shí),通過(guò)圖2所描述的瀏覽器自動(dòng)恢復(fù)方法可以增加用戶(hù)使用瀏覽器產(chǎn)品的信心,用戶(hù)最害怕的就是辛苦的瀏覽記錄以及所做的修改因?yàn)闉g覽器崩潰而遺失了,這樣將大大的打擊用戶(hù)使用瀏覽器產(chǎn)品的信心,從而影響了用戶(hù)對(duì)瀏覽器產(chǎn)品的體驗(yàn)感。而采用了本發(fā)明提供的瀏覽器崩潰后自動(dòng)恢復(fù)方法后,即使瀏覽器發(fā)生了崩潰退出,用戶(hù)在體驗(yàn)上也察覺(jué)不到崩潰前后的不同,可以說(shuō)對(duì)用戶(hù)是一種透明的操作。
[0065]請(qǐng)參閱圖5,圖5是本發(fā)明實(shí)施例提供的一種瀏覽器自動(dòng)恢復(fù)設(shè)備的結(jié)構(gòu)圖。其中,圖5所示的瀏覽器自動(dòng)恢復(fù)設(shè)備在物理實(shí)現(xiàn)上可以是處理器、芯片等。如圖5所示,該瀏覽器自動(dòng)恢復(fù)設(shè)備可以包括:
[0066]捕獲模塊501,用于捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
[0067]判斷模塊502,用于判斷該異常事件是否為可恢復(fù)異常事件。
[0068]保存模塊503,用于在判斷模塊502的判斷結(jié)果為否時(shí),保存瀏覽器在發(fā)生該異常事件之前的運(yùn)行信息;其中,該運(yùn)行信息至少包括瀏覽器的界面布局信息以及瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑。
[0069]崩潰處理程序模塊504,用于啟動(dòng)崩潰處理程序,并將瀏覽器進(jìn)程的句柄傳給崩潰處理程序以使崩潰處理程序通過(guò)該句柄獲得瀏覽器的轉(zhuǎn)儲(chǔ)dump文件,并根據(jù)轉(zhuǎn)儲(chǔ)dump文件分析瀏覽器發(fā)生異常的原因后觸發(fā)瀏覽器重新啟動(dòng)。
[0070]加載模塊505,用于將保存的瀏覽器在發(fā)生該異常事件之前的運(yùn)行信息加載到瀏覽器,從而恢復(fù)瀏覽器在發(fā)生異常事件之前的運(yùn)行狀態(tài)。
[0071]其中,捕獲模塊501具體用于采用向量化異常處理Vectored Exception Handler、非法參數(shù)異常處理Invalid Parameter Handler或純虛函數(shù)調(diào)用異常處理PurecallHandler來(lái)捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
[0072]請(qǐng)一并參閱圖6,圖6是本發(fā)明實(shí)施例提供的另一種瀏覽器自動(dòng)恢復(fù)設(shè)備的結(jié)構(gòu)圖。其中,圖6所示的瀏覽器自動(dòng)恢復(fù)設(shè)備是由圖5所示的瀏覽器自動(dòng)恢復(fù)設(shè)備進(jìn)行優(yōu)化得到的。在圖6所示的瀏覽器自動(dòng)恢復(fù)設(shè)備中,保存模塊503包括:
[0073]第一獲取子模塊5031,用于獲取瀏覽器在發(fā)生異常事件之前的運(yùn)行信息;
[0074]串行化子模塊5032,用于將該運(yùn)行信息進(jìn)行數(shù)據(jù)串行化,獲得XML格式的文件;
[0075]保存子模塊5033,用于將該XML格式的文件保存至本地外部設(shè)備。
[0076]相應(yīng)地,在圖6所不的瀏覽器自動(dòng)恢復(fù)設(shè)備中,加載模塊505包括:
[0077]第二獲取子模塊5051,用于從本地外部設(shè)備中獲取XML格式的文件;
[0078]反序列化子模塊5052,用于將XML格式的文件進(jìn)行數(shù)據(jù)反序列化,獲得瀏覽器在發(fā)生異常事件之前的運(yùn)行信息;
[0079]加載子模塊5053,用于將瀏覽器在發(fā)生異常事件之前的運(yùn)行信息加載至瀏覽器。
[0080]可選地,圖6所示的瀏覽器自動(dòng)恢復(fù)設(shè)備還可以包括:
[0081]容錯(cuò)模塊506,用于在判斷模塊502的判斷結(jié)果為時(shí)是,采用容錯(cuò)方式對(duì)瀏覽器的運(yùn)行狀態(tài)進(jìn)行恢復(fù)。
[0082]本發(fā)明實(shí)施例中,瀏覽器崩潰之前的運(yùn)行信息還可以包括瀏覽器運(yùn)行的網(wǎng)頁(yè)標(biāo)簽、瀏覽器的下載任務(wù)以及瀏覽器的皮膚修改信息,本發(fā)明實(shí)施例不作限定。[0083]圖5、圖6所描述的瀏覽器自動(dòng)恢復(fù)設(shè)備能夠在瀏覽器產(chǎn)品發(fā)生不可恢復(fù)的異常事件(即瀏覽器崩潰)后,先保存瀏覽器在發(fā)生崩潰之前的運(yùn)行信息,這樣在瀏覽器下一次啟動(dòng)時(shí),能夠?qū)g覽器在發(fā)生崩潰之前的運(yùn)行信息加載至瀏覽器,從而可以恢復(fù)瀏覽器在發(fā)生崩潰之前的運(yùn)行狀態(tài)。從而能夠最大限度的在瀏覽器發(fā)生崩潰之后,彌補(bǔ)崩潰帶來(lái)的損失,減少用戶(hù)的重復(fù)操作。同時(shí),通過(guò)圖5、圖6所描述的瀏覽器自動(dòng)恢復(fù)設(shè)備可以增加用戶(hù)使用瀏覽器產(chǎn)品的信心,用戶(hù)最害怕的就是辛苦的瀏覽記錄以及所做的修改因?yàn)闉g覽器崩潰而遺失了,這樣將大大的打擊用戶(hù)使用瀏覽器產(chǎn)品的信心,從而影響了用戶(hù)對(duì)瀏覽器產(chǎn)品的體驗(yàn)感。而采用了本發(fā)明提供的瀏覽器崩潰后自動(dòng)恢復(fù)方法后,即使瀏覽器發(fā)生了崩潰退出,用戶(hù)在體驗(yàn)上也察覺(jué)不到崩潰前后的不同,可以說(shuō)對(duì)用戶(hù)是一種透明的操作。
[0084]本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)存儲(chǔ)介質(zhì)中,該計(jì)算機(jī)存儲(chǔ)介質(zhì)可以包括:閃存盤(pán)、只讀存儲(chǔ)器(Read-Only Memory, ROM)、隨機(jī)存取器(RandomAccess Memory, RAM)、磁盤(pán)或光盤(pán)等。
[0085]以上對(duì)本發(fā)明實(shí)施例所提供的瀏覽器崩潰后自動(dòng)恢復(fù)方法及設(shè)備進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種瀏覽器自動(dòng)恢復(fù)方法,其特征在于,包括: 捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件; 判斷所述異常事件是否為可恢復(fù)異常事件,如果否,則保存所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息;其中,所述運(yùn)行信息至少包括所述瀏覽器的界面布局信息以及所述瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑; 啟動(dòng)崩潰處理程序,并將所述瀏覽器進(jìn)程的句柄傳給所述崩潰處理程序以使所述崩潰處理程序通過(guò)所述句柄獲得所述瀏覽器的轉(zhuǎn)儲(chǔ)文件,并根據(jù)所述轉(zhuǎn)儲(chǔ)文件分析所述瀏覽器發(fā)生異常的原因后觸發(fā)所述瀏覽器重新啟動(dòng); 將保存的所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載到所述瀏覽器,從而恢復(fù)瀏覽器在發(fā)生所述異常事件之前的運(yùn)行狀態(tài)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件包括: 采用量化異常處理程序的向量化異常處理Vectored Exception Handler、無(wú)效的參數(shù)處理程序Invalid Parameter Handler或純虛函數(shù)調(diào)用異常處理Purecall Handler來(lái)捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述保存所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息包括: 獲取所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息; 將所述運(yùn)行信息進(jìn)行數(shù)據(jù)串行化,獲得可擴(kuò)展標(biāo)記語(yǔ)言XML格式的文件; 將所述XML格式的文件保存至本地外部設(shè)備。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將保存的所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載到所述瀏覽器包括: 從所述本地外部設(shè)備中獲取XML格式的文件; 將所述XML格式的文件進(jìn)行數(shù)據(jù)反序列化,獲得所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息; 將所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載至所述瀏覽器。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述運(yùn)行信息還包括所述瀏覽器運(yùn)行的網(wǎng)頁(yè)標(biāo)簽、所述瀏覽器的下載任務(wù)以及所述瀏覽器的皮膚修改信息。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,若判斷出所述異常事件是可恢復(fù)異常事件,所述方法還包括: 采用容錯(cuò)方式對(duì)所述瀏覽器的運(yùn)行狀態(tài)進(jìn)行恢復(fù)。
7.一種計(jì)算機(jī)存儲(chǔ)介質(zhì),其特征在于, 所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有程序,所述程序執(zhí)行時(shí)包括如權(quán)利要求1飛任一項(xiàng)所述的步驟。
8.—種瀏覽器自動(dòng)恢復(fù)設(shè)備,其特征在于,包括: 捕獲模塊,用于捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件; 判斷模塊,用于判斷所述異常事件是否為可恢復(fù)異常事件; 保存模塊,用于在所述判斷模塊的判斷結(jié)果為否時(shí),保存所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息;其中,所述運(yùn)行信息至少包括所述瀏覽器的界面布局信息以及所述瀏覽器運(yùn)行的網(wǎng)頁(yè)的導(dǎo)航路徑; 崩潰處理程序模塊,用于啟動(dòng)崩潰處理程序,并將所述瀏覽器進(jìn)程的句柄傳給所述崩潰處理程序以使所述崩潰處理程序通過(guò)所述句柄獲得所述瀏覽器的轉(zhuǎn)儲(chǔ)文件,并根據(jù)所述轉(zhuǎn)儲(chǔ)文件分析所述瀏覽器發(fā)生異常的原因后觸發(fā)所述瀏覽器重新啟動(dòng); 加載模塊,用于將保存的所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載到所述瀏覽器,從而恢復(fù)瀏覽器在發(fā)生所述異常事件之前的運(yùn)行狀態(tài)。
9.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述捕獲模塊具體用于采用向量化異常處理 Vectored Exception Handler、無(wú)效的參數(shù)處理程序 Invalid Parameter Handler 或純虛函數(shù)調(diào)用異常處理Purecall Handler來(lái)捕獲瀏覽器運(yùn)行過(guò)程中發(fā)生的異常事件。
10.根據(jù)權(quán)利要求8或9所述的設(shè)備,其特征在于,所述保存模塊包括: 第一獲取子模塊,用于獲取所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息; 串行化子模塊,用于將所述運(yùn)行信息進(jìn)行數(shù)據(jù)串行化,獲得可擴(kuò)展標(biāo)記語(yǔ)言XML格式的文件; 保存子模塊,用于將所述XML格式的文件保存至本地外部設(shè)備。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其特征在于,所述加載模塊包括: 第二獲取子模塊,用于從所述本地外部設(shè)備中獲取XML格式的文件; 反序列化子模塊,用于將所述XML格式的文件進(jìn)行數(shù)據(jù)反序列化,獲得所述瀏覽器在發(fā)生所述異常事件之前的運(yùn)行信息; 加載子模塊,用于將所述瀏 覽器在發(fā)生所述異常事件之前的運(yùn)行信息加載至所述瀏覽器。
12.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,所述運(yùn)行信息還包括所述瀏覽器運(yùn)行的網(wǎng)頁(yè)標(biāo)簽、所述瀏覽器的下載任務(wù)以及所述瀏覽器的皮膚修改信息。
13.根據(jù)權(quán)利要求8所述的設(shè)備,其特征在于,還包括: 容錯(cuò)模塊,用于在所述判斷模塊的判斷結(jié)果為時(shí)是,采用容錯(cuò)方式對(duì)所述瀏覽器的運(yùn)行狀態(tài)進(jìn)行恢復(fù)。
【文檔編號(hào)】G06F11/07GK103678019SQ201210344078
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年9月17日 優(yōu)先權(quán)日:2012年9月17日
【發(fā)明者】楊剛 申請(qǐng)人:騰訊科技(深圳)有限公司