(base, rel=None)
| 2573 | return p.output() |
| 2574 | |
| 2575 | def _makeSafeAbsoluteURI(base, rel=None): |
| 2576 | # bail if ACCEPTABLE_URI_SCHEMES is empty |
| 2577 | if not ACCEPTABLE_URI_SCHEMES: |
| 2578 | try: |
| 2579 | return _urljoin(base, rel or u'') |
| 2580 | except ValueError: |
| 2581 | return u'' |
| 2582 | if not base: |
| 2583 | return rel or u'' |
| 2584 | if not rel: |
| 2585 | try: |
| 2586 | scheme = urlparse.urlparse(base)[0] |
| 2587 | except ValueError: |
| 2588 | return u'' |
| 2589 | if not scheme or scheme in ACCEPTABLE_URI_SCHEMES: |
| 2590 | return base |
| 2591 | return u'' |
| 2592 | try: |
| 2593 | uri = _urljoin(base, rel) |
| 2594 | except ValueError: |
| 2595 | return u'' |
| 2596 | if uri.strip().split(':', 1)[0] not in ACCEPTABLE_URI_SCHEMES: |
| 2597 | return u'' |
| 2598 | return uri |
| 2599 | |
| 2600 | class _HTMLSanitizer(_BaseHTMLProcessor): |
| 2601 | acceptable_elements = set(['a', 'abbr', 'acronym', 'address', 'area', |
no test coverage detected
searching dependent graphs…