Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: chrome/test/functional/special_tabs.py

Issue 8124010: Replace <meta> tag with header for content-security-policy on chrome:// pages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import logging 6 import logging
7 import os 7 import os
8 8
9 import pyauto_functional # Must be imported before pyauto 9 import pyauto_functional # Must be imported before pyauto
10 import pyauto 10 import pyauto
(...skipping 22 matching lines...) Expand all
33 } 33 }
34 34
35 special_url_tabs = { 35 special_url_tabs = {
36 'chrome://about': { 'title': 'Chrome URLs' }, 36 'chrome://about': { 'title': 'Chrome URLs' },
37 'chrome://appcache-internals': { 'title': 'AppCache Internals' }, 37 'chrome://appcache-internals': { 'title': 'AppCache Internals' },
38 'chrome://blob-internals': { 'title': 'Blob Storage Internals' }, 38 'chrome://blob-internals': { 'title': 'Blob Storage Internals' },
39 'chrome://bugreport': {}, 39 'chrome://bugreport': {},
40 'chrome://bugreport/#0': { 'title': 'Feedback' }, 40 'chrome://bugreport/#0': { 'title': 'Feedback' },
41 'chrome://chrome-urls': { 'title': 'Chrome URLs' }, 41 'chrome://chrome-urls': { 'title': 'Chrome URLs' },
42 'chrome://crashes': { 'title': 'Crashes' }, 42 'chrome://crashes': { 'title': 'Crashes' },
43 'chrome://credits': { 'title': 'Credits', 'CSP': False }, 43 'chrome://credits': { 'title': 'Credits' },
44 'chrome://downloads': { 'title': 'Downloads' }, 44 'chrome://downloads': { 'title': 'Downloads' },
45 'chrome://dns': { 'title': 'About DNS' }, 45 'chrome://dns': { 'title': 'About DNS' },
46 'chrome://settings/extensionSettings': { 'title': 'Extensions' }, 46 'chrome://settings/extensionSettings': { 'title': 'Extensions' },
47 'chrome://flags': {}, 47 'chrome://flags': {},
48 'chrome://flash': {}, 48 'chrome://flash': {},
49 'chrome://gpu-internals': {}, 49 'chrome://gpu-internals': {},
50 'chrome://histograms': { 'title': 'About Histograms' }, 50 'chrome://histograms': { 'title': 'About Histograms' },
51 'chrome://history': { 'title': 'History' }, 51 'chrome://history': { 'title': 'History' },
52 'chrome://history2': { 'title': 'History' }, 52 'chrome://history2': { 'title': 'History' },
53 'chrome://media-internals': { 'title': 'Media Internals' }, 53 'chrome://media-internals': { 'title': 'Media Internals' },
54 'chrome://memory-redirect': { 'title': 'About Memory' }, 54 'chrome://memory-redirect': { 'title': 'About Memory' },
55 'chrome://net-internals': {}, 55 'chrome://net-internals': {},
56 'chrome://net-internals/help.html': {}, 56 'chrome://net-internals/help.html': {},
57 'chrome://newtab': { 'title': 'New Tab', 'CSP': False }, 57 'chrome://newtab': { 'title': 'New Tab' },
58 'chrome://plugins': { 'title': 'Plug-ins' }, 58 'chrome://plugins': { 'title': 'Plug-ins' },
59 'chrome://sessions': { 'title': 'Sessions' }, 59 'chrome://sessions': { 'title': 'Sessions' },
60 'chrome://settings': { 'title': 'Preferences - Basics' }, 60 'chrome://settings': { 'title': 'Preferences - Basics' },
61 'chrome://stats': { 'CSP': False }, 61 'chrome://stats': {},
62 'chrome://sync': { 'title': 'Sync Internals' }, 62 'chrome://sync': { 'title': 'Sync Internals' },
63 'chrome://sync-internals': { 'title': 'Sync Internals' }, 63 'chrome://sync-internals': { 'title': 'Sync Internals' },
64 'chrome://tasks': { 'title': 'Task Manager - Chromium' }, 64 'chrome://tasks': { 'title': 'Task Manager - Chromium' },
65 'chrome://terms': { 'CSP': False }, 65 'chrome://terms': {},
66 'chrome://textfields': { 'title': 'chrome://textfields', 'CSP': False }, 66 'chrome://textfields': { 'title': 'chrome://textfields' },
67 'chrome://version': { 'title': 'About Version' }, 67 'chrome://version': { 'title': 'About Version' },
68 'chrome://view-http-cache': {}, 68 'chrome://view-http-cache': {},
69 'chrome://workers': { 'title': 'Workers' }, 69 'chrome://workers': { 'title': 'Workers' },
70 } 70 }
71 broken_special_url_tabs = { 71 broken_special_url_tabs = {
72 # crashed under debug when invoked from location bar (bug 88223). 72 # crashed under debug when invoked from location bar (bug 88223).
73 'chrome://devtools': { 'CSP': False }, 73 'chrome://devtools': {},
74 74
75 # returns "not available" despite having an URL constant. 75 # returns "not available" despite having an URL constant.
76 'chrome://dialog': { 'CSP': False }, 76 'chrome://dialog': {},
77 77
78 # separate window on mac, PC untested, not implemented elsewhere. 78 # separate window on mac, PC untested, not implemented elsewhere.
79 'chrome://ipc': { 'CSP': False }, 79 'chrome://ipc': {},
80 80
81 # race against redirects via meta-refresh. 81 # race against redirects via meta-refresh.
82 'chrome://memory': { 'CSP': False }, 82 'chrome://memory': {},
83 } 83 }
84 84
85 chromeos_special_url_tabs = { 85 chromeos_special_url_tabs = {
86 'chrome://active-downloads': { 'title': 'Downloads', 'CSP': False }, 86 'chrome://active-downloads': { 'title': 'Downloads' },
87 'chrome://choose-mobile-network': { 'title': 'undefined', 'CSP': False }, 87 'chrome://choose-mobile-network': { 'title': 'undefined' },
88 'chrome://imageburner': { 'title':'Create a Recovery Media', 'CSP': False }, 88 'chrome://imageburner': { 'title':'Create a Recovery Media' },
89 'chrome://keyboardoverlay': { 'title': 'Keyboard Overlay', 'CSP': False }, 89 'chrome://keyboardoverlay': { 'title': 'Keyboard Overlay' },
90 'chrome://login': { 'CSP': False }, 90 'chrome://login': {},
91 'chrome://network': { 'title': 'About Network' }, 91 'chrome://network': { 'title': 'About Network' },
92 'chrome://oobe': { 'title': 'undefined', 'CSP': False }, 92 'chrome://oobe': { 'title': 'undefined' },
93 'chrome://os-credits': { 'title': 'Credits', 'CSP': False }, 93 'chrome://os-credits': { 'title': 'Credits' },
94 'chrome://proxy-settings': { 'CSP': False }, 94 'chrome://proxy-settings': {},
95 'chrome://register': { 'CSP': False }, 95 'chrome://register': {},
96 'chrome://sim-unlock': { 'title': 'Enter SIM Card PIN', 'CSP': False }, 96 'chrome://sim-unlock': { 'title': 'Enter SIM Card PIN' },
97 'chrome://system': { 'title': 'About System', 'CSP': False }, 97 'chrome://system': { 'title': 'About System' },
98 98
99 # OVERRIDE - usually a warning page without CSP (so far). 99 # OVERRIDE - usually a warning page without CSP (so far).
100 'chrome://flags': { 'CSP': False }, 100 'chrome://flags': {},
101 101
102 # OVERRIDE - title and page different on CrOS 102 # OVERRIDE - title and page different on CrOS
103 'chrome://settings/about': { 'title': 'Settings - About' }, 103 'chrome://settings/about': { 'title': 'Settings - About' },
104 'chrome://settings/accounts': { 'title': 'Settings - Users' }, 104 'chrome://settings/accounts': { 'title': 'Settings - Users' },
105 'chrome://settings/advanced': { 'title': 'Settings - Under the Hood' }, 105 'chrome://settings/advanced': { 'title': 'Settings - Under the Hood' },
106 'chrome://settings/autofill': { 'title': 'Settings - Autofill Settings' }, 106 'chrome://settings/autofill': { 'title': 'Settings - Autofill Settings' },
107 'chrome://settings/browser': { 'title': 'Settings - Basics' }, 107 'chrome://settings/browser': { 'title': 'Settings - Basics' },
108 'chrome://settings/clearBrowserData': 108 'chrome://settings/clearBrowserData':
109 { 'title': 'Settings - Clear Browsing Data' }, 109 { 'title': 'Settings - Clear Browsing Data' },
110 'chrome://settings/content': { 'title': 'Settings - Content Settings' }, 110 'chrome://settings/content': { 'title': 'Settings - Content Settings' },
111 'chrome://settings/internet': { 'title': 'Settings - Internet' }, 111 'chrome://settings/internet': { 'title': 'Settings - Internet' },
112 'chrome://settings/languages': 112 'chrome://settings/languages':
113 { 'title': 'Settings - Languages and Input' }, 113 { 'title': 'Settings - Languages and Input' },
114 'chrome://settings/passwords': { 'title': 'Settings - Passwords' }, 114 'chrome://settings/passwords': { 'title': 'Settings - Passwords' },
115 'chrome://settings/personal': { 'title': 'Settings - Personal Stuff' }, 115 'chrome://settings/personal': { 'title': 'Settings - Personal Stuff' },
116 'chrome://settings/proxy': { 'title': 'Proxy' }, 116 'chrome://settings/proxy': { 'title': 'Proxy' },
117 'chrome://settings/system': { 'title': 'Settings - System' }, 117 'chrome://settings/system': { 'title': 'Settings - System' },
118 } 118 }
119 broken_chromeos_special_url_tabs = { 119 broken_chromeos_special_url_tabs = {
120 # returns "not available" page on chromeos=1 linux but has an URL constant. 120 # returns "not available" page on chromeos=1 linux but has an URL constant.
121 'chrome://activationmessage': { 'CSP': False }, 121 'chrome://activationmessage': {},
122 'chrome://cloudprintresources': { 'CSP': False }, 122 'chrome://cloudprintresources': {},
123 'chrome://cloudprintsetup': { 'CSP': False }, 123 'chrome://cloudprintsetup': {},
124 'chrome://collected-cookies': { 'CSP': False }, 124 'chrome://collected-cookies': {},
125 'chrome://constrained-test': { 'CSP': False }, 125 'chrome://constrained-test': {},
126 'chrome://enterprise-enrollment': { 'CSP': False }, 126 'chrome://enterprise-enrollment': {},
127 'chrome://http-auth': { 'CSP': False }, 127 'chrome://http-auth': {},
128 'chrome://login-container': { 'CSP': False }, 128 'chrome://login-container': {},
129 'chrome://media-player': { 'CSP': False }, 129 'chrome://media-player': {},
130 'chrome://screenshots': { 'CSP': False }, 130 'chrome://screenshots': {},
131 'chrome://slideshow': { 'CSP': False }, 131 'chrome://slideshow': {},
132 'chrome://syncresources': { 'CSP': False }, 132 'chrome://syncresources': {},
133 'chrome://theme': { 'CSP': False }, 133 'chrome://theme': {},
134 134
135 # crashes on chromeos=1 on linux, possibly missing real CrOS features. 135 # crashes on chromeos=1 on linux, possibly missing real CrOS features.
136 'chrome://cryptohome': { 'CSP': False}, 136 'chrome://cryptohome': { },
137 'chrome://mobilesetup': { 'CSP': False }, 137 'chrome://mobilesetup': {},
138 'chrome://print': { 'CSP': False }, 138 'chrome://print': {},
139 'chrome://tasks': {}, 139 'chrome://tasks': {},
140 } 140 }
141 141
142 linux_special_url_tabs = { 142 linux_special_url_tabs = {
143 'chrome://linux-proxy-config': { 'title': 'Proxy Configuration Help' }, 143 'chrome://linux-proxy-config': { 'title': 'Proxy Configuration Help' },
144 'chrome://tcmalloc': { 'title': 'About tcmalloc' }, 144 'chrome://tcmalloc': { 'title': 'About tcmalloc' },
145 'chrome://sandbox': { 'title': 'Sandbox Status' }, 145 'chrome://sandbox': { 'title': 'Sandbox Status' },
146 } 146 }
147 broken_linux_special_url_tabs = {} 147 broken_linux_special_url_tabs = {}
148 148
149 mac_special_url_tabs = {} 149 mac_special_url_tabs = {}
150 broken_mac_special_url_tabs = {} 150 broken_mac_special_url_tabs = {}
151 151
152 win_special_url_tabs = { 152 win_special_url_tabs = {
153 'chrome://conflicts': {}, 153 'chrome://conflicts': {},
154 154
155 # OVERRIDE - different title for page. 155 # OVERRIDE - different title for page.
156 'chrome://settings': { 'title': 'Options - Basics' }, 156 'chrome://settings': { 'title': 'Options - Basics' },
157 } 157 }
158 broken_win_special_url_tabs = { 158 broken_win_special_url_tabs = {
159 # Sync on windows badly broken at the moment. 159 # Sync on windows badly broken at the moment.
160 'chrome://sync': {}, 160 'chrome://sync': {},
161 } 161 }
162 162
163 google_special_url_tabs = { 163 google_special_url_tabs = {
164 # OVERRIDE - different title for Google Chrome vs. Chromium. 164 # OVERRIDE - different title for Google Chrome vs. Chromium.
165 'chrome://terms': { 165 'chrome://terms': {
166 'title': 'Google Chrome Terms of Service', 166 'title': 'Google Chrome Terms of Service',
167 'CSP': False
168 }, 167 },
169 } 168 }
170 broken_google_special_url_tabs = {} 169 broken_google_special_url_tabs = {}
171 170
172 google_chromeos_special_url_tabs = { 171 google_chromeos_special_url_tabs = {
173 # OVERRIDE - different title for Google Chrome OS vs. Chromium OS. 172 # OVERRIDE - different title for Google Chrome OS vs. Chromium OS.
174 'chrome://terms': { 173 'chrome://terms': {
175 'title': 'Google Chrome OS Terms', 174 'title': 'Google Chrome OS Terms',
176 'CSP': False
177 }, 175 },
178 } 176 }
179 broken_google_chromeos_special_url_tabs = {} 177 broken_google_chromeos_special_url_tabs = {}
180 178
181 google_win_special_url_tabs = {} 179 google_win_special_url_tabs = {}
182 broken_google_win_special_url_tabs = {} 180 broken_google_win_special_url_tabs = {}
183 181
184 google_mac_special_url_tabs = {} 182 google_mac_special_url_tabs = {}
185 broken_google_mac_special_url_tabs = {} 183 broken_google_mac_special_url_tabs = {}
186 184
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 logging.debug('Testing URL %s.' % url) 273 logging.debug('Testing URL %s.' % url)
276 self.NavigateToURL(url) 274 self.NavigateToURL(url)
277 expected_title = 'title' in properties and properties['title'] or url 275 expected_title = 'title' in properties and properties['title'] or url
278 actual_title = self.GetActiveTabTitle() 276 actual_title = self.GetActiveTabTitle()
279 logging.debug(' %s title was %s (%s)' % 277 logging.debug(' %s title was %s (%s)' %
280 (url, actual_title, expected_title == actual_title)) 278 (url, actual_title, expected_title == actual_title))
281 self.assertEqual(expected_title, actual_title) 279 self.assertEqual(expected_title, actual_title)
282 include_list = [] 280 include_list = []
283 exclude_list = [] 281 exclude_list = []
284 if 'CSP' in properties and not properties['CSP']: 282 if 'CSP' in properties and not properties['CSP']:
285 exclude_list.extend(['X-WebKit-CSP'])
286 else: 283 else:
287 include_list.extend(['X-WebKit-CSP'])
288 exclude_list.extend(['<script>', 'onclick=', 'onload=', 284 exclude_list.extend(['<script>', 'onclick=', 'onload=',
289 'onchange=', 'onsubmit=', 'javascript:']) 285 'onchange=', 'onsubmit=', 'javascript:'])
290 if 'includes' in properties: 286 if 'includes' in properties:
291 include_list.extend(properties['includes']) 287 include_list.extend(properties['includes'])
292 if 'excludes' in properties: 288 if 'excludes' in properties:
293 exclude_list.extend(properties['exlcudes']) 289 exclude_list.extend(properties['exlcudes'])
294 test_utils.StringContentCheck(self, self.GetTabContents(), 290 test_utils.StringContentCheck(self, self.GetTabContents(),
295 include_list, exclude_list) 291 include_list, exclude_list)
296 292
297 def testAboutAppCacheTab(self): 293 def testAboutAppCacheTab(self):
(...skipping 13 matching lines...) Expand all
311 IDC_SHOW_DOWNLOADS.""" 307 IDC_SHOW_DOWNLOADS."""
312 for accel, title in self.special_accelerator_tabs.iteritems(): 308 for accel, title in self.special_accelerator_tabs.iteritems():
313 self.RunCommand(accel) 309 self.RunCommand(accel)
314 self.assertTrue(self.WaitUntil( 310 self.assertTrue(self.WaitUntil(
315 self.GetActiveTabTitle, expect_retval=title), 311 self.GetActiveTabTitle, expect_retval=title),
316 msg='Expected "%s"' % title) 312 msg='Expected "%s"' % title)
317 313
318 314
319 if __name__ == '__main__': 315 if __name__ == '__main__':
320 pyauto_functional.Main() 316 pyauto_functional.Main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698