dom/security/moz.build
author Kate McKinley <kmckinley@mozilla.com>
Tue, 27 Sep 2016 11:27:00 -0400
changeset 315476 380eebfd9d8928b656236d08e535fe528258e947
parent 306822 f0a977d25ead92214b82b776b3ded3f40a9e7c40
child 331484 2f5409db1252b49527ee69c417e942ffb608c3b1
permissions -rw-r--r--
Bug 1246540 - HSTS Priming Proof of Concept. r=ckerschb, r=mayhemer, r=jld, r=smaug, r=dkeeler, r=jmaher, p=ally HSTS priming changes the order of mixed-content blocking and HSTS upgrades, and adds a priming request to check if a mixed-content load is accesible over HTTPS and the server supports upgrading via the Strict-Transport-Security header. Every call site that uses AsyncOpen2 passes through the mixed-content blocker, and has a LoadInfo. If the mixed-content blocker marks the load as needing HSTS priming, nsHttpChannel will build and send an HSTS priming request on the same URI with the scheme upgraded to HTTPS. If the server allows the upgrade, then channel performs an internal redirect to the HTTPS URI, otherwise use the result of mixed-content blocker to allow or block the load. nsISiteSecurityService adds an optional boolean out parameter to determine if the HSTS state is already cached for negative assertions. If the host has been probed within the previous 24 hours, no HSTS priming check will be sent. MozReview-Commit-ID: ES1JruCtDdX

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

TEST_DIRS += ['test']

EXPORTS.mozilla.dom += [
    'ContentVerifier.h',
    'nsContentSecurityManager.h',
    'nsCSPContext.h',
    'nsCSPService.h',
    'nsCSPUtils.h',
    'nsMixedContentBlocker.h',
    'SRICheck.h',
    'SRILogHelper.h',
    'SRIMetadata.h',
]

EXPORTS += [
    'nsContentSecurityManager.h',
    'nsMixedContentBlocker.h',
]

UNIFIED_SOURCES += [
    'ContentVerifier.cpp',
    'nsContentSecurityManager.cpp',
    'nsCSPContext.cpp',
    'nsCSPParser.cpp',
    'nsCSPService.cpp',
    'nsCSPUtils.cpp',
    'nsMixedContentBlocker.cpp',
    'SRICheck.cpp',
    'SRIMetadata.cpp',
]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'
LOCAL_INCLUDES += [
    '/caps',
    '/netwerk/base',
]

if CONFIG['GNU_CC']:
    CFLAGS += ['-Wformat-security']
    CXXFLAGS += ['-Wformat-security']