Introduce QUIC_NO_EXPORT This CL replaces the /*QUIC_EXPORT_PRIVATE*/ annotation with QUIC_NO_EXPORT and changes the presubmit to allow that. QUIC_NO_EXPORT was added to Chromium via: https://chromium-review.googlesource.com/c/chromium/src/+/1885392 gfe-relnote: n/a, comment-only change PiperOrigin-RevId: 277332771 Change-Id: I2badefc67bae486e5908925daeecb6886b174532
diff --git a/quic/core/chlo_extractor.h b/quic/core/chlo_extractor.h index 7d6d17d..89dffe1 100644 --- a/quic/core/chlo_extractor.h +++ b/quic/core/chlo_extractor.h
@@ -12,9 +12,9 @@ // A utility for extracting QUIC Client Hello messages from packets, // without needs to spin up a full QuicSession. -class /*QUIC_EXPORT_PRIVATE*/ ChloExtractor { +class QUIC_NO_EXPORT ChloExtractor { public: - class /*QUIC_EXPORT_PRIVATE*/ Delegate { + class QUIC_NO_EXPORT Delegate { public: virtual ~Delegate() {}
diff --git a/quic/core/http/quic_spdy_client_session.h b/quic/core/http/quic_spdy_client_session.h index cf2bad9..b3def0a 100644 --- a/quic/core/http/quic_spdy_client_session.h +++ b/quic/core/http/quic_spdy_client_session.h
@@ -20,8 +20,7 @@ class QuicConnection; class QuicServerId; -class /*QUIC_EXPORT_PRIVATE*/ QuicSpdyClientSession - : public QuicSpdyClientSessionBase { +class QUIC_NO_EXPORT QuicSpdyClientSession : public QuicSpdyClientSessionBase { public: // Takes ownership of |connection|. Caller retains ownership of // |promised_by_url|.
diff --git a/quic/core/http/quic_spdy_client_stream.h b/quic/core/http/quic_spdy_client_stream.h index d914506..5cd27d4 100644 --- a/quic/core/http/quic_spdy_client_stream.h +++ b/quic/core/http/quic_spdy_client_stream.h
@@ -19,7 +19,7 @@ // All this does right now is send an SPDY request, and aggregate the // SPDY response. -class /*QUIC_EXPORT_PRIVATE*/ QuicSpdyClientStream : public QuicSpdyStream { +class QUIC_NO_EXPORT QuicSpdyClientStream : public QuicSpdyStream { public: QuicSpdyClientStream(QuicStreamId id, QuicSpdyClientSession* session,
diff --git a/quic/core/http/quic_spdy_server_stream_base.h b/quic/core/http/quic_spdy_server_stream_base.h index 9d79bca..b66b459 100644 --- a/quic/core/http/quic_spdy_server_stream_base.h +++ b/quic/core/http/quic_spdy_server_stream_base.h
@@ -9,7 +9,7 @@ namespace quic { -class /*QUIC_EXPORT_PRIVATE*/ QuicSpdyServerStreamBase : public QuicSpdyStream { +class QUIC_NO_EXPORT QuicSpdyServerStreamBase : public QuicSpdyStream { public: QuicSpdyServerStreamBase(QuicStreamId id, QuicSpdySession* session,
diff --git a/quic/core/packet_number_indexed_queue.h b/quic/core/packet_number_indexed_queue.h index 823d9b7..470a58c 100644 --- a/quic/core/packet_number_indexed_queue.h +++ b/quic/core/packet_number_indexed_queue.h
@@ -35,7 +35,7 @@ // Because of that, it is not a general-purpose container and should not be used // as one. template <typename T> -class /*QUIC_EXPORT_PRIVATE*/ PacketNumberIndexedQueue { +class QUIC_NO_EXPORT PacketNumberIndexedQueue { public: PacketNumberIndexedQueue() : number_of_present_entries_(0) {} @@ -86,7 +86,7 @@ private: // Wrapper around T used to mark whether the entry is actually in the map. - struct /*QUIC_EXPORT_PRIVATE*/ EntryWrapper : T { + struct QUIC_NO_EXPORT EntryWrapper : T { bool present; EntryWrapper() : present(false) {}
diff --git a/quic/core/quic_arena_scoped_ptr.h b/quic/core/quic_arena_scoped_ptr.h index 938ae71..92da3db 100644 --- a/quic/core/quic_arena_scoped_ptr.h +++ b/quic/core/quic_arena_scoped_ptr.h
@@ -20,7 +20,7 @@ namespace quic { template <typename T> -class /*QUIC_EXPORT_PRIVATE*/ QuicArenaScopedPtr { +class QUIC_NO_EXPORT QuicArenaScopedPtr { static_assert(QUIC_ALIGN_OF(T*) > 1, "QuicArenaScopedPtr can only store objects that are aligned to " "greater than 1 byte.");
diff --git a/quic/core/quic_dispatcher.h b/quic/core/quic_dispatcher.h index 4c52c5c..e1279fe 100644 --- a/quic/core/quic_dispatcher.h +++ b/quic/core/quic_dispatcher.h
@@ -34,7 +34,7 @@ class QuicConfig; class QuicCryptoServerConfig; -class /*QUIC_EXPORT_PRIVATE*/ QuicDispatcher +class QUIC_NO_EXPORT QuicDispatcher : public QuicTimeWaitListManager::Visitor, public ProcessPacketInterface, public QuicBufferedPacketStore::VisitorInterface {
diff --git a/quic/core/quic_interval.h b/quic/core/quic_interval.h index c2e9033..9e87ecd 100644 --- a/quic/core/quic_interval.h +++ b/quic/core/quic_interval.h
@@ -68,14 +68,14 @@ namespace quic { template <typename T> -class /*QUIC_EXPORT_PRIVATE*/ QuicInterval { +class QUIC_NO_EXPORT QuicInterval { private: // Type trait for deriving the return type for QuicInterval::Length. If // operator-() is not defined for T, then the return type is void. This makes // the signature for Length compile so that the class can be used for such T, // but code that calls Length would still generate a compilation error. template <typename U> - class /*QUIC_EXPORT_PRIVATE*/ DiffTypeOrVoid { + class QUIC_NO_EXPORT DiffTypeOrVoid { private: template <typename V> static auto f(const V* v) -> decltype(*v - *v);
diff --git a/quic/core/quic_interval_set.h b/quic/core/quic_interval_set.h index ea28367..0465a01 100644 --- a/quic/core/quic_interval_set.h +++ b/quic/core/quic_interval_set.h
@@ -65,12 +65,12 @@ namespace quic { template <typename T> -class /*QUIC_EXPORT_PRIVATE*/ QuicIntervalSet { +class QUIC_NO_EXPORT QuicIntervalSet { public: typedef QuicInterval<T> value_type; private: - struct /*QUIC_EXPORT_PRIVATE*/ IntervalLess { + struct QUIC_NO_EXPORT IntervalLess { bool operator()(const value_type& a, const value_type& b) const; }; typedef std::set<value_type, IntervalLess> Set; @@ -320,7 +320,7 @@ private: // Simple member-wise equality, since all intervals are non-empty. - struct /*QUIC_EXPORT_PRIVATE*/ NonemptyIntervalEq { + struct QUIC_NO_EXPORT NonemptyIntervalEq { bool operator()(const value_type& a, const value_type& b) const { return a.min() == b.min() && a.max() == b.max(); }
diff --git a/quic/core/quic_lru_cache.h b/quic/core/quic_lru_cache.h index a5a9e1a..2ec089c 100644 --- a/quic/core/quic_lru_cache.h +++ b/quic/core/quic_lru_cache.h
@@ -19,7 +19,7 @@ // Value* returned by Lookup() can be invalid if the entry is evicted by other // threads. template <class K, class V> -class /*QUIC_EXPORT_PRIVATE*/ QuicLRUCache { +class QUIC_NO_EXPORT QuicLRUCache { public: explicit QuicLRUCache(size_t capacity) : capacity_(capacity) {} QuicLRUCache(const QuicLRUCache&) = delete;
diff --git a/quic/core/quic_packet_writer_wrapper.h b/quic/core/quic_packet_writer_wrapper.h index dd437f1..0b331ae 100644 --- a/quic/core/quic_packet_writer_wrapper.h +++ b/quic/core/quic_packet_writer_wrapper.h
@@ -15,8 +15,7 @@ // Wraps a writer object to allow dynamically extending functionality. Use // cases: replace writer while dispatcher and connections hold on to the // wrapper; mix in monitoring; mix in mocks in unit tests. -class /*QUIC_EXPORT_PRIVATE*/ QuicPacketWriterWrapper - : public QuicPacketWriter { +class QUIC_NO_EXPORT QuicPacketWriterWrapper : public QuicPacketWriter { public: QuicPacketWriterWrapper(); QuicPacketWriterWrapper(const QuicPacketWriterWrapper&) = delete;
diff --git a/quic/core/quic_process_packet_interface.h b/quic/core/quic_process_packet_interface.h index 6bfc85d..3cd87ef 100644 --- a/quic/core/quic_process_packet_interface.h +++ b/quic/core/quic_process_packet_interface.h
@@ -11,7 +11,7 @@ namespace quic { // A class to process each incoming packet. -class /*QUIC_EXPORT_PRIVATE*/ ProcessPacketInterface { +class QUIC_NO_EXPORT ProcessPacketInterface { public: virtual ~ProcessPacketInterface() {} virtual void ProcessPacket(const QuicSocketAddress& self_address,
diff --git a/quic/core/quic_time_wait_list_manager.h b/quic/core/quic_time_wait_list_manager.h index 0221f99..5c75535 100644 --- a/quic/core/quic_time_wait_list_manager.h +++ b/quic/core/quic_time_wait_list_manager.h
@@ -35,7 +35,7 @@ // wait state. After the connection_id expires its time wait period, a new // connection/session will be created if a packet is received for this // connection_id. -class /*QUIC_EXPORT_PRIVATE*/ QuicTimeWaitListManager +class QUIC_NO_EXPORT QuicTimeWaitListManager : public QuicBlockedWriterInterface { public: // Specifies what the time wait list manager should do when processing packets @@ -50,7 +50,7 @@ DO_NOTHING, }; - class /*QUIC_EXPORT_PRIVATE*/ Visitor : public QuicSession::Visitor { + class QUIC_NO_EXPORT Visitor : public QuicSession::Visitor { public: // Called after the given connection is added to the time-wait list. virtual void OnConnectionAddedToTimeWaitList( @@ -160,7 +160,7 @@ QuicConnectionId connection_id) const; // Internal structure to store pending termination packets. - class /*QUIC_EXPORT_PRIVATE*/ QueuedPacket { + class QUIC_NO_EXPORT QueuedPacket { public: QueuedPacket(const QuicSocketAddress& self_address, const QuicSocketAddress& peer_address, @@ -230,7 +230,7 @@ // A map from a recently closed connection_id to the number of packets // received after the termination of the connection bound to the // connection_id. - struct /*QUIC_EXPORT_PRIVATE*/ ConnectionIdData { + struct QUIC_NO_EXPORT ConnectionIdData { ConnectionIdData(int num_packets, bool ietf_quic, QuicTime time_added,
diff --git a/quic/core/quic_trace_visitor.h b/quic/core/quic_trace_visitor.h index 4adc93c..86d7198 100644 --- a/quic/core/quic_trace_visitor.h +++ b/quic/core/quic_trace_visitor.h
@@ -14,8 +14,7 @@ // Records a QUIC trace protocol buffer for a QuicConnection. It's the // responsibility of the user of this visitor to process or store the resulting // trace, which can be accessed via trace(). -class /*QUIC_EXPORT_PRIVATE*/ QuicTraceVisitor - : public QuicConnectionDebugVisitor { +class QUIC_NO_EXPORT QuicTraceVisitor : public QuicConnectionDebugVisitor { public: explicit QuicTraceVisitor(const QuicConnection* connection);
diff --git a/quic/platform/api/quic_export.h b/quic/platform/api/quic_export.h index 8ffd676..90696a6 100644 --- a/quic/platform/api/quic_export.h +++ b/quic/platform/api/quic_export.h
@@ -7,4 +7,11 @@ #include "net/quic/platform/impl/quic_export_impl.h" +// quic_export_impl.h defines the following macros: +// - QUIC_EXPORT is not meant to be used. +// - QUIC_EXPORT_PRIVATE is meant for QUIC functionality that is built in +// Chromium as part of //net, and not fully contained in headers. +// - QUIC_NO_EXPORT is meant for QUIC functionality that is either fully defined +// in a header, or is built in Chromium as part of tests or tools. + #endif // QUICHE_QUIC_PLATFORM_API_QUIC_EXPORT_H_
diff --git a/quic/platform/api/quic_reference_counted.h b/quic/platform/api/quic_reference_counted.h index 9e5a1e0..18f6f37 100644 --- a/quic/platform/api/quic_reference_counted.h +++ b/quic/platform/api/quic_reference_counted.h
@@ -51,7 +51,7 @@ // QuicReferenceCountedPointer<T> r_ptr_b = std::move(r_ptr_a); template <class T> -class /*QUIC_EXPORT_PRIVATE*/ QuicReferenceCountedPointer { +class QUIC_NO_EXPORT QuicReferenceCountedPointer { public: QuicReferenceCountedPointer() = default;
diff --git a/quic/platform/api/quic_test_mem_slice_vector.h b/quic/platform/api/quic_test_mem_slice_vector.h index d06a8ac..734db63 100644 --- a/quic/platform/api/quic_test_mem_slice_vector.h +++ b/quic/platform/api/quic_test_mem_slice_vector.h
@@ -18,7 +18,7 @@ // Tests using QuicTestMemSliceVector need to make sure the actual data buffers // outlive QuicTestMemSliceVector, and QuicTestMemSliceVector outlive the // returned QuicMemSliceSpan. -class /*QUIC_EXPORT_PRIVATE*/ QuicTestMemSliceVector { +class QUIC_NO_EXPORT QuicTestMemSliceVector { public: explicit QuicTestMemSliceVector(std::vector<std::pair<char*, size_t>> buffers) : impl_(std::move(buffers)) {}