mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
servo: Merge #474 - Separate the DOM and layout into separate crates (from pcwalton:separation); r=pcwalton
r? @metajack Source-Repo: https://github.com/servo/servo Source-Revision: 473b0941eca8c6498e5065892de49562dce0b78c --HG-- rename : servo/src/components/main/dom/bindings/clientrect.rs => servo/src/components/script/dom/bindings/clientrect.rs rename : servo/src/components/main/dom/bindings/clientrectlist.rs => servo/src/components/script/dom/bindings/clientrectlist.rs rename : servo/src/components/main/dom/bindings/codegen/BindingGen.py => servo/src/components/script/dom/bindings/codegen/BindingGen.py rename : servo/src/components/main/dom/bindings/codegen/BindingUtils.cpp => servo/src/components/script/dom/bindings/codegen/BindingUtils.cpp rename : servo/src/components/main/dom/bindings/codegen/BindingUtils.h => servo/src/components/script/dom/bindings/codegen/BindingUtils.h rename : servo/src/components/main/dom/bindings/codegen/Bindings.conf => servo/src/components/script/dom/bindings/codegen/Bindings.conf rename : servo/src/components/main/dom/bindings/codegen/ClientRect.webidl => servo/src/components/script/dom/bindings/codegen/ClientRect.webidl rename : servo/src/components/main/dom/bindings/codegen/ClientRectList.webidl => servo/src/components/script/dom/bindings/codegen/ClientRectList.webidl rename : servo/src/components/main/dom/bindings/codegen/Codegen.py => servo/src/components/script/dom/bindings/codegen/Codegen.py rename : servo/src/components/main/dom/bindings/codegen/CodegenRust.py => servo/src/components/script/dom/bindings/codegen/CodegenRust.py rename : servo/src/components/main/dom/bindings/codegen/Configuration.py => servo/src/components/script/dom/bindings/codegen/Configuration.py rename : servo/src/components/main/dom/bindings/codegen/DOMJSClass.h => servo/src/components/script/dom/bindings/codegen/DOMJSClass.h rename : servo/src/components/main/dom/bindings/codegen/DOMJSProxyHandler.cpp => servo/src/components/script/dom/bindings/codegen/DOMJSProxyHandler.cpp rename : servo/src/components/main/dom/bindings/codegen/DOMJSProxyHandler.h => servo/src/components/script/dom/bindings/codegen/DOMJSProxyHandler.h rename : servo/src/components/main/dom/bindings/codegen/DOMParser.webidl => servo/src/components/script/dom/bindings/codegen/DOMParser.webidl rename : servo/src/components/main/dom/bindings/codegen/ErrorResult.h => servo/src/components/script/dom/bindings/codegen/ErrorResult.h rename : servo/src/components/main/dom/bindings/codegen/Errors.msg => servo/src/components/script/dom/bindings/codegen/Errors.msg rename : servo/src/components/main/dom/bindings/codegen/Event.webidl => servo/src/components/script/dom/bindings/codegen/Event.webidl rename : servo/src/components/main/dom/bindings/codegen/EventTarget.webidl => servo/src/components/script/dom/bindings/codegen/EventTarget.webidl rename : servo/src/components/main/dom/bindings/codegen/GenerateCSS2PropertiesWebIDL.py => servo/src/components/script/dom/bindings/codegen/GenerateCSS2PropertiesWebIDL.py rename : servo/src/components/main/dom/bindings/codegen/GlobalGen.py => servo/src/components/script/dom/bindings/codegen/GlobalGen.py rename : servo/src/components/main/dom/bindings/codegen/HTMLCollection.webidl => servo/src/components/script/dom/bindings/codegen/HTMLCollection.webidl rename : servo/src/components/main/dom/bindings/codegen/Makefile.in => servo/src/components/script/dom/bindings/codegen/Makefile.in rename : servo/src/components/main/dom/bindings/codegen/Nullable.h => servo/src/components/script/dom/bindings/codegen/Nullable.h rename : servo/src/components/main/dom/bindings/codegen/PrimitiveConversions.h => servo/src/components/script/dom/bindings/codegen/PrimitiveConversions.h rename : servo/src/components/main/dom/bindings/codegen/RegisterBindings.cpp => servo/src/components/script/dom/bindings/codegen/RegisterBindings.cpp rename : servo/src/components/main/dom/bindings/codegen/RegisterBindings.h => servo/src/components/script/dom/bindings/codegen/RegisterBindings.h rename : servo/src/components/main/dom/bindings/codegen/TypedArray.h => servo/src/components/script/dom/bindings/codegen/TypedArray.h rename : servo/src/components/main/dom/bindings/codegen/crashtests/769464.html => servo/src/components/script/dom/bindings/codegen/crashtests/769464.html rename : servo/src/components/main/dom/bindings/codegen/crashtests/crashtests.list => servo/src/components/script/dom/bindings/codegen/crashtests/crashtests.list rename : servo/src/components/main/dom/bindings/codegen/parser/README => servo/src/components/script/dom/bindings/codegen/parser/README rename : servo/src/components/main/dom/bindings/codegen/parser/UPSTREAM => servo/src/components/script/dom/bindings/codegen/parser/UPSTREAM rename : servo/src/components/main/dom/bindings/codegen/parser/WebIDL.py => servo/src/components/script/dom/bindings/codegen/parser/WebIDL.py rename : servo/src/components/main/dom/bindings/codegen/parser/runtests.py => servo/src/components/script/dom/bindings/codegen/parser/runtests.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_any_null.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_any_null.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_argument_identifier_conflicts.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_argument_identifier_conflicts.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_argument_novoid.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_argument_novoid.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_array_of_interface.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_array_of_interface.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_arraybuffer.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_arraybuffer.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_attr.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_attr.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_attr_sequence_type.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_attr_sequence_type.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_builtin_filename.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_builtin_filename.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_builtins.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_builtins.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_callback.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_callback.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_callback_interface.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_callback_interface.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_const.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_const.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_constructor.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_constructor.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_constructor_no_interface_object.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_deduplicate.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_deduplicate.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_dictionary.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_dictionary.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_distinguishability.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_distinguishability.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_double_null.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_double_null.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_duplicate_qualifiers.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_duplicate_qualifiers.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_empty_enum.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_empty_enum.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_enum.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_enum.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_enum_duplicate_values.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_enum_duplicate_values.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_error_colno.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_error_colno.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_error_lineno.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_error_lineno.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_extended_attributes.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_extended_attributes.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_forward_decl.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_forward_decl.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_implements.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_implements.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_incomplete_parent.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_incomplete_parent.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_incomplete_types.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_incomplete_types.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_interface.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_interface.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_interface_const_identifier_conflicts.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_interface_const_identifier_conflicts.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_interface_identifier_conflicts_across_members.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_interface_identifier_conflicts_across_members.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_method.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_method.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_nullable_equivalency.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_nullable_equivalency.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_nullable_void.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_nullable_void.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_optional_constraints.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_optional_constraints.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_overload.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_overload.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_sanity.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_sanity.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_special_method_signature_mismatch.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_special_method_signature_mismatch.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_special_methods.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_special_methods.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_special_methods_uniqueness.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_special_methods_uniqueness.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_treatNonCallableAsNull.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_treatNonCallableAsNull.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_typedef.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_typedef.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_union.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_union.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_union_any.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_union_any.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_union_nullable.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_union_nullable.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_variadic_callback.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_variadic_callback.py rename : servo/src/components/main/dom/bindings/codegen/parser/tests/test_variadic_constraints.py => servo/src/components/script/dom/bindings/codegen/parser/tests/test_variadic_constraints.py rename : servo/src/components/main/dom/bindings/codegen/ply/COPYING => servo/src/components/script/dom/bindings/codegen/ply/COPYING rename : servo/src/components/main/dom/bindings/codegen/ply/README => servo/src/components/script/dom/bindings/codegen/ply/README rename : servo/src/components/main/dom/bindings/codegen/ply/ply/__init__.py => servo/src/components/script/dom/bindings/codegen/ply/ply/__init__.py rename : servo/src/components/main/dom/bindings/codegen/ply/ply/lex.py => servo/src/components/script/dom/bindings/codegen/ply/ply/lex.py rename : servo/src/components/main/dom/bindings/codegen/ply/ply/yacc.py => servo/src/components/script/dom/bindings/codegen/ply/ply/yacc.py rename : servo/src/components/main/dom/bindings/codegen/pythonpath.py => servo/src/components/script/dom/bindings/codegen/pythonpath.py rename : servo/src/components/main/dom/bindings/codegen/stubgenerator/Skeleton.cpp => servo/src/components/script/dom/bindings/codegen/stubgenerator/Skeleton.cpp rename : servo/src/components/main/dom/bindings/codegen/stubgenerator/Skeleton.h => servo/src/components/script/dom/bindings/codegen/stubgenerator/Skeleton.h rename : servo/src/components/main/dom/bindings/codegen/stubgenerator/generate.sh => servo/src/components/script/dom/bindings/codegen/stubgenerator/generate.sh rename : servo/src/components/main/dom/bindings/codegen/test/Makefile.in => servo/src/components/script/dom/bindings/codegen/test/Makefile.in rename : servo/src/components/main/dom/bindings/codegen/test/TestBindingHeader.h => servo/src/components/script/dom/bindings/codegen/test/TestBindingHeader.h rename : servo/src/components/main/dom/bindings/codegen/test/TestCodeGen.webidl => servo/src/components/script/dom/bindings/codegen/test/TestCodeGen.webidl rename : servo/src/components/main/dom/bindings/codegen/test/TestDictionary.webidl => servo/src/components/script/dom/bindings/codegen/test/TestDictionary.webidl rename : servo/src/components/main/dom/bindings/codegen/test/TestTypedef.webidl => servo/src/components/script/dom/bindings/codegen/test/TestTypedef.webidl rename : servo/src/components/main/dom/bindings/codegen/test/file_bug775543.html => servo/src/components/script/dom/bindings/codegen/test/file_bug775543.html rename : servo/src/components/main/dom/bindings/codegen/test/forOf_iframe.html => servo/src/components/script/dom/bindings/codegen/test/forOf_iframe.html rename : servo/src/components/main/dom/bindings/codegen/test/test_InstanceOf.html => servo/src/components/script/dom/bindings/codegen/test/test_InstanceOf.html rename : servo/src/components/main/dom/bindings/codegen/test/test_bug773326.html => servo/src/components/script/dom/bindings/codegen/test/test_bug773326.html rename : servo/src/components/main/dom/bindings/codegen/test/test_bug775543.html => servo/src/components/script/dom/bindings/codegen/test/test_bug775543.html rename : servo/src/components/main/dom/bindings/codegen/test/test_bug788369.html => servo/src/components/script/dom/bindings/codegen/test/test_bug788369.html rename : servo/src/components/main/dom/bindings/codegen/test/test_enums.html => servo/src/components/script/dom/bindings/codegen/test/test_enums.html rename : servo/src/components/main/dom/bindings/codegen/test/test_forOf.html => servo/src/components/script/dom/bindings/codegen/test/test_forOf.html rename : servo/src/components/main/dom/bindings/codegen/test/test_integers.html => servo/src/components/script/dom/bindings/codegen/test/test_integers.html rename : servo/src/components/main/dom/bindings/codegen/test/test_interfaceToString.html => servo/src/components/script/dom/bindings/codegen/test/test_interfaceToString.html rename : servo/src/components/main/dom/bindings/codegen/test/test_lookupGetter.html => servo/src/components/script/dom/bindings/codegen/test/test_lookupGetter.html rename : servo/src/components/main/dom/bindings/codegen/test/test_sequence_wrapping.html => servo/src/components/script/dom/bindings/codegen/test/test_sequence_wrapping.html rename : servo/src/components/main/dom/bindings/codegen/test/test_traceProtos.html => servo/src/components/script/dom/bindings/codegen/test/test_traceProtos.html rename : servo/src/components/main/dom/bindings/conversions.rs => servo/src/components/script/dom/bindings/conversions.rs rename : servo/src/components/main/dom/bindings/document.rs => servo/src/components/script/dom/bindings/document.rs rename : servo/src/components/main/dom/bindings/domparser.rs => servo/src/components/script/dom/bindings/domparser.rs rename : servo/src/components/main/dom/bindings/element.rs => servo/src/components/script/dom/bindings/element.rs rename : servo/src/components/main/dom/bindings/event.rs => servo/src/components/script/dom/bindings/event.rs rename : servo/src/components/main/dom/bindings/eventtarget.rs => servo/src/components/script/dom/bindings/eventtarget.rs rename : servo/src/components/main/dom/bindings/htmlcollection.rs => servo/src/components/script/dom/bindings/htmlcollection.rs rename : servo/src/components/main/dom/bindings/node.rs => servo/src/components/script/dom/bindings/node.rs rename : servo/src/components/main/dom/bindings/proxyhandler.rs => servo/src/components/script/dom/bindings/proxyhandler.rs rename : servo/src/components/main/dom/bindings/text.rs => servo/src/components/script/dom/bindings/text.rs rename : servo/src/components/main/dom/bindings/utils.rs => servo/src/components/script/dom/bindings/utils.rs rename : servo/src/components/main/dom/bindings/window.rs => servo/src/components/script/dom/bindings/window.rs rename : servo/src/components/main/dom/characterdata.rs => servo/src/components/script/dom/characterdata.rs rename : servo/src/components/main/dom/clientrect.rs => servo/src/components/script/dom/clientrect.rs rename : servo/src/components/main/dom/clientrectlist.rs => servo/src/components/script/dom/clientrectlist.rs rename : servo/src/components/main/dom/document.rs => servo/src/components/script/dom/document.rs rename : servo/src/components/main/dom/domparser.rs => servo/src/components/script/dom/domparser.rs rename : servo/src/components/main/dom/element.rs => servo/src/components/script/dom/element.rs rename : servo/src/components/main/dom/event.rs => servo/src/components/script/dom/event.rs rename : servo/src/components/main/dom/eventtarget.rs => servo/src/components/script/dom/eventtarget.rs rename : servo/src/components/main/dom/htmlcollection.rs => servo/src/components/script/dom/htmlcollection.rs rename : servo/src/components/main/dom/node.rs => servo/src/components/script/dom/node.rs rename : servo/src/components/main/dom/window.rs => servo/src/components/script/dom/window.rs rename : servo/src/components/main/html/cssparse.rs => servo/src/components/script/html/cssparse.rs rename : servo/src/components/main/html/hubbub_html_parser.rs => servo/src/components/script/html/hubbub_html_parser.rs rename : servo/src/components/main/scripting/script_task.rs => servo/src/components/script/script_task.rs
This commit is contained in:
parent
ffca917e8d
commit
ade50cbb39
@ -192,14 +192,21 @@ DONE_gfx = $(B)src/components/gfx/libgfx.dummy
|
||||
|
||||
DEPS_gfx = $(CRATE_gfx) $(SRC_gfx) $(DONE_SUBMODULES) $(DONE_util) $(DONE_net)
|
||||
|
||||
RFLAGS_servo = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/gfx -L $(B)src/components/util -L $(B)src/components/net
|
||||
RFLAGS_script = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/util -L $(B)src/components/net -L $(B)src/components/gfx
|
||||
WEBIDL_script = $(call rwildcard,$(S)src/components/script/,*.webidl)
|
||||
AUTOGEN_SRC_script = $(patsubst %.webidl, %Binding.rs, $(WEBIDL_script))
|
||||
SRC_script = $(call rwildcard,$(S)src/components/script/,*.rs) $(AUTOGEN_SRC_script)
|
||||
CRATE_script = $(S)src/components/script/script.rc
|
||||
DONE_script = $(B)src/components/script/libscript.dummy
|
||||
|
||||
WEBIDL_servo = $(call rwildcard,$(S)src/components/main/,*.webidl)
|
||||
AUTOGEN_SRC_servo = $(patsubst %.webidl, %Binding.rs, $(WEBIDL_servo))
|
||||
SRC_servo = $(call rwildcard,$(S)src/components/main/,*.rs) $(AUTOGEN_SRC_servo)
|
||||
DEPS_script = $(CRATE_script) $(SRC_script) $(DONE_SUBMODULES) $(DONE_util) $(DONE_net)
|
||||
|
||||
RFLAGS_servo = $(strip $(CFG_RUSTC_FLAGS)) $(addprefix -L $(B)src/,$(DEPS_SUBMODULES)) -L $(B)src/components/gfx -L $(B)src/components/util -L $(B)src/components/net -L $(B)src/components/script
|
||||
|
||||
SRC_servo = $(call rwildcard,$(S)src/components/main/,*.rs)
|
||||
CRATE_servo = $(S)src/components/main/servo.rc
|
||||
|
||||
DEPS_servo = $(CRATE_servo) $(SRC_servo) $(DONE_SUBMODULES) $(DONE_util) $(DONE_gfx) $(DONE_net)
|
||||
DEPS_servo = $(CRATE_servo) $(SRC_servo) $(DONE_SUBMODULES) $(DONE_util) $(DONE_gfx) $(DONE_script) $(DONE_net)
|
||||
|
||||
# rules that depend on having correct meta-target vars (DEPS_CLEAN, DEPS_servo, etc)
|
||||
include $(S)mk/check.mk
|
||||
@ -220,13 +227,16 @@ $(DONE_net): $(DEPS_net)
|
||||
$(DONE_gfx): $(DEPS_gfx)
|
||||
$(RUSTC) $(RFLAGS_gfx) -o $@ $< && touch $@
|
||||
|
||||
BINDINGS_SRC = $(S)/src/components/main/dom/bindings/codegen
|
||||
$(DONE_script): $(DEPS_script)
|
||||
$(RUSTC) $(RFLAGS_script) -o $@ $< && touch $@
|
||||
|
||||
BINDINGS_SRC = $(S)/src/components/script/dom/bindings/codegen
|
||||
|
||||
CACHE_DIR = $(BINDINGS_SRC)/_cache
|
||||
|
||||
bindinggen_dependencies := $(addprefix $(BINDINGS_SRC)/, BindingGen.py Bindings.conf Configuration.py CodegenRust.py parser/WebIDL.py ParserResults.pkl)
|
||||
|
||||
$(AUTOGEN_SRC_servo): %Binding.rs: $(bindinggen_dependencies) \
|
||||
$(AUTOGEN_SRC_script): %Binding.rs: $(bindinggen_dependencies) \
|
||||
%.webidl
|
||||
PYTHONDONTWRITEBYTECODE=1 $(CFG_PYTHON2) $(BINDINGS_SRC)/pythonpath.py \
|
||||
-I$(BINDINGS_SRC)/parser -I$(BINDINGS_SRC)/ply \
|
||||
@ -241,13 +251,13 @@ $(CACHE_DIR)/.done:
|
||||
@touch $@
|
||||
|
||||
$(BINDINGS_SRC)/ParserResults.pkl: $(globalgen_dependencies) \
|
||||
$(WEBIDL_servo)
|
||||
$(WEBIDL_script)
|
||||
PYTHONDONTWRITEBYTECODE=1 $(CFG_PYTHON2) $(BINDINGS_SRC)/pythonpath.py \
|
||||
-I$(BINDINGS_SRC)/parser -I$(BINDINGS_SRC)/ply \
|
||||
-D$(BINDINGS_SRC) \
|
||||
$(BINDINGS_SRC)/GlobalGen.py $(BINDINGS_SRC)/Bindings.conf . \
|
||||
--cachedir=$(CACHE_DIR) \
|
||||
$(WEBIDL_servo)
|
||||
$(WEBIDL_script)
|
||||
|
||||
# Servo binaries
|
||||
|
||||
@ -268,7 +278,7 @@ package: servo
|
||||
|
||||
else
|
||||
|
||||
bindings: $(AUTOGEN_SRC_servo)
|
||||
bindings: $(AUTOGEN_SRC_script)
|
||||
|
||||
.PHONY: package
|
||||
package:
|
||||
|
1
servo/configure
vendored
1
servo/configure
vendored
@ -452,6 +452,7 @@ done
|
||||
make_dir ${CFG_BUILD_DIR}src/components/util
|
||||
make_dir ${CFG_BUILD_DIR}src/components/net
|
||||
make_dir ${CFG_BUILD_DIR}src/components/gfx
|
||||
make_dir ${CFG_BUILD_DIR}src/components/script
|
||||
make_dir ${CFG_BUILD_DIR}src/components/main
|
||||
make_dir src/test/html/ref
|
||||
make_dir src/compiler/rust
|
||||
|
@ -34,5 +34,8 @@ clean-net:
|
||||
clean-gfx:
|
||||
cd $(B)/src/components/gfx/ && rm -rf libservo_gfx*.dylib $(DONE_servo_gfx)
|
||||
|
||||
clean-servo: clean-gfx clean-util clean-net
|
||||
clean-script:
|
||||
cd $(B)/src/components/script/ && rm -rf libservo_script*.dylib $(DONE_servo_script)
|
||||
|
||||
clean-servo: clean-gfx clean-util clean-net clean-script
|
||||
rm -f servo servo-test
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
use compositing::resize_rate_limiter::ResizeRateLimiter;
|
||||
use platform::{Application, Window};
|
||||
use scripting::script_task::{LoadMsg, ScriptMsg};
|
||||
use script::script_task::{LoadMsg, ScriptMsg};
|
||||
use windowing::{ApplicationMethods, WindowMethods};
|
||||
|
||||
use azure::azure_hl::{DataSourceSurface, DrawTarget, SourceSurfaceMethods};
|
||||
|
@ -7,10 +7,9 @@
|
||||
/// before sending the next. If the window is resized multiple times before an event is handled
|
||||
/// then some events will never be sent.
|
||||
|
||||
use dom::event::ResizeEvent;
|
||||
use scripting::script_task::{ScriptMsg, SendEventMsg};
|
||||
|
||||
use core::comm::{Port, SharedChan};
|
||||
use script::dom::event::ResizeEvent;
|
||||
use script::script_task::{ScriptMsg, SendEventMsg};
|
||||
|
||||
pub struct ResizeRateLimiter {
|
||||
/// The channel we send resize events on
|
||||
|
@ -6,10 +6,10 @@
|
||||
|
||||
use css::node_util::NodeUtil;
|
||||
use css::select_handler::NodeSelectHandler;
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
use newcss::complete::CompleteSelectResults;
|
||||
use newcss::select::{SelectCtx, SelectResults};
|
||||
|
||||
use servo_util::tree::TreeUtils;
|
||||
|
||||
pub trait MatchMethods {
|
||||
|
@ -5,9 +5,9 @@
|
||||
// Style retrieval from DOM elements.
|
||||
|
||||
use css::node_util::NodeUtil;
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
|
||||
use newcss::complete::CompleteStyle;
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
|
||||
/// Node mixin providing `style` method that returns a `NodeStyle`
|
||||
pub trait StyledNode {
|
||||
|
@ -2,11 +2,11 @@
|
||||
* 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/. */
|
||||
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
use layout::aux::LayoutAuxMethods;
|
||||
|
||||
use core::cast::transmute;
|
||||
use newcss::complete::CompleteSelectResults;
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
|
||||
pub trait NodeUtil<'self> {
|
||||
fn get_css_select_results(self) -> &'self CompleteSelectResults;
|
||||
|
@ -1,28 +0,0 @@
|
||||
/* 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/. */
|
||||
|
||||
//! CSS library requires that DOM nodes be convertable to *c_void through this trait
|
||||
extern mod netsurfcss;
|
||||
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
|
||||
use core::cast;
|
||||
|
||||
// FIXME: Rust #3908. rust-css can't reexport VoidPtrLike
|
||||
use css::node_void_ptr::netsurfcss::util::VoidPtrLike;
|
||||
|
||||
impl VoidPtrLike for AbstractNode<LayoutView> {
|
||||
fn from_void_ptr(node: *libc::c_void) -> AbstractNode<LayoutView> {
|
||||
assert!(node.is_not_null());
|
||||
unsafe {
|
||||
cast::transmute(node)
|
||||
}
|
||||
}
|
||||
|
||||
fn to_void_ptr(&self) -> *libc::c_void {
|
||||
unsafe {
|
||||
cast::transmute(*self)
|
||||
}
|
||||
}
|
||||
}
|
@ -6,10 +6,9 @@
|
||||
/// Implementation of the callbacks that the CSS selector engine uses to query the DOM.
|
||||
///
|
||||
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
use newcss::select::SelectHandler;
|
||||
|
||||
use core::str::eq_slice;
|
||||
use newcss::select::SelectHandler;
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
|
||||
pub struct NodeSelectHandler {
|
||||
node: AbstractNode<LayoutView>,
|
||||
|
@ -3,10 +3,7 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use compositing::CompositorTask;
|
||||
use layout::layout_task::LayoutTask;
|
||||
use layout::layout_task;
|
||||
use scripting::script_task::{ExecuteMsg, LoadMsg, ScriptMsg, ScriptTask};
|
||||
use scripting::script_task;
|
||||
use util::task::spawn_listener;
|
||||
|
||||
use core::cell::Cell;
|
||||
@ -14,11 +11,14 @@ use core::comm::{Chan, Port, SharedChan};
|
||||
use gfx::opts::Opts;
|
||||
use gfx::render_task::RenderTask;
|
||||
use gfx::render_task;
|
||||
use script::layout_interface::LayoutTask;
|
||||
use script::layout_interface;
|
||||
use script::script_task::{ExecuteMsg, LoadMsg, ScriptMsg, ScriptTask};
|
||||
use script::script_task;
|
||||
use servo_net::image_cache_task::{ImageCacheTask, ImageCacheTaskClient};
|
||||
use servo_net::resource_task::ResourceTask;
|
||||
use servo_net::resource_task;
|
||||
use servo_util::time::{ProfilerChan, ProfilerPort, ProfilerTask};
|
||||
use servo_util::time;
|
||||
use std::net::url::Url;
|
||||
|
||||
pub type EngineTask = Chan<Msg>;
|
||||
@ -61,10 +61,10 @@ impl Engine {
|
||||
let profiler_task = ProfilerTask::new(profiler_port.take(), profiler_chan.clone());
|
||||
|
||||
let opts = opts.take();
|
||||
let layout_task = LayoutTask(render_task.clone(),
|
||||
image_cache_task.clone(),
|
||||
opts,
|
||||
profiler_task.chan.clone());
|
||||
let layout_task = layout_task::create_layout_task(render_task.clone(),
|
||||
image_cache_task.clone(),
|
||||
opts,
|
||||
profiler_task.chan.clone());
|
||||
|
||||
let script_task = ScriptTask::new(script_port.take(),
|
||||
script_chan.take(),
|
||||
@ -105,7 +105,7 @@ impl Engine {
|
||||
|
||||
ExitMsg(sender) => {
|
||||
self.script_task.chan.send(script_task::ExitMsg);
|
||||
self.layout_task.send(layout_task::ExitMsg);
|
||||
self.layout_task.chan.send(layout_interface::ExitMsg);
|
||||
|
||||
let (response_port, response_chan) = comm::stream();
|
||||
|
||||
|
@ -4,10 +4,10 @@
|
||||
|
||||
//! Code for managing the layout data in the DOM.
|
||||
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
use layout::flow::FlowContext;
|
||||
|
||||
use newcss::complete::CompleteSelectResults;
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
use servo_util::tree::TreeUtils;
|
||||
|
||||
/// Data that layout associates with a node.
|
||||
|
@ -5,9 +5,7 @@
|
||||
//! The `RenderBox` type, which represents the leaves of the layout tree.
|
||||
|
||||
use css::node_style::StyledNode;
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
use layout::context::LayoutContext;
|
||||
use layout::debug::DebugMethods;
|
||||
use layout::display_list_builder::{DisplayListBuilder, ToGfxColor};
|
||||
use layout::flow::FlowContext;
|
||||
use layout::text;
|
||||
@ -29,6 +27,7 @@ use newcss::values::{CSSFontSizeLength, CSSFontStyleItalic, CSSFontStyleNormal};
|
||||
use newcss::values::{CSSFontStyleOblique, CSSTextAlign, CSSTextDecoration};
|
||||
use newcss::values::{CSSTextDecorationNone, CSSFloatNone, CSSPositionStatic};
|
||||
use newcss::values::{CSSDisplayInlineBlock, CSSDisplayInlineTable};
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
use servo_net::image::holder::ImageHolder;
|
||||
use servo_net::local_image_cache::LocalImageCache;
|
||||
use servo_util::range::*;
|
||||
@ -795,15 +794,14 @@ pub impl RenderBox {
|
||||
}
|
||||
get_propagated_text_decoration(self.nearest_ancestor_element())
|
||||
}
|
||||
}
|
||||
|
||||
impl DebugMethods for RenderBox {
|
||||
fn dump(&self) {
|
||||
/// Dumps this node, for debugging.
|
||||
pub fn dump(&self) {
|
||||
self.dump_indent(0);
|
||||
}
|
||||
|
||||
/// Dumps a render box for debugging, with indentation.
|
||||
fn dump_indent(&self, indent: uint) {
|
||||
pub fn dump_indent(&self, indent: uint) {
|
||||
let mut string = ~"";
|
||||
for uint::range(0u, indent) |_i| {
|
||||
string += ~" ";
|
||||
@ -814,7 +812,7 @@ impl DebugMethods for RenderBox {
|
||||
}
|
||||
|
||||
/// Returns a debugging string describing this box.
|
||||
fn debug_str(&self) -> ~str {
|
||||
pub fn debug_str(&self) -> ~str {
|
||||
let representation = match *self {
|
||||
GenericRenderBoxClass(*) => ~"GenericRenderBox",
|
||||
ImageRenderBoxClass(*) => ~"ImageRenderBox",
|
||||
|
@ -4,16 +4,12 @@
|
||||
|
||||
//! Creates CSS boxes from a DOM tree.
|
||||
|
||||
use dom::element::*;
|
||||
use dom::node::{AbstractNode, CommentNodeTypeId, DoctypeNodeTypeId};
|
||||
use dom::node::{ElementNodeTypeId, LayoutView, TextNodeTypeId};
|
||||
use layout::aux::LayoutAuxMethods;
|
||||
use layout::block::BlockFlowData;
|
||||
use layout::box::{GenericRenderBoxClass, ImageRenderBox, ImageRenderBoxClass, RenderBox};
|
||||
use layout::box::{RenderBoxBase, RenderBoxType, RenderBox_Generic, RenderBox_Image};
|
||||
use layout::box::{RenderBox_Text, UnscannedTextRenderBox, UnscannedTextRenderBoxClass};
|
||||
use layout::context::LayoutContext;
|
||||
use layout::debug::{BoxedMutDebugMethods, DebugMethods};
|
||||
use layout::flow::{AbsoluteFlow, BlockFlow, FloatFlow, Flow_Absolute, Flow_Block, Flow_Float};
|
||||
use layout::flow::{Flow_Inline, Flow_InlineBlock, Flow_Root, Flow_Table, FlowContext};
|
||||
use layout::flow::{FlowContextType, FlowData, InlineBlockFlow, InlineFlow, TableFlow};
|
||||
@ -21,6 +17,9 @@ use layout::inline::{InlineFlowData, InlineLayout};
|
||||
|
||||
use newcss::values::{CSSDisplay, CSSDisplayBlock, CSSDisplayInline, CSSDisplayInlineBlock};
|
||||
use newcss::values::{CSSDisplayNone};
|
||||
use script::dom::element::*;
|
||||
use script::dom::node::{AbstractNode, CommentNodeTypeId, DoctypeNodeTypeId};
|
||||
use script::dom::node::{ElementNodeTypeId, LayoutView, TextNodeTypeId};
|
||||
use servo_util::range::Range;
|
||||
use servo_util::tree::{TreeNodeRef, TreeUtils};
|
||||
|
||||
|
@ -1,21 +0,0 @@
|
||||
/* 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/. */
|
||||
|
||||
pub trait BoxedMutDebugMethods {
|
||||
fn dump(@mut self);
|
||||
fn dump_indent(@mut self, ident: uint);
|
||||
fn debug_str(@mut self) -> ~str;
|
||||
}
|
||||
|
||||
pub trait BoxedDebugMethods {
|
||||
fn dump(@self);
|
||||
fn dump_indent(@self, ident: uint);
|
||||
fn debug_str(@self) -> ~str;
|
||||
}
|
||||
|
||||
pub trait DebugMethods {
|
||||
fn dump(&self);
|
||||
fn dump_indent(&self, ident: uint);
|
||||
fn debug_str(&self) -> ~str;
|
||||
}
|
@ -25,11 +25,9 @@
|
||||
/// line breaks and mapping to CSS boxes, for the purpose of handling `getClientRects()` and
|
||||
/// similar methods.
|
||||
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
use layout::block::BlockFlowData;
|
||||
use layout::box::RenderBox;
|
||||
use layout::context::LayoutContext;
|
||||
use layout::debug::DebugMethods;
|
||||
use layout::display_list_builder::DisplayListBuilder;
|
||||
use layout::inline::{InlineFlowData};
|
||||
|
||||
@ -38,6 +36,7 @@ use geom::point::Point2D;
|
||||
use geom::rect::Rect;
|
||||
use gfx::display_list::DisplayList;
|
||||
use gfx::geometry::Au;
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
use servo_util::tree::{TreeNode, TreeNodeRef, TreeUtils};
|
||||
|
||||
/// The type of the formatting context and data specific to each context, such as line box
|
||||
@ -372,15 +371,14 @@ impl<'self> FlowContext {
|
||||
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
impl DebugMethods for FlowContext {
|
||||
fn dump(&self) {
|
||||
/// Dumps the flow tree for debugging.
|
||||
pub fn dump(&self) {
|
||||
self.dump_indent(0);
|
||||
}
|
||||
|
||||
/// Dumps the flow tree, for debugging, with indentation.
|
||||
fn dump_indent(&self, indent: uint) {
|
||||
pub fn dump_indent(&self, indent: uint) {
|
||||
let mut s = ~"|";
|
||||
for uint::range(0, indent) |_i| {
|
||||
s += ~"---- ";
|
||||
@ -395,7 +393,7 @@ impl DebugMethods for FlowContext {
|
||||
}
|
||||
}
|
||||
|
||||
fn debug_str(&self) -> ~str {
|
||||
pub fn debug_str(&self) -> ~str {
|
||||
let repr = match *self {
|
||||
InlineFlow(inline) => {
|
||||
let mut s = inline.boxes.foldl(~"InlineFlow(children=", |s, box| {
|
||||
|
@ -4,11 +4,9 @@
|
||||
|
||||
use core::cell::Cell;
|
||||
use core;
|
||||
use dom::node::{AbstractNode, LayoutView};
|
||||
use layout::box::{CannotSplit, GenericRenderBoxClass, ImageRenderBoxClass, RenderBox};
|
||||
use layout::box::{SplitDidFit, SplitDidNotFit, TextRenderBoxClass, UnscannedTextRenderBoxClass};
|
||||
use layout::context::LayoutContext;
|
||||
use layout::debug::{BoxedDebugMethods, BoxedMutDebugMethods, DebugMethods};
|
||||
use layout::display_list_builder::DisplayListBuilder;
|
||||
use layout::flow::{FlowContext, FlowData, InlineFlow};
|
||||
use layout::text::{UnscannedMethods, adapt_textbox_with_range};
|
||||
@ -20,9 +18,8 @@ use gfx::geometry::Au;
|
||||
use gfx::text::text_run::TextRun;
|
||||
use gfx::text::util::*;
|
||||
use newcss::values::{CSSTextAlignCenter, CSSTextAlignJustify, CSSTextAlignLeft};
|
||||
use newcss::values::{CSSTextAlignRight};
|
||||
use newcss::values::CSSTextDecorationUnderline;
|
||||
use newcss::values::CSSTextDecoration;
|
||||
use newcss::values::{CSSTextAlignRight, CSSTextDecoration, CSSTextDecorationUnderline};
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
use servo_util::range::Range;
|
||||
use std::deque::Deque;
|
||||
|
||||
|
@ -2,20 +2,16 @@
|
||||
* 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/. */
|
||||
|
||||
/// The layout task. Performs layout on the DOM, builds display lists and sends them to be
|
||||
//! The layout task. Performs layout on the DOM, builds display lists and sends them to be
|
||||
/// rendered.
|
||||
|
||||
use css::matching::MatchMethods;
|
||||
use css::select::new_css_select_ctx;
|
||||
use dom::event::ReflowEvent;
|
||||
use dom::node::{AbstractNode, LayoutView, ScriptView};
|
||||
use layout::aux::{LayoutData, LayoutAuxMethods};
|
||||
use layout::box_builder::LayoutTreeBuilder;
|
||||
use layout::context::LayoutContext;
|
||||
use layout::debug::{BoxedMutDebugMethods, DebugMethods};
|
||||
use layout::display_list_builder::{DisplayListBuilder, FlowDisplayListBuilderMethods};
|
||||
use layout::flow::FlowContext;
|
||||
use scripting::script_task::{ScriptMsg, SendEventMsg};
|
||||
use util::task::spawn_listener;
|
||||
use servo_util::time;
|
||||
use servo_util::time::time;
|
||||
@ -37,72 +33,34 @@ use gfx::render_task::{RenderMsg, RenderTask};
|
||||
use newcss::select::SelectCtx;
|
||||
use newcss::stylesheet::Stylesheet;
|
||||
use newcss::types::OriginAuthor;
|
||||
use script::dom::event::ReflowEvent;
|
||||
use script::dom::node::{AbstractNode, LayoutView};
|
||||
use script::layout_interface::{AddStylesheetMsg, BuildData, BuildMsg, ContentBoxQuery};
|
||||
use script::layout_interface::{ContentBoxResponse, ContentBoxesQuery, ContentBoxesResponse};
|
||||
use script::layout_interface::{ExitMsg, LayoutQuery, LayoutResponse, LayoutTask};
|
||||
use script::layout_interface::{MatchSelectorsDamage, Msg, NoDamage, QueryMsg, ReflowDamage};
|
||||
use script::script_task::{ScriptMsg, SendEventMsg};
|
||||
use servo_net::image_cache_task::{ImageCacheTask, ImageResponseMsg};
|
||||
use servo_net::local_image_cache::LocalImageCache;
|
||||
use servo_util::tree::TreeUtils;
|
||||
use std::net::url::Url;
|
||||
|
||||
pub type LayoutTask = SharedChan<Msg>;
|
||||
|
||||
pub enum LayoutQuery {
|
||||
ContentBox(AbstractNode<ScriptView>),
|
||||
ContentBoxes(AbstractNode<ScriptView>),
|
||||
}
|
||||
|
||||
pub type LayoutQueryResponse = Result<LayoutQueryResponse_, ()>;
|
||||
|
||||
pub enum LayoutQueryResponse_ {
|
||||
ContentRect(Rect<Au>),
|
||||
ContentRects(~[Rect<Au>])
|
||||
}
|
||||
|
||||
pub enum Msg {
|
||||
AddStylesheet(Stylesheet),
|
||||
BuildMsg(~BuildData),
|
||||
QueryMsg(LayoutQuery, Chan<LayoutQueryResponse>),
|
||||
ExitMsg
|
||||
}
|
||||
|
||||
// Dirty bits for layout.
|
||||
pub enum Damage {
|
||||
NoDamage, // Document is clean; do nothing.
|
||||
ReflowDamage, // Reflow; don't perform CSS selector matching.
|
||||
MatchSelectorsDamage, // Perform CSS selector matching and reflow.
|
||||
}
|
||||
|
||||
impl Damage {
|
||||
fn add(&mut self, new_damage: Damage) {
|
||||
match (*self, new_damage) {
|
||||
(NoDamage, _) => *self = new_damage,
|
||||
(ReflowDamage, NoDamage) => *self = ReflowDamage,
|
||||
(ReflowDamage, new_damage) => *self = new_damage,
|
||||
(MatchSelectorsDamage, _) => *self = MatchSelectorsDamage
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct BuildData {
|
||||
node: AbstractNode<ScriptView>,
|
||||
url: Url,
|
||||
script_chan: SharedChan<ScriptMsg>,
|
||||
window_size: Size2D<uint>,
|
||||
script_join_chan: Chan<()>,
|
||||
damage: Damage,
|
||||
}
|
||||
|
||||
pub fn LayoutTask(render_task: RenderTask,
|
||||
img_cache_task: ImageCacheTask,
|
||||
opts: Opts,
|
||||
prof_chan: ProfilerChan)
|
||||
-> LayoutTask {
|
||||
SharedChan::new(do spawn_listener::<Msg> |from_script| {
|
||||
let mut layout = Layout(render_task.clone(),
|
||||
img_cache_task.clone(),
|
||||
from_script,
|
||||
&opts,
|
||||
prof_chan.clone());
|
||||
pub fn create_layout_task(render_task: RenderTask,
|
||||
img_cache_task: ImageCacheTask,
|
||||
opts: Opts,
|
||||
profiler_chan: ProfilerChan)
|
||||
-> LayoutTask {
|
||||
let chan = do spawn_listener::<Msg> |from_script| {
|
||||
let mut layout = Layout::new(render_task.clone(),
|
||||
img_cache_task.clone(),
|
||||
from_script,
|
||||
&opts,
|
||||
profiler_chan.clone());
|
||||
layout.start();
|
||||
})
|
||||
};
|
||||
|
||||
LayoutTask {
|
||||
chan: SharedChan::new(chan),
|
||||
}
|
||||
}
|
||||
|
||||
struct Layout {
|
||||
@ -111,57 +69,54 @@ struct Layout {
|
||||
local_image_cache: @mut LocalImageCache,
|
||||
from_script: Port<Msg>,
|
||||
font_ctx: @mut FontContext,
|
||||
// This is used to root reader data
|
||||
|
||||
/// This is used to root reader data.
|
||||
layout_refs: ~[@mut LayoutData],
|
||||
|
||||
css_select_ctx: @mut SelectCtx,
|
||||
prof_chan: ProfilerChan,
|
||||
}
|
||||
|
||||
fn Layout(render_task: RenderTask,
|
||||
image_cache_task: ImageCacheTask,
|
||||
from_script: Port<Msg>,
|
||||
opts: &Opts,
|
||||
prof_chan: ProfilerChan)
|
||||
-> Layout {
|
||||
let fctx = @mut FontContext::new(opts.render_backend, true, prof_chan.clone());
|
||||
|
||||
Layout {
|
||||
render_task: render_task,
|
||||
image_cache_task: image_cache_task.clone(),
|
||||
local_image_cache: @mut LocalImageCache(image_cache_task),
|
||||
from_script: from_script,
|
||||
font_ctx: fctx,
|
||||
layout_refs: ~[],
|
||||
css_select_ctx: @mut new_css_select_ctx(),
|
||||
prof_chan: prof_chan.clone()
|
||||
}
|
||||
profiler_chan: ProfilerChan,
|
||||
}
|
||||
|
||||
impl Layout {
|
||||
fn new(render_task: RenderTask,
|
||||
image_cache_task: ImageCacheTask,
|
||||
from_script: Port<Msg>,
|
||||
opts: &Opts,
|
||||
profiler_chan: ProfilerChan)
|
||||
-> Layout {
|
||||
let fctx = @mut FontContext::new(opts.render_backend, true, profiler_chan.clone());
|
||||
|
||||
Layout {
|
||||
render_task: render_task,
|
||||
image_cache_task: image_cache_task.clone(),
|
||||
local_image_cache: @mut LocalImageCache(image_cache_task),
|
||||
from_script: from_script,
|
||||
font_ctx: fctx,
|
||||
layout_refs: ~[],
|
||||
css_select_ctx: @mut new_css_select_ctx(),
|
||||
profiler_chan: profiler_chan,
|
||||
}
|
||||
}
|
||||
|
||||
fn start(&mut self) {
|
||||
while self.handle_request() {
|
||||
// loop indefinitely
|
||||
// Loop indefinitely.
|
||||
}
|
||||
}
|
||||
|
||||
fn handle_request(&mut self) -> bool {
|
||||
|
||||
match self.from_script.recv() {
|
||||
AddStylesheet(sheet) => {
|
||||
self.handle_add_stylesheet(sheet);
|
||||
}
|
||||
AddStylesheetMsg(sheet) => self.handle_add_stylesheet(sheet),
|
||||
BuildMsg(data) => {
|
||||
let data = Cell(data);
|
||||
|
||||
do profile(time::LayoutPerformCategory, self.prof_chan.clone()) {
|
||||
do profile(time::LayoutPerformCategory, self.profiler_chan.clone()) {
|
||||
self.handle_build(data.take());
|
||||
}
|
||||
|
||||
}
|
||||
QueryMsg(query, chan) => {
|
||||
let chan = Cell(chan);
|
||||
do profile(time::LayoutQueryCategory, self.prof_chan.clone()) {
|
||||
do profile(time::LayoutQueryCategory, self.profiler_chan.clone()) {
|
||||
self.handle_query(query, chan.take())
|
||||
}
|
||||
}
|
||||
@ -212,7 +167,7 @@ impl Layout {
|
||||
// Initialize layout data for each node.
|
||||
//
|
||||
// FIXME: This is inefficient. We don't need an entire traversal to do this!
|
||||
do profile(time::LayoutAuxInitCategory, self.prof_chan.clone()) {
|
||||
do profile(time::LayoutAuxInitCategory, self.profiler_chan.clone()) {
|
||||
node.initialize_style_for_subtree(&mut self.layout_refs);
|
||||
}
|
||||
|
||||
@ -220,7 +175,7 @@ impl Layout {
|
||||
match data.damage {
|
||||
NoDamage | ReflowDamage => {}
|
||||
MatchSelectorsDamage => {
|
||||
do profile(time::LayoutSelectorMatchCategory, self.prof_chan.clone()) {
|
||||
do profile(time::LayoutSelectorMatchCategory, self.profiler_chan.clone()) {
|
||||
node.restyle_subtree(self.css_select_ctx);
|
||||
}
|
||||
}
|
||||
@ -228,7 +183,7 @@ impl Layout {
|
||||
|
||||
// Construct the flow tree.
|
||||
let layout_root: FlowContext = do profile(time::LayoutTreeBuilderCategory,
|
||||
self.prof_chan.clone()) {
|
||||
self.profiler_chan.clone()) {
|
||||
let mut builder = LayoutTreeBuilder::new();
|
||||
let layout_root: FlowContext = match builder.construct_trees(&layout_ctx, *node) {
|
||||
Ok(root) => root,
|
||||
@ -243,7 +198,7 @@ impl Layout {
|
||||
|
||||
// Perform the primary layout passes over the flow tree to compute the locations of all
|
||||
// the boxes.
|
||||
do profile(time::LayoutMainCategory, self.prof_chan.clone()) {
|
||||
do profile(time::LayoutMainCategory, self.profiler_chan.clone()) {
|
||||
for layout_root.traverse_postorder |flow| {
|
||||
flow.bubble_widths(&mut layout_ctx);
|
||||
};
|
||||
@ -256,7 +211,7 @@ impl Layout {
|
||||
}
|
||||
|
||||
// Build the display list, and send it to the renderer.
|
||||
do profile(time::LayoutDispListBuildCategory, self.prof_chan.clone()) {
|
||||
do profile(time::LayoutDispListBuildCategory, self.profiler_chan.clone()) {
|
||||
let builder = DisplayListBuilder {
|
||||
ctx: &layout_ctx,
|
||||
};
|
||||
@ -281,9 +236,9 @@ impl Layout {
|
||||
|
||||
/// Handles a query from the script task. This is the main routine that DOM functions like
|
||||
/// `getClientRects()` or `getBoundingClientRect()` ultimately invoke.
|
||||
fn handle_query(&self, query: LayoutQuery, reply_chan: Chan<LayoutQueryResponse>) {
|
||||
fn handle_query(&self, query: LayoutQuery, reply_chan: Chan<Result<LayoutResponse,()>>) {
|
||||
match query {
|
||||
ContentBox(node) => {
|
||||
ContentBoxQuery(node) => {
|
||||
// FIXME: Isolate this transmutation into a single "bridge" module.
|
||||
let node: AbstractNode<LayoutView> = unsafe {
|
||||
transmute(node)
|
||||
@ -308,14 +263,14 @@ impl Layout {
|
||||
error!("no boxes for node");
|
||||
Err(())
|
||||
}
|
||||
Some(rect) => Ok(ContentRect(rect))
|
||||
Some(rect) => Ok(ContentBoxResponse(rect))
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
reply_chan.send(response)
|
||||
}
|
||||
ContentBoxes(node) => {
|
||||
ContentBoxesQuery(node) => {
|
||||
// FIXME: Isolate this transmutation into a single "bridge" module.
|
||||
let node: AbstractNode<LayoutView> = unsafe {
|
||||
transmute(node)
|
||||
@ -329,7 +284,7 @@ impl Layout {
|
||||
boxes.push(box.content_box());
|
||||
}
|
||||
|
||||
Ok(ContentRects(boxes))
|
||||
Ok(ContentBoxesResponse(boxes))
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -17,11 +17,11 @@ extern mod geom;
|
||||
extern mod gfx (name = "gfx");
|
||||
extern mod glut;
|
||||
extern mod http_client;
|
||||
extern mod hubbub;
|
||||
extern mod js;
|
||||
extern mod layers;
|
||||
extern mod newcss (name = "css");
|
||||
extern mod opengles;
|
||||
extern mod script;
|
||||
extern mod servo_net (name = "net");
|
||||
extern mod servo_util (name = "util");
|
||||
extern mod sharegl;
|
||||
@ -48,58 +48,15 @@ pub use servo_util::url::make_url;
|
||||
#[path="compositing/mod.rs"]
|
||||
pub mod compositing;
|
||||
|
||||
pub mod scripting {
|
||||
pub mod script_task;
|
||||
}
|
||||
|
||||
pub mod css {
|
||||
priv mod select_handler;
|
||||
priv mod node_util;
|
||||
priv mod node_void_ptr;
|
||||
|
||||
pub mod select;
|
||||
pub mod matching;
|
||||
pub mod node_style;
|
||||
}
|
||||
|
||||
pub mod dom {
|
||||
pub mod bindings {
|
||||
pub mod document;
|
||||
pub mod element;
|
||||
pub mod event;
|
||||
pub mod eventtarget;
|
||||
pub mod node;
|
||||
pub mod text;
|
||||
pub mod utils;
|
||||
pub mod conversions;
|
||||
pub mod window;
|
||||
pub mod proxyhandler;
|
||||
pub mod clientrect;
|
||||
pub mod clientrectlist;
|
||||
pub mod domparser;
|
||||
pub mod htmlcollection;
|
||||
pub mod codegen {
|
||||
pub mod ClientRectBinding;
|
||||
pub mod ClientRectListBinding;
|
||||
pub mod DOMParserBinding;
|
||||
pub mod EventBinding;
|
||||
pub mod EventTargetBinding;
|
||||
pub mod HTMLCollectionBinding;
|
||||
}
|
||||
}
|
||||
pub mod characterdata;
|
||||
pub mod clientrect;
|
||||
pub mod clientrectlist;
|
||||
pub mod document;
|
||||
pub mod domparser;
|
||||
pub mod element;
|
||||
pub mod event;
|
||||
pub mod eventtarget;
|
||||
pub mod htmlcollection;
|
||||
pub mod node;
|
||||
pub mod window;
|
||||
}
|
||||
|
||||
pub mod engine;
|
||||
|
||||
pub mod layout {
|
||||
@ -107,7 +64,6 @@ pub mod layout {
|
||||
pub mod box;
|
||||
pub mod box_builder;
|
||||
pub mod context;
|
||||
pub mod debug;
|
||||
pub mod display_list_builder;
|
||||
pub mod flow;
|
||||
pub mod layout_task;
|
||||
@ -116,11 +72,6 @@ pub mod layout {
|
||||
mod aux;
|
||||
}
|
||||
|
||||
pub mod html {
|
||||
pub mod cssparse;
|
||||
pub mod hubbub_html_parser;
|
||||
}
|
||||
|
||||
pub mod windowing;
|
||||
|
||||
#[path="platform/mod.rs"]
|
||||
|
@ -5,9 +5,10 @@
|
||||
use dom::bindings::utils::{CacheableWrapper, WrapperCache, BindingObject, DerivedWrapper};
|
||||
use dom::bindings::codegen::ClientRectBinding;
|
||||
use dom::clientrect::ClientRect;
|
||||
use script_task::{task_from_context, global_script_context};
|
||||
|
||||
use js::jsapi::{JSObject, JSContext, JSVal};
|
||||
use js::glue::bindgen::RUST_OBJECT_TO_JSVAL;
|
||||
use scripting::script_task::{task_from_context, global_script_context};
|
||||
|
||||
pub impl ClientRect {
|
||||
pub fn init_wrapper(@mut self) {
|
@ -5,8 +5,9 @@
|
||||
use dom::bindings::codegen::ClientRectListBinding;
|
||||
use dom::bindings::utils::{WrapperCache, CacheableWrapper, BindingObject};
|
||||
use dom::clientrectlist::ClientRectList;
|
||||
use script_task::{task_from_context, global_script_context};
|
||||
|
||||
use js::jsapi::{JSObject, JSContext};
|
||||
use scripting::script_task::{task_from_context, global_script_context};
|
||||
|
||||
pub impl ClientRectList {
|
||||
fn init_wrapper(@mut self) {
|
@ -4147,7 +4147,7 @@ class CGBindingRoot(CGThing):
|
||||
'dom::domparser::*', #XXXjdm
|
||||
'dom::event::*', #XXXjdm
|
||||
'dom::eventtarget::*', #XXXjdm
|
||||
'scripting::script_task::task_from_context',
|
||||
'script_task::task_from_context',
|
||||
'dom::bindings::utils::EnumEntry',
|
||||
'dom::node::ScriptView',
|
||||
],
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user