34 from .Tools import WebBrowserTools, Scripts |
34 from .Tools import WebBrowserTools, Scripts |
35 |
35 |
36 from .Network.LoadRequest import LoadRequest, LoadRequestOperations |
36 from .Network.LoadRequest import LoadRequest, LoadRequestOperations |
37 |
37 |
38 from . import WebInspector |
38 from . import WebInspector |
|
39 from .Tools.WebBrowserTools import readAllFileContents, pixmapToDataUrl |
39 |
40 |
40 import Preferences |
41 import Preferences |
41 import UI.PixmapCache |
42 import UI.PixmapCache |
42 ##import Globals |
43 ##import Globals |
43 |
44 |
118 self.page().linkHovered.connect(self.__linkHovered) |
119 self.page().linkHovered.connect(self.__linkHovered) |
119 |
120 |
120 self.loadStarted.connect(self.__loadStarted) |
121 self.loadStarted.connect(self.__loadStarted) |
121 self.loadProgress.connect(self.__loadProgress) |
122 self.loadProgress.connect(self.__loadProgress) |
122 self.loadFinished.connect(self.__loadFinished) |
123 self.loadFinished.connect(self.__loadFinished) |
123 # TODO: renderProcessTerminated |
124 self.renderProcessTerminated.connect(self.__renderProcessTerminated) |
124 ## self.page().renderProcessTerminated.connect(self.__renderProcessTerminated) |
|
125 |
125 |
126 ## self.page().setForwardUnsupportedContent(True) |
126 ## self.page().setForwardUnsupportedContent(True) |
127 ## self.page().unsupportedContent.connect(self.__unsupportedContent) |
127 ## self.page().unsupportedContent.connect(self.__unsupportedContent) |
128 |
128 |
129 ## self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded) |
129 ## self.page().databaseQuotaExceeded.connect(self.__databaseQuotaExceeded) |
1498 |
1498 |
1499 ########################################################################### |
1499 ########################################################################### |
1500 ## Signal handlers below |
1500 ## Signal handlers below |
1501 ########################################################################### |
1501 ########################################################################### |
1502 |
1502 |
1503 # TODO: renderProcessTerminated |
1503 def __renderProcessTerminated(self, status, exitCode): |
1504 ## def __renderProcessTerminated(self, status, exitCode): |
1504 """ |
1505 ## print(status, exitCode) |
1505 Private slot handling a crash of the web page render process. |
1506 ## |
1506 |
|
1507 @param status termination status |
|
1508 @type QWebEnginePage.RenderProcessTerminationStatus |
|
1509 @param exitCode exit code of the process |
|
1510 @type int |
|
1511 """ |
|
1512 if status == QWebEnginePage.NormalTerminationStatus: |
|
1513 return |
|
1514 |
|
1515 QTimer.singleShot(0, self.__showTabCrashPage) |
|
1516 |
|
1517 def __showTabCrashPage(self): |
|
1518 """ |
|
1519 Private slot to show the tab crash page. |
|
1520 """ |
|
1521 html = readAllFileContents(":/html/tabCrashPage.html") |
|
1522 html = html.replace("@IMAGE@", pixmapToDataUrl( |
|
1523 qApp.style().standardIcon(QStyle.SP_MessageBoxWarning).pixmap( |
|
1524 48, 48)).toString()) |
|
1525 html = html.replace("@FAVICON@", pixmapToDataUrl( |
|
1526 qApp.style() .standardIcon(QStyle.SP_MessageBoxWarning).pixmap( |
|
1527 16, 16)).toString()) |
|
1528 html = html.replace("@TITLE@", self.tr("Failed loading page")) |
|
1529 html = html.replace("@H1@", self.tr("Failed loading page")) |
|
1530 html = html.replace( |
|
1531 "@LI-1@", |
|
1532 self.tr("Something went wrong while loading this page.")) |
|
1533 html = html.replace( |
|
1534 "@LI-2@", |
|
1535 self.tr( |
|
1536 "Try reloading the page or closing some tabs to make more" |
|
1537 " memory available.")) |
|
1538 html = html.replace( |
|
1539 "@BUTTON@", self.tr("Reload Page")) |
|
1540 self.page().setHtml(html, self.url()) |
|
1541 |
1507 def __loadStarted(self): |
1542 def __loadStarted(self): |
1508 """ |
1543 """ |
1509 Private method to handle the loadStarted signal. |
1544 Private method to handle the loadStarted signal. |
1510 """ |
1545 """ |
1511 self.__isLoading = True |
1546 self.__isLoading = True |