@@ -1932,34 +1932,43 @@ void DomainDispatcherImpl::getDocument(const v8_crdtp::Dispatchable& dispatchabl
1932
1932
errors->SetName (" depth" );
1933
1933
in_depth = ValueConversions<int >::fromValue (depthValue, errors);
1934
1934
}
1935
+
1935
1936
protocol::Value* pierceValue = params ? params->get (" pierce" ) : nullptr ;
1936
1937
Maybe<bool > in_pierce;
1937
1938
if (pierceValue) {
1938
1939
errors->SetName (" pierce" );
1939
1940
in_pierce = ValueConversions<bool >::fromValue (pierceValue, errors);
1940
1941
}
1942
+
1941
1943
if (MaybeReportInvalidParams (dispatchable, *errors)) return ;
1942
1944
// Declare output parameters.
1943
1945
std::unique_ptr<protocol::DOM::Node> out_root;
1944
1946
1945
1947
std::unique_ptr<DomainDispatcher::WeakPtr> weak = weakPtr ();
1946
- DispatchResponse response = m_backend->getDocument (std::move (in_depth), std::move (in_pierce), &out_root);
1947
- if (response.IsFallThrough ()) {
1948
- channel ()->FallThrough (dispatchable.CallId (), v8_crdtp::SpanFrom (" DOM.getDocument" ), dispatchable.Serialized ());
1949
- return ;
1950
- }
1951
- if (weak->get ()) {
1952
- std::vector<uint8_t > result;
1953
- if (response.IsSuccess ()) {
1954
- v8_crdtp::cbor::EnvelopeEncoder envelope_encoder;
1955
- envelope_encoder.EncodeStart (&result);
1956
- result.push_back (v8_crdtp::cbor::EncodeIndefiniteLengthMapStart ());
1957
- v8_crdtp::SerializeField (v8_crdtp::SpanFrom (" root" ), out_root, &result);
1958
- result.push_back (v8_crdtp::cbor::EncodeStop ());
1959
- envelope_encoder.EncodeStop (&result);
1948
+
1949
+ if (depthValue && pierceValue) {
1950
+ // NOTE: in_depth & in_pierce are not used in the method getDocument, see in v8-dom-agent-impl.cpp:63
1951
+ DispatchResponse response = m_backend->getDocument (std::move (in_depth),
1952
+ std::move (in_pierce), &out_root);
1953
+ if (response.IsFallThrough ()) {
1954
+ channel ()->FallThrough (dispatchable.CallId (), v8_crdtp::SpanFrom (" DOM.getDocument" ),
1955
+ dispatchable.Serialized ());
1956
+ return ;
1960
1957
}
1961
- weak->get ()->sendResponse (dispatchable.CallId (), response, v8_crdtp::Serializable::From (std::move (result)));
1962
- }
1958
+ if (weak->get ()) {
1959
+ std::vector<uint8_t > result;
1960
+ if (response.IsSuccess ()) {
1961
+ v8_crdtp::cbor::EnvelopeEncoder envelope_encoder;
1962
+ envelope_encoder.EncodeStart (&result);
1963
+ result.push_back (v8_crdtp::cbor::EncodeIndefiniteLengthMapStart ());
1964
+ v8_crdtp::SerializeField (v8_crdtp::SpanFrom (" root" ), out_root, &result);
1965
+ result.push_back (v8_crdtp::cbor::EncodeStop ());
1966
+ envelope_encoder.EncodeStop (&result);
1967
+ }
1968
+ weak->get ()->sendResponse (dispatchable.CallId (), response,
1969
+ v8_crdtp::Serializable::From (std::move (result)));
1970
+ }
1971
+ }
1963
1972
return ;
1964
1973
}
1965
1974
0 commit comments