@Override
        public void onNext(HttpObject httpObject) {
            if (httpObject instanceof ResponseHeaders) {
                final ResponseHeaders headers = (ResponseHeaders) httpObject;
                if (finalResponseHeadersPredicate.test(headers)) {
                    headersFuture.doComplete(headers);
                } else {
                    final Subscription upstream = upstream();
                    assert upstream != null;
                    upstream.request(1);
                }
                return;
            }
            super.onNext(httpObject);
        }
Creates a new {@link DefaultSplitHttpResponse} from the specified {@link HttpResponse}.
The specified {@link Predicate} is used to determine if the {@link ResponseHeaders} is the final one.
For example, if there are multiple informational {@link ResponseHeaders} and the {@link Predicate}
will be {@code headers -> !headers.status().isInformational()}.
However, if the {@link ResponseHeaders} is only one, and it can be an informational one such as a
WebSocket response, {@link Predicate} will be {@code headers -> true}.
core/src/main/java/com/linecorp/armeria/internal/common/DefaultSplitHttpResponse.java