Sat, 20 Feb 2016 12:26:28 +0100
Continued porting the web browser.
- added the Personal Information Manager
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
4631
5c1a96925da4
Updated copyright for 2016.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4370
diff
changeset
|
3 | # Copyright (c) 2015 - 2016 Detlev Offenbach <detlev@die-offenbachs.de> |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the Flash cookie manager. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from __future__ import unicode_literals |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | try: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | str = unicode # __IGNORE_EXCEPTION__ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | except NameError: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | pass |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | import shutil |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from PyQt5.QtCore import QObject, QTimer, QDir, QFileInfo, QFile |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | from .FlashCookie import FlashCookie |
4361
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
22 | from .FlashCookieReader import FlashCookieReader, FlashCookieReaderError |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
4751
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
24 | import WebBrowser.WebBrowserWindow |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | import Preferences |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | class FlashCookieManager(QObject): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | Class implementing the Flash cookie manager object. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | RefreshInterval = 60 * 1000 |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | def __init__(self, parent=None): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | Constructor |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @param parent reference to the parent object |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @type QObject |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | super(FlashCookieManager, self).__init__(parent) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__flashCookieManagerDialog = None |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | self.__flashCookies = [] # list of FlashCookie |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__newCookiesList = [] # list of str |
4751
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
47 | ## self.__whitelist = [] # list of str |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
48 | ## self.__blacklist = [] # list of str |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | self.__timer = QTimer(self) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.__timer.setInterval(FlashCookieManager.RefreshInterval) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | self.__timer.timeout.connect(self.__autoRefresh) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | # start the timer if needed |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | self.__startStopTimer() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
57 | if Preferences.getWebBrowser("FlashCookiesDeleteOnStartExit"): |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.__loadFlashCookies() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | self.__removeAllButWhitelisted() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | def shutdown(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | Public method to perform shutdown actions. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | if self.__flashCookieManagerDialog is not None: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | self.__flashCookieManagerDialog.close() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
68 | if Preferences.getWebBrowser("FlashCookiesDeleteOnStartExit"): |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.__removeAllButWhitelisted() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | def setFlashCookies(self, cookies): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | Public method to set the list of cached Flash cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | @param cookies list of Flash cookies to store |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | @type list of FlashCookie |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | self.__flashCookies = cookies[:] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | def flashCookies(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | Public method to get the list of cached Flash cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | @return list of Flash cookies |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | @rtype list of FlashCookie |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | if not self.__flashCookies: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | self.__loadFlashCookies() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | return self.__flashCookies[:] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | def newCookiesList(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | Public method to get the list of newly detected Flash cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | @return list of newly detected Flash cookies |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | @rtype list of str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | return self.__newCookiesList[:] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | def clearNewOrigins(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | Public method to clear the list of newly detected Flash cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | self.__newCookiesList = [] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | def clearCache(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | Public method to clear the list of cached Flash cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | self.__flashCookies = [] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | def __isBlacklisted(self, cookie): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | Private method to check for a blacklisted cookie. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | @param cookie Flash cookie to be tested |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | @type FlashCookie |
4370
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
119 | @return flag indicating a blacklisted cookie |
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
120 | @rtype bool |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | """ |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
122 | return cookie.origin in \ |
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
123 | Preferences.getWebBrowser("FlashCookiesBlacklist") |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | def __isWhitelisted(self, cookie): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | Private method to check for a whitelisted cookie. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @param cookie Flash cookie to be tested |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | @type FlashCookie |
4370
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
131 | @return flag indicating a whitelisted cookie |
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
132 | @rtype bool |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | """ |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
134 | return cookie.origin in \ |
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
135 | Preferences.getWebBrowser("FlashCookiesWhitelist") |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | def __removeAllButWhitelisted(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | Private method to remove all non-whitelisted cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | for cookie in self.__flashCookies[:]: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | if not self.__isWhitelisted(cookie): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | self.removeCookie(cookie) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | |
4751
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
145 | def removeAllCookies(self): |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
146 | """ |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
147 | Public method to remove all flash cookies. |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
148 | """ |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
149 | for cookie in self.__flashCookies[:]: |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
150 | self.removeCookie(cookie) |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
151 | self.clearNewOrigins() |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
152 | self.clearCache() |
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
153 | |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | def __sharedObjectDirName(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | Private slot to determine the path of the shared data objects. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | @return path of the shared data objects |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | @rtype str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | if "macromedia" in self.flashPlayerDataPath().lower() or \ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | "/.gnash" not in self.flashPlayerDataPath().lower(): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | return "/#SharedObjects/" |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | else: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | return "/SharedObjects/" |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | def flashPlayerDataPath(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | Public method to get the Flash Player data path. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | @return Flash Player data path |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | @rtype str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | """ |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
174 | return Preferences.getWebBrowser("FlashCookiesDataPath") |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | def preferencesChanged(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | Public slot to handle a change of preferences. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | self.__startStopTimer() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | def removeCookie(self, cookie): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | Public method to remove a cookie of the list of cached cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | @param cookie Flash cookie to be removed |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | @type FlashCookie |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | if cookie in self.__flashCookies: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | self.__flashCookies.remove(cookie) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | shutil.rmtree(cookie.path, True) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | def __autoRefresh(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | Private slot to refresh the list of cookies. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | if self.__flashCookieManagerDialog and \ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | self.__flashCookieManagerDialog.isVisible(): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | return |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | oldFlashCookies = self.__flashCookies[:] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | self.__loadFlashCookies() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | newCookieList = [] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | for cookie in self.__flashCookies[:]: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | if self.__isBlacklisted(cookie): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | self.removeCookie(cookie) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | continue |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | if self.__isWhitelisted(cookie): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | continue |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | newCookie = True |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | for oldCookie in oldFlashCookies: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | if (oldCookie.path + oldCookie.name == |
4370
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
216 | cookie.path + cookie.name): |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | newCookie = False |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | break |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | if newCookie: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | newCookieList.append(cookie.path + "/" + cookie.name) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
223 | if newCookieList and Preferences.getWebBrowser("FlashCookieNotify"): |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | self.__newCookiesList.extend(newCookieList) |
4751
f745a556fd6f
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
225 | win = WebBrowser.WebBrowserWindow.WebBrowserWindow.mainWindow() |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | if win is None: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | return |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | view = win.currentBrowser() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | if view is None: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | return |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | from .FlashCookieNotification import FlashCookieNotification |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | notification = FlashCookieNotification( |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | view, self, len(newCookieList)) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | notification.show() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | def showFlashCookieManagerDialog(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
240 | Public method to show the Flash cookies management dialog. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
241 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | if self.__flashCookieManagerDialog is None: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | from .FlashCookieManagerDialog import FlashCookieManagerDialog |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | self.__flashCookieManagerDialog = FlashCookieManagerDialog(self) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | self.__flashCookieManagerDialog.refreshView() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | self.__flashCookieManagerDialog.showPage(0) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | self.__flashCookieManagerDialog.show() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | self.__flashCookieManagerDialog.raise_() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | def __startStopTimer(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | Private slot to start or stop the auto refresh timer. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | """ |
4752
a3bcc42a82a9
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4751
diff
changeset
|
255 | if Preferences.getWebBrowser("FlashCookieAutoRefresh"): |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | if not self.__timer.isActive(): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | if not bool(self.__flashCookies): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | self.__loadFlashCookies() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | self.__timer.start() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | else: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | self.__timer.stop() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | def __loadFlashCookies(self): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | Private slot to load the Flash cookies to be cached. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | self.__flashCookies = [] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | self.__loadFlashCookiesFromPath(self.flashPlayerDataPath()) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | def __loadFlashCookiesFromPath(self, path): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | Private slot to load the Flash cookies from a path. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | @param path Flash cookies path |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | @type str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | """ |
4361
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
278 | if path.endswith("#AppContainer"): |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | # specific to IE and Windows |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | return |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | path = path.replace("\\", "/") |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | solDir = QDir(path) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | entryList = solDir.entryList() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | for entry in entryList: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | if entry == "." or entry == "..": |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | continue |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | entryInfo = QFileInfo(path + "/" + entry) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | if entryInfo.isDir(): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | self.__loadFlashCookiesFromPath(entryInfo.filePath()) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | else: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | self.__insertFlashCookie(entryInfo.filePath()) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | def __insertFlashCookie(self, path): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | Private method to insert a Flash cookie into the cache. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | @param path Flash cookies path |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | @type str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | solFile = QFile(path) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | if not solFile.open(QFile.ReadOnly): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | return |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | |
4361
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
305 | dataStr = "" |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
306 | data = bytes(solFile.readAll()) |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
307 | if data: |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
308 | try: |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
309 | reader = FlashCookieReader() |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
310 | reader.setBytes(data) |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
311 | reader.parse() |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
312 | dataStr = reader.toString() |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
313 | except FlashCookieReaderError as err: |
9eec3a532d59
Continued adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4359
diff
changeset
|
314 | dataStr = err.msg |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | solFileInfo = QFileInfo(solFile) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | cookie = FlashCookie() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | cookie.contents = dataStr |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | cookie.name = solFileInfo.fileName() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | cookie.path = solFileInfo.canonicalPath() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | cookie.size = int(solFile.size()) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | cookie.lastModified = solFileInfo.lastModified() |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | cookie.origin = self.__extractOriginFrom(path) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | self.__flashCookies.append(cookie) |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
327 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
328 | def __extractOriginFrom(self, path): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
329 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
330 | Private method to extract the cookie origin given its file name. |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | @param path file name of the cookie file |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
333 | @type str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
334 | @return cookie origin |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
335 | @rtype str |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
336 | """ |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
337 | origin = path |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
338 | if path.startswith( |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
339 | self.flashPlayerDataPath() + self.__sharedObjectDirName()): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
340 | origin = origin.replace( |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
341 | self.flashPlayerDataPath() + self.__sharedObjectDirName(), "") |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
342 | if "/" in origin: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
343 | origin = origin.split("/", 1)[1] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
344 | elif path.startswith( |
4370
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
345 | self.flashPlayerDataPath() + |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
346 | "/macromedia.com/support/flashplayer/sys/"): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
347 | origin = origin.replace( |
4370
54dbb658f9e6
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4361
diff
changeset
|
348 | self.flashPlayerDataPath() + |
4359
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
349 | "/macromedia.com/support/flashplayer/sys/", "") |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | if origin == "settings.sol": |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | return self.tr("!default") |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | elif origin.startswith("#"): |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
353 | origin = origin[1:] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
354 | else: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
355 | origin = "" |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
356 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | index = origin.find("/") |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | if index == -1: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | return self.tr("!other") |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | origin = origin[:index] |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | if origin in ["localhost", "local"]: |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | origin = "!localhost" |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | |
ac1dda9f3f19
Started adding code for a Flash cookie manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | return origin |