Tue, 06 Jan 2015 21:39:09 +0100
Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 abs_dist := $(abspath $(DIST))
6 webidl_base := $(topsrcdir)/dom/webidl
8 # Generated by moz.build
9 include webidlsrcs.mk
11 ifdef GNU_CC
12 OS_CXXFLAGS += -Wno-uninitialized
13 endif
15 # These come from webidlsrcs.mk.
16 # TODO Write directly into backend.mk.
17 CPPSRCS += $(globalgen_sources) $(unified_binding_cpp_files)
19 # Generated bindings reference *Binding.h, not mozilla/dom/*Binding.h. And,
20 # since we generate exported bindings directly to $(DIST)/include, we need
21 # to add that path to the search list.
22 #
23 # Ideally, binding generation uses the prefixed header file names.
24 # Bug 932092 tracks.
25 LOCAL_INCLUDES += -I$(DIST)/include/mozilla/dom
27 PYTHON_UNIT_TESTS += $(srcdir)/mozwebidlcodegen/test/test_mozwebidlcodegen.py
29 include $(topsrcdir)/config/rules.mk
31 # TODO This list should be emitted to a .pp file via
32 # GenerateCSS2PropertiesWebIDL.py.
33 css2properties_dependencies = \
34 $(topsrcdir)/layout/style/nsCSSPropList.h \
35 $(topsrcdir)/layout/style/nsCSSPropAliasList.h \
36 $(webidl_base)/CSS2Properties.webidl.in \
37 $(webidl_base)/CSS2PropertiesProps.h \
38 $(srcdir)/GenerateCSS2PropertiesWebIDL.py \
39 $(GLOBAL_DEPS) \
40 $(NULL)
42 CSS2Properties.webidl: $(css2properties_dependencies)
43 $(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style \
44 $(webidl_base)/CSS2PropertiesProps.h | \
45 PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \
46 $(srcdir)/GenerateCSS2PropertiesWebIDL.py \
47 $(webidl_base)/CSS2Properties.webidl.in > $@
49 # Most of the logic for dependencies lives inside Python so it can be
50 # used by multiple build backends. We simply have rules to generate
51 # and include the .pp file.
52 #
53 # The generated .pp file contains all the important dependencies such as
54 # changes to .webidl or .py files should result in code generation being
55 # performed. But we do pull in file-lists.jon to catch file additions.
56 codegen_dependencies := \
57 file-lists.json \
58 $(nonstatic_webidl_files) \
59 $(GLOBAL_DEPS) \
60 $(NULL)
62 # The 1 is to make codegen.pp not optional.
63 $(call include_deps,codegen.pp,1)
65 codegen.pp: $(codegen_dependencies)
66 $(call py_action,webidl,$(srcdir))
67 @$(TOUCH) $@
69 .PHONY: compiletests
70 compiletests:
71 $(call SUBMAKE,libs,test)
73 GARBAGE += \
74 codegen.pp \
75 codegen.json \
76 parser.out \
77 WebIDLGrammar.pkl \
78 $(wildcard *.h) \
79 $(wildcard *Binding.cpp) \
80 $(wildcard *Event.cpp) \
81 $(wildcard *-event.cpp) \
82 $(wildcard *.webidl) \
83 $(NULL)
85 DIST_GARBAGE += \
86 file-lists.json \
87 $(NULL)