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

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
« no previous file with comments | « chrome/browser/ui/webui/chrome_url_data_manager_backend.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 25 matching lines...) Expand all
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', 'CSP': False },
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/extensions': { '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', 'CSP': False },
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', 'CSP': False },
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': { 'CSP': False },
74 74
75 # returns "not available" despite having an URL constant. 75 # returns "not available" despite having an URL constant.
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 for url, properties in tabs.iteritems(): 274 for url, properties in tabs.iteritems():
275 logging.debug('Testing URL %s.' % url) 275 logging.debug('Testing URL %s.' % url)
276 self.NavigateToURL(url) 276 self.NavigateToURL(url)
277 expected_title = 'title' in properties and properties['title'] or url 277 expected_title = 'title' in properties and properties['title'] or url
278 actual_title = self.GetActiveTabTitle() 278 actual_title = self.GetActiveTabTitle()
279 logging.debug(' %s title was %s (%s)' % 279 logging.debug(' %s title was %s (%s)' %
280 (url, actual_title, expected_title == actual_title)) 280 (url, actual_title, expected_title == actual_title))
281 self.assertEqual(expected_title, actual_title) 281 self.assertEqual(expected_title, actual_title)
282 include_list = [] 282 include_list = []
283 exclude_list = [] 283 exclude_list = []
284 if 'CSP' in properties and not properties['CSP']: 284 no_csp = 'CSP' in properties and not properties['CSP']
285 if no_csp:
285 exclude_list.extend(['X-WebKit-CSP']) 286 exclude_list.extend(['X-WebKit-CSP'])
286 else: 287 else:
287 include_list.extend(['X-WebKit-CSP'])
288 exclude_list.extend(['<script>', 'onclick=', 'onload=', 288 exclude_list.extend(['<script>', 'onclick=', 'onload=',
289 'onchange=', 'onsubmit=', 'javascript:']) 289 'onchange=', 'onsubmit=', 'javascript:'])
290 if 'includes' in properties: 290 if 'includes' in properties:
291 include_list.extend(properties['includes']) 291 include_list.extend(properties['includes'])
292 if 'excludes' in properties: 292 if 'excludes' in properties:
293 exclude_list.extend(properties['exlcudes']) 293 exclude_list.extend(properties['exlcudes'])
294 test_utils.StringContentCheck(self, self.GetTabContents(), 294 test_utils.StringContentCheck(self, self.GetTabContents(),
295 include_list, exclude_list) 295 include_list, exclude_list)
296 result = self.ExecuteJavascript("""
297 var r = 'blocked';
298 var f = 'executed';
299 var s = document.createElement('script');
300 s.textContent = 'r = f';
301 document.body.appendChild(s);
302 window.domAutomationController.send(r);
303 """)
304 logging.debug('has csp %s, result %s.' % (not no_csp, result))
305 if no_csp:
306 self.assertEqual(result, 'executed');
307 else:
308 self.assertEqual(result, 'blocked');
296 309
297 def testAboutAppCacheTab(self): 310 def testAboutAppCacheTab(self):
298 """Test App Cache tab to confirm about page populates caches.""" 311 """Test App Cache tab to confirm about page populates caches."""
299 self.NavigateToURL('about:appcache-internals') 312 self.NavigateToURL('about:appcache-internals')
300 self._VerifyAppCacheInternals() 313 self._VerifyAppCacheInternals()
301 self.assertEqual('AppCache Internals', self.GetActiveTabTitle()) 314 self.assertEqual('AppCache Internals', self.GetActiveTabTitle())
302 315
303 def testAboutDNSTab(self): 316 def testAboutDNSTab(self):
304 """Test DNS tab to confirm DNS about page propogates records.""" 317 """Test DNS tab to confirm DNS about page propogates records."""
305 self.NavigateToURL('about:dns') 318 self.NavigateToURL('about:dns')
306 self._VerifyAboutDNS() 319 self._VerifyAboutDNS()
307 self.assertEqual('About DNS', self.GetActiveTabTitle()) 320 self.assertEqual('About DNS', self.GetActiveTabTitle())
308 321
309 def testSpecialAcceratorTabs(self): 322 def testSpecialAcceratorTabs(self):
310 """Test special tabs created by acclerators like IDC_SHOW_HISTORY, 323 """Test special tabs created by acclerators like IDC_SHOW_HISTORY,
311 IDC_SHOW_DOWNLOADS.""" 324 IDC_SHOW_DOWNLOADS."""
312 for accel, title in self.special_accelerator_tabs.iteritems(): 325 for accel, title in self.special_accelerator_tabs.iteritems():
313 self.RunCommand(accel) 326 self.RunCommand(accel)
314 self.assertTrue(self.WaitUntil( 327 self.assertTrue(self.WaitUntil(
315 self.GetActiveTabTitle, expect_retval=title), 328 self.GetActiveTabTitle, expect_retval=title),
316 msg='Expected "%s"' % title) 329 msg='Expected "%s"' % title)
317 330
318 331
319 if __name__ == '__main__': 332 if __name__ == '__main__':
320 pyauto_functional.Main() 333 pyauto_functional.Main()
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/chrome_url_data_manager_backend.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698