28 import sip |
28 import sip |
29 |
29 |
30 from E5Gui import E5MessageBox, E5FileDialog |
30 from E5Gui import E5MessageBox, E5FileDialog |
31 |
31 |
32 import WebBrowser |
32 import WebBrowser |
33 import WebBrowser.WebBrowserWindow |
33 from WebBrowser.WebBrowserWindow import WebBrowserWindow |
34 |
34 |
35 from .JavaScript.ExternalJsObject import ExternalJsObject |
35 from .JavaScript.ExternalJsObject import ExternalJsObject |
36 |
36 |
37 from .Tools.WebHitTestResult import WebHitTestResult |
37 from .Tools.WebHitTestResult import WebHitTestResult |
38 from .Tools import Scripts |
38 from .Tools import Scripts |
129 """ |
129 """ |
130 Constructor |
130 Constructor |
131 |
131 |
132 @param parent parent widget of this window (QWidget) |
132 @param parent parent widget of this window (QWidget) |
133 """ |
133 """ |
134 super(WebBrowserPage, self).__init__(parent) |
134 super(WebBrowserPage, self).__init__( |
|
135 WebBrowserWindow.webProfile(), parent) |
135 |
136 |
136 self.__setupWebChannel() |
137 self.__setupWebChannel() |
137 |
138 |
138 ## self.setPluginFactory(self.webPluginFactory()) |
139 ## self.setPluginFactory(self.webPluginFactory()) |
139 ## |
140 ## |
140 ## self.__lastRequest = None |
141 ## self.__lastRequest = None |
141 ## self.__lastRequestType = QWebPage.NavigationTypeOther |
142 ## self.__lastRequestType = QWebPage.NavigationTypeOther |
142 ## |
143 ## |
143 ## import WebBrowser.WebBrowserWindow |
|
144 ## from .Network.NetworkAccessManagerProxy import \ |
144 ## from .Network.NetworkAccessManagerProxy import \ |
145 ## NetworkAccessManagerProxy |
145 ## NetworkAccessManagerProxy |
146 ## self.__proxy = NetworkAccessManagerProxy(self) |
146 ## self.__proxy = NetworkAccessManagerProxy(self) |
147 ## self.__proxy.setWebPage(self) |
147 ## self.__proxy.setWebPage(self) |
148 ## self.__proxy.setPrimaryNetworkAccessManager( |
148 ## self.__proxy.setPrimaryNetworkAccessManager( |
149 ## WebBrowser.WebBrowserWindow.WebBrowserWindow.networkManager()) |
149 ## WebBrowserWindow.networkManager()) |
150 ## self.setNetworkAccessManager(self.__proxy) |
150 ## self.setNetworkAccessManager(self.__proxy) |
151 |
151 |
152 self.__sslConfiguration = None |
152 self.__sslConfiguration = None |
153 ## self.__proxy.finished.connect(self.__managerFinished) |
153 ## self.__proxy.finished.connect(self.__managerFinished) |
154 ## |
154 ## |
161 ## self.__restoreFrameStateRequested) |
161 ## self.__restoreFrameStateRequested) |
162 self.featurePermissionRequested.connect( |
162 self.featurePermissionRequested.connect( |
163 self.__featurePermissionRequested) |
163 self.__featurePermissionRequested) |
164 |
164 |
165 self.authenticationRequired.connect( |
165 self.authenticationRequired.connect( |
166 WebBrowser.WebBrowserWindow.WebBrowserWindow.networkManager() |
166 WebBrowserWindow.networkManager().authentication) |
167 .authentication) |
|
168 |
167 |
169 self.proxyAuthenticationRequired.connect( |
168 self.proxyAuthenticationRequired.connect( |
170 WebBrowser.WebBrowserWindow.WebBrowserWindow.networkManager() |
169 WebBrowserWindow.networkManager().proxyAuthentication) |
171 .proxyAuthentication) |
|
172 |
170 |
173 def acceptNavigationRequest(self, url, type_, isMainFrame): |
171 def acceptNavigationRequest(self, url, type_, isMainFrame): |
174 """ |
172 """ |
175 Public method to determine, if a request may be accepted. |
173 Public method to determine, if a request may be accepted. |
176 |
174 |
195 QDesktopServices.openUrl(url) |
193 QDesktopServices.openUrl(url) |
196 return False |
194 return False |
197 |
195 |
198 # AdBlock |
196 # AdBlock |
199 if url.scheme() == "abp": |
197 if url.scheme() == "abp": |
200 if WebBrowser.WebBrowserWindow.WebBrowserWindow.adBlockManager()\ |
198 if WebBrowserWindow.adBlockManager().addSubscriptionFromUrl(url): |
201 .addSubscriptionFromUrl(url): |
|
202 return False |
199 return False |
203 ## |
200 ## |
204 ## if type_ == QWebPage.NavigationTypeFormResubmitted: |
201 ## if type_ == QWebPage.NavigationTypeFormResubmitted: |
205 ## res = E5MessageBox.yesNo( |
202 ## res = E5MessageBox.yesNo( |
206 ## self.view(), |
203 ## self.view(), |
454 ## Public method to determine the user agent for the given URL. |
451 ## Public method to determine the user agent for the given URL. |
455 ## |
452 ## |
456 ## @param url URL to determine user agent for (QUrl) |
453 ## @param url URL to determine user agent for (QUrl) |
457 ## @return user agent string (string) |
454 ## @return user agent string (string) |
458 ## """ |
455 ## """ |
459 ## import WebBrowser.WebBrowserWindow |
456 ## agent = WebBrowserWindow.userAgentsManager().userAgentForUrl(url) |
460 ## agent = WebBrowser.WebBrowserWindow.WebBrowserWindow.userAgentsManager()\ |
|
461 ## .userAgentForUrl(url) |
|
462 ## if agent == "": |
457 ## if agent == "": |
463 ## # no agent string specified for the given host -> use global one |
458 ## # no agent string specified for the given host -> use global one |
464 ## agent = Preferences.getWebBrowser("UserAgent") |
459 ## agent = Preferences.getWebBrowser("UserAgent") |
465 ## if agent == "": |
460 ## if agent == "": |
466 ## # no global agent string specified -> use default one |
461 ## # no global agent string specified -> use default one |
499 ## if reply.error() == QNetworkReply.NoError and \ |
494 ## if reply.error() == QNetworkReply.NoError and \ |
500 ## mainFrameRequest and \ |
495 ## mainFrameRequest and \ |
501 ## reply.url() == self.mainFrame().url(): |
496 ## reply.url() == self.mainFrame().url(): |
502 ## modified = reply.header(QNetworkRequest.LastModifiedHeader) |
497 ## modified = reply.header(QNetworkRequest.LastModifiedHeader) |
503 ## if modified and modified.isValid(): |
498 ## if modified and modified.isValid(): |
504 ## import WebBrowser.WebBrowserWindow |
499 ## manager = WebBrowserWindow.bookmarksManager() |
505 ## manager = WebBrowser.WebBrowserWindow.WebBrowserWindow.bookmarksManager() |
|
506 ## from .Bookmarks.BookmarkNode import BookmarkNode |
500 ## from .Bookmarks.BookmarkNode import BookmarkNode |
507 ## for bookmark in manager.bookmarksForUrl(reply.url()): |
501 ## for bookmark in manager.bookmarksForUrl(reply.url()): |
508 ## manager.setTimestamp(bookmark, BookmarkNode.TsModified, |
502 ## manager.setTimestamp(bookmark, BookmarkNode.TsModified, |
509 ## modified) |
503 ## modified) |
510 |
504 |
675 @param url url requesting the feature |
669 @param url url requesting the feature |
676 @type QUrl |
670 @type QUrl |
677 @param feature requested feature |
671 @param feature requested feature |
678 @type QWebEnginePage.Feature |
672 @type QWebEnginePage.Feature |
679 """ |
673 """ |
680 manager = WebBrowser.WebBrowserWindow.WebBrowserWindow\ |
674 manager = WebBrowserWindow.featurePermissionManager() |
681 .featurePermissionManager() |
|
682 manager.requestFeaturePermission(self, url, feature) |
675 manager.requestFeaturePermission(self, url, feature) |
683 |
676 |
684 def execJavaScript(self, script): |
677 def execJavaScript(self, script): |
685 """ |
678 """ |
686 Public method to execute a JavaScript function synchroneously. |
679 Public method to execute a JavaScript function synchroneously. |
749 @param error object containing the certificate error information |
742 @param error object containing the certificate error information |
750 @type QWebEngineCertificateError |
743 @type QWebEngineCertificateError |
751 @return flag indicating to ignore this error |
744 @return flag indicating to ignore this error |
752 @rtype bool |
745 @rtype bool |
753 """ |
746 """ |
754 return WebBrowser.WebBrowserWindow.WebBrowserWindow.networkManager()\ |
747 return WebBrowserWindow.networkManager().certificateError( |
755 .certificateError(error, self.view()) |
748 error, self.view()) |
756 |
749 |
757 ############################################## |
750 ############################################## |
758 ## Methods below deal with JavaScript messages |
751 ## Methods below deal with JavaScript messages |
759 ############################################## |
752 ############################################## |
760 |
753 |