From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Zeno Albisser Date: Thu, 27 Jun 2013 15:58:32 +0200 Subject: Clang / libc++ does not support incomplete types in templates. See: http://clang.llvm.org/compatibility.html#undep_incomplete Therefore forward declarations must be removed in several places: - AudioBus::QueuedAudioBuffer - base::Callback - GURL - HttpAuthCache::Entry - ImageFamily::MapKey - MediaStreamDispatcher::Request - MediaStreamDispatcher::Stream - MediaStreamDispatcherHost::StreamRequest - MessagePortService::MessagePort - MockCertVerifier::Rule - PepperRendererInstanceData - RuleBasedHostResolverProc::Rule - WebURLError - WebURLLoaderMockFactory::ResponseInfo - WorkerDevToolsManager::InspectedWorker - WorkerDevToolsManager::TerminatedInspectedWorker --- base/callback_forward.h | 9 +----- .../browser/devtools/worker_devtools_manager.cc | 24 ---------------- content/browser/devtools/worker_devtools_manager.h | 26 ++++++++++++++++-- .../media/media_stream_dispatcher_host.cc | 11 -------- .../media/media_stream_dispatcher_host.h | 12 +++++++- .../browser/worker_host/message_port_service.cc | 22 --------------- content/browser/worker_host/message_port_service.h | 23 +++++++++++++++- content/common/gpu/gpu_messages.h | 4 ++- content/renderer/media/media_stream_dispatcher.cc | 31 --------------------- content/renderer/media/media_stream_dispatcher.h | 31 +++++++++++++++++++-- content/renderer/pepper/message_channel.cc | 12 -------- content/renderer/pepper/message_channel.h | 18 ++++++++---- gpu/config/dx_diag_node.cc | 4 +++ gpu/config/dx_diag_node.h | 4 +++ media/filters/ffmpeg_audio_decoder.cc | 6 ---- media/filters/ffmpeg_audio_decoder.h | 8 +++++- net/cert/mock_cert_verifier.cc | 19 ------------- net/cert/mock_cert_verifier.h | 20 +++++++++++++- net/dns/mock_host_resolver.cc | 31 --------------------- net/dns/mock_host_resolver.h | 32 +++++++++++++++++++++- 20 files changed, 168 insertions(+), 179 deletions(-) diff --git a/base/callback_forward.h b/base/callback_forward.h index 7983248..8538bb2 100644 --- a/base/callback_forward.h +++ b/base/callback_forward.h @@ -5,13 +5,6 @@ #ifndef BASE_CALLBACK_FORWARD_H_ #define BASE_CALLBACK_FORWARD_H_ -namespace base { - -template -class Callback; - -typedef Callback Closure; - -} // namespace base +#include "base/callback.h" #endif // BASE_CALLBACK_FORWARD_H diff --git a/content/browser/devtools/worker_devtools_manager.cc b/content/browser/devtools/worker_devtools_manager.cc index f08523b..983c55c 100644 --- a/content/browser/devtools/worker_devtools_manager.cc +++ b/content/browser/devtools/worker_devtools_manager.cc @@ -51,17 +51,6 @@ base::LazyInstance::Leaky g_orphan_map = LAZY_INSTANCE_INITIALIZER; } // namespace -struct WorkerDevToolsManager::TerminatedInspectedWorker { - TerminatedInspectedWorker(WorkerId id, const GURL& url, const string16& name) - : old_worker_id(id), - worker_url(url), - worker_name(name) {} - WorkerId old_worker_id; - GURL worker_url; - string16 worker_name; -}; - - class WorkerDevToolsManager::WorkerDevToolsAgentHost : public IPCDevToolsAgentHost { public: @@ -200,19 +189,6 @@ class WorkerDevToolsManager::DetachedClientHosts { } }; -struct WorkerDevToolsManager::InspectedWorker { - InspectedWorker(WorkerProcessHost* host, int route_id, const GURL& url, - const string16& name) - : host(host), - route_id(route_id), - worker_url(url), - worker_name(name) {} - WorkerProcessHost* const host; - int const route_id; - GURL worker_url; - string16 worker_name; -}; - // static WorkerDevToolsManager* WorkerDevToolsManager::GetInstance() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); diff --git a/content/browser/devtools/worker_devtools_manager.h b/content/browser/devtools/worker_devtools_manager.h index 8a9a708..e6d090c 100644 --- a/content/browser/devtools/worker_devtools_manager.h +++ b/content/browser/devtools/worker_devtools_manager.h @@ -54,7 +54,20 @@ class WorkerDevToolsManager { private: friend struct DefaultSingletonTraits; class DetachedClientHosts; - struct InspectedWorker; + + struct InspectedWorker { + InspectedWorker(WorkerProcessHost* host, int route_id, const GURL& url, + const string16& name) + : host(host), + route_id(route_id), + worker_url(url), + worker_name(name) {} + WorkerProcessHost* const host; + int const route_id; + GURL worker_url; + string16 worker_name; + }; + typedef std::list InspectedWorkersList; WorkerDevToolsManager(); @@ -84,7 +97,16 @@ class WorkerDevToolsManager { InspectedWorkersList inspected_workers_; - struct TerminatedInspectedWorker; + struct TerminatedInspectedWorker { + TerminatedInspectedWorker(WorkerId id, const GURL& url, const string16& name) + : old_worker_id(id), + worker_url(url), + worker_name(name) {} + WorkerId old_worker_id; + GURL worker_url; + string16 worker_name; + }; + typedef std::list TerminatedInspectedWorkers; // List of terminated workers for which there may be a devtools client on // the UI thread. Worker entry is added into this list when inspected worker diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc index ebc4d89..9135b71 100644 --- a/content/browser/renderer_host/media/media_stream_dispatcher_host.cc +++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.cc @@ -12,17 +12,6 @@ namespace content { -struct MediaStreamDispatcherHost::StreamRequest { - StreamRequest() : render_view_id(0), page_request_id(0) {} - StreamRequest(int render_view_id, int page_request_id) - : render_view_id(render_view_id), - page_request_id(page_request_id ) { - } - int render_view_id; - // Id of the request generated by MediaStreamDispatcher. - int page_request_id; -}; - MediaStreamDispatcherHost::MediaStreamDispatcherHost( int render_process_id, MediaStreamManager* media_stream_manager) diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host.h b/content/browser/renderer_host/media/media_stream_dispatcher_host.h index ec1dd15..cfc6913 100644 --- a/content/browser/renderer_host/media/media_stream_dispatcher_host.h +++ b/content/browser/renderer_host/media/media_stream_dispatcher_host.h @@ -72,7 +72,17 @@ class CONTENT_EXPORT MediaStreamDispatcherHost : public BrowserMessageFilter, int render_process_id_; MediaStreamManager* media_stream_manager_; - struct StreamRequest; + struct StreamRequest { + StreamRequest() : render_view_id(0), page_request_id(0) {} + StreamRequest(int render_view_id, int page_request_id) + : render_view_id(render_view_id), + page_request_id(page_request_id ) { + } + int render_view_id; + // Id of the request generated by MediaStreamDispatcher. + int page_request_id; + }; + typedef std::map StreamMap; // Streams generated for this host. StreamMap streams_; diff --git a/content/browser/worker_host/message_port_service.cc b/content/browser/worker_host/message_port_service.cc index 3bc8f5a..b413c1f 100644 --- a/content/browser/worker_host/message_port_service.cc +++ b/content/browser/worker_host/message_port_service.cc @@ -9,28 +9,6 @@ namespace content { -struct MessagePortService::MessagePort { - // |filter| and |route_id| are what we need to send messages to the port. - // |filter| is just a weak pointer since we get notified when its process has - // gone away and remove it. - WorkerMessageFilter* filter; - int route_id; - // A globally unique id for this message port. - int message_port_id; - // The globally unique id of the entangled message port. - int entangled_message_port_id; - // If true, all messages to this message port are queued and not delivered. - // This is needed so that when a message port is sent between processes all - // pending message get transferred. There are two possibilities for pending - // messages: either they are already received by the child process, or they're - // in-flight. This flag ensures that the latter type get flushed through the - // system. - // This flag should only be set to true in response to - // WorkerProcessHostMsg_QueueMessages. - bool queue_messages; - QueuedMessages queued_messages; -}; - MessagePortService* MessagePortService::GetInstance() { return Singleton::get(); } diff --git a/content/browser/worker_host/message_port_service.h b/content/browser/worker_host/message_port_service.h index b85e76b..30645c7 100644 --- a/content/browser/worker_host/message_port_service.h +++ b/content/browser/worker_host/message_port_service.h @@ -61,7 +61,28 @@ class MessagePortService { // verify that the message port id exists. void Erase(int message_port_id); - struct MessagePort; + struct MessagePort { + // |filter| and |route_id| are what we need to send messages to the port. + // |filter| is just a weak pointer since we get notified when its process has + // gone away and remove it. + WorkerMessageFilter* filter; + int route_id; + // A globally unique id for this message port. + int message_port_id; + // The globally unique id of the entangled message port. + int entangled_message_port_id; + // If true, all messages to this message port are queued and not delivered. + // This is needed so that when a message port is sent between processes all + // pending message get transferred. There are two possibilities for pending + // messages: either they are already received by the child process, or they're + // in-flight. This flag ensures that the latter type get flushed through the + // system. + // This flag should only be set to true in response to + // WorkerProcessHostMsg_QueueMessages. + bool queue_messages; + QueuedMessages queued_messages; + }; + typedef std::map MessagePorts; MessagePorts message_ports_; diff --git a/content/common/gpu/gpu_messages.h b/content/common/gpu/gpu_messages.h index b4e5be5..3952d79 100644 --- a/content/common/gpu/gpu_messages.h +++ b/content/common/gpu/gpu_messages.h @@ -116,10 +116,12 @@ IPC_STRUCT_BEGIN(GpuStreamTextureMsg_MatrixChanged_Params) IPC_STRUCT_END() #endif - IPC_STRUCT_TRAITS_BEGIN(gpu::DxDiagNode) +#if defined(OS_WIN) +IPC_STRUCT_TRAITS_BEGIN(gpu::DxDiagNode) IPC_STRUCT_TRAITS_MEMBER(values) IPC_STRUCT_TRAITS_MEMBER(children) IPC_STRUCT_TRAITS_END() +#endif IPC_STRUCT_TRAITS_BEGIN(gpu::GpuPerformanceStats) IPC_STRUCT_TRAITS_MEMBER(graphics) diff --git a/content/renderer/media/media_stream_dispatcher.cc b/content/renderer/media/media_stream_dispatcher.cc index cc241fa..57d65b6 100644 --- a/content/renderer/media/media_stream_dispatcher.cc +++ b/content/renderer/media/media_stream_dispatcher.cc @@ -14,37 +14,6 @@ namespace content { -// A request is identified by pair (request_id, handler), or ipc_request. -// There could be multiple clients making requests and each has its own -// request_id sequence. -// The ipc_request is garanteed to be unique when it's created in -// MediaStreamDispatcher. -struct MediaStreamDispatcher::Request { - Request(const base::WeakPtr& handler, - int request_id, - int ipc_request) - : handler(handler), - request_id(request_id), - ipc_request(ipc_request) { - } - bool IsThisRequest( - int request_id1, - const base::WeakPtr& handler1) { - return (request_id1 == request_id && handler1.get() == handler.get()); - } - base::WeakPtr handler; - int request_id; - int ipc_request; -}; - -struct MediaStreamDispatcher::Stream { - Stream() {} - ~Stream() {} - base::WeakPtr handler; - StreamDeviceInfoArray audio_array; - StreamDeviceInfoArray video_array; -}; - MediaStreamDispatcher::EnumerationRequest::EnumerationRequest( const base::WeakPtr& handler, int request_id) diff --git a/content/renderer/media/media_stream_dispatcher.h b/content/renderer/media/media_stream_dispatcher.h index aa8f345..af25963 100644 --- a/content/renderer/media/media_stream_dispatcher.h +++ b/content/renderer/media/media_stream_dispatcher.h @@ -98,11 +98,38 @@ class CONTENT_EXPORT MediaStreamDispatcher FRIEND_TEST_ALL_PREFIXES(MediaStreamDispatcherTest, TestFailure); FRIEND_TEST_ALL_PREFIXES(MediaStreamDispatcherTest, CancelGenerateStream); - struct Request; + // A request is identified by pair (request_id, handler), or ipc_request. + // There could be multiple clients making requests and each has its own + // request_id sequence. + // The ipc_request is garanteed to be unique when it's created in + // MediaStreamDispatcher. + struct Request { + Request(const base::WeakPtr& handler, + int request_id, + int ipc_request) + : handler(handler), + request_id(request_id), + ipc_request(ipc_request) { + } + bool IsThisRequest( + int request_id1, + const base::WeakPtr& handler1) { + return (request_id1 == request_id && handler1.get() == handler.get()); + } + base::WeakPtr handler; + int request_id; + int ipc_request; + }; // Private class for keeping track of opened devices and who have // opened it. - struct Stream; + struct Stream { + Stream() {} + ~Stream() {} + base::WeakPtr handler; + StreamDeviceInfoArray audio_array; + StreamDeviceInfoArray video_array; + }; // An enumeration request is identified by pair (request_id, handler). // It allows multiple clients to make requests and each client could have diff --git a/content/renderer/pepper/message_channel.cc b/content/renderer/pepper/message_channel.cc index f06b787..c41be2f 100644 --- a/content/renderer/pepper/message_channel.cc +++ b/content/renderer/pepper/message_channel.cc @@ -279,18 +279,6 @@ NPClass message_channel_class = { } // namespace // MessageChannel -------------------------------------------------------------- -struct MessageChannel::VarConversionResult { - VarConversionResult(const ppapi::ScopedPPVar& r, bool s) - : result(r), - success(s), - conversion_completed(true) {} - VarConversionResult() - : success(false), - conversion_completed(false) {} - ppapi::ScopedPPVar result; - bool success; - bool conversion_completed; -}; MessageChannel::MessageChannelNPObject::MessageChannelNPObject() { } diff --git a/content/renderer/pepper/message_channel.h b/content/renderer/pepper/message_channel.h index 9c8c28d..e4e1423 100644 --- a/content/renderer/pepper/message_channel.h +++ b/content/renderer/pepper/message_channel.h @@ -10,15 +10,12 @@ #include "base/memory/weak_ptr.h" #include "ppapi/shared_impl/resource.h" +#include "ppapi/shared_impl/scoped_pp_var.h" #include "third_party/WebKit/public/web/WebSerializedScriptValue.h" #include "third_party/npapi/bindings/npruntime.h" struct PP_Var; -namespace ppapi { -class ScopedPPVar; -} - namespace content { class PepperPluginInstanceImpl; @@ -86,7 +83,18 @@ class MessageChannel { private: // Struct for storing the result of a NPVariant being converted to a PP_Var. - struct VarConversionResult; + struct VarConversionResult { + VarConversionResult(const ppapi::ScopedPPVar& r, bool s) + : result(r), + success(s), + conversion_completed(true) {} + VarConversionResult() + : success(false), + conversion_completed(false) {} + ppapi::ScopedPPVar result; + bool success; + bool conversion_completed; + }; // This is called when an NPVariant is finished being converted. // |result_iteartor| is an iterator into |converted_var_queue_| where the diff --git a/gpu/config/dx_diag_node.cc b/gpu/config/dx_diag_node.cc index e0902ca..c1e84ae 100644 --- a/gpu/config/dx_diag_node.cc +++ b/gpu/config/dx_diag_node.cc @@ -4,6 +4,8 @@ #include "gpu/config/dx_diag_node.h" +#if defined(OS_WIN) + namespace gpu { DxDiagNode::DxDiagNode() {} @@ -11,3 +13,5 @@ DxDiagNode::DxDiagNode() {} DxDiagNode::~DxDiagNode() {} } // namespace gpu + +#endif // defined(OS_WIN) diff --git a/gpu/config/dx_diag_node.h b/gpu/config/dx_diag_node.h index 33d29b3..45ffa65 100644 --- a/gpu/config/dx_diag_node.h +++ b/gpu/config/dx_diag_node.h @@ -8,6 +8,8 @@ #ifndef GPU_CONFIG_DX_DIAG_NODE_H_ #define GPU_CONFIG_DX_DIAG_NODE_H_ +#if defined(OS_WIN) + #include #include @@ -24,4 +26,6 @@ struct GPU_EXPORT DxDiagNode { } // namespace gpu +#endif // defined(OS_WIN) + #endif // GPU_CONFIG_DX_DIAG_NODE_H_ diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc index f922e98..f41c893 100644 --- a/media/filters/ffmpeg_audio_decoder.cc +++ b/media/filters/ffmpeg_audio_decoder.cc @@ -22,12 +22,6 @@ namespace media { -// Helper structure for managing multiple decoded audio frames per packet. -struct QueuedAudioBuffer { - AudioDecoder::Status status; - scoped_refptr buffer; -}; - // Returns true if the decode result was end of stream. static inline bool IsEndOfStream(int result, int decoded_size, diff --git a/media/filters/ffmpeg_audio_decoder.h b/media/filters/ffmpeg_audio_decoder.h index 7ea8615..44c9830 100644 --- a/media/filters/ffmpeg_audio_decoder.h +++ b/media/filters/ffmpeg_audio_decoder.h @@ -25,7 +25,13 @@ namespace media { class AudioTimestampHelper; class DecoderBuffer; -struct QueuedAudioBuffer; + +// Helper structure for managing multiple decoded audio frames per packet. +struct QueuedAudioBuffer { + AudioDecoder::Status status; + scoped_refptr buffer; +}; + class MEDIA_EXPORT FFmpegAudioDecoder : public AudioDecoder { public: diff --git a/net/cert/mock_cert_verifier.cc b/net/cert/mock_cert_verifier.cc index ea5538e..a30e3d5 100644 --- a/net/cert/mock_cert_verifier.cc +++ b/net/cert/mock_cert_verifier.cc @@ -13,25 +13,6 @@ namespace net { -struct MockCertVerifier::Rule { - Rule(X509Certificate* cert, - const std::string& hostname, - const CertVerifyResult& result, - int rv) - : cert(cert), - hostname(hostname), - result(result), - rv(rv) { - DCHECK(cert); - DCHECK(result.verified_cert.get()); - } - - scoped_refptr cert; - std::string hostname; - CertVerifyResult result; - int rv; -}; - MockCertVerifier::MockCertVerifier() : default_result_(ERR_CERT_INVALID) {} MockCertVerifier::~MockCertVerifier() {} diff --git a/net/cert/mock_cert_verifier.h b/net/cert/mock_cert_verifier.h index 5af7b7e..704c66b 100644 --- a/net/cert/mock_cert_verifier.h +++ b/net/cert/mock_cert_verifier.h @@ -57,7 +57,25 @@ class MockCertVerifier : public CertVerifier { int rv); private: - struct Rule; + struct Rule { + Rule(X509Certificate* cert, + const std::string& hostname, + const CertVerifyResult& result, + int rv) + : cert(cert), + hostname(hostname), + result(result), + rv(rv) { + DCHECK(cert); + DCHECK(result.verified_cert.get()); + } + + scoped_refptr cert; + std::string hostname; + CertVerifyResult result; + int rv; + }; + typedef std::list RuleList; int default_result_; diff --git a/net/dns/mock_host_resolver.cc b/net/dns/mock_host_resolver.cc index ff5ffbc..25918ba 100644 --- a/net/dns/mock_host_resolver.cc +++ b/net/dns/mock_host_resolver.cc @@ -212,37 +212,6 @@ void MockHostResolverBase::ResolveNow(size_t id) { //----------------------------------------------------------------------------- -struct RuleBasedHostResolverProc::Rule { - enum ResolverType { - kResolverTypeFail, - kResolverTypeSystem, - kResolverTypeIPLiteral, - }; - - ResolverType resolver_type; - std::string host_pattern; - AddressFamily address_family; - HostResolverFlags host_resolver_flags; - std::string replacement; - std::string canonical_name; - int latency_ms; // In milliseconds. - - Rule(ResolverType resolver_type, - const std::string& host_pattern, - AddressFamily address_family, - HostResolverFlags host_resolver_flags, - const std::string& replacement, - const std::string& canonical_name, - int latency_ms) - : resolver_type(resolver_type), - host_pattern(host_pattern), - address_family(address_family), - host_resolver_flags(host_resolver_flags), - replacement(replacement), - canonical_name(canonical_name), - latency_ms(latency_ms) {} -}; - RuleBasedHostResolverProc::RuleBasedHostResolverProc(HostResolverProc* previous) : HostResolverProc(previous) { } diff --git a/net/dns/mock_host_resolver.h b/net/dns/mock_host_resolver.h index 3593fbd..f8a4240 100644 --- a/net/dns/mock_host_resolver.h +++ b/net/dns/mock_host_resolver.h @@ -209,7 +209,37 @@ class RuleBasedHostResolverProc : public HostResolverProc { int* os_error) OVERRIDE; private: - struct Rule; + struct Rule { + enum ResolverType { + kResolverTypeFail, + kResolverTypeSystem, + kResolverTypeIPLiteral, + }; + + ResolverType resolver_type; + std::string host_pattern; + AddressFamily address_family; + HostResolverFlags host_resolver_flags; + std::string replacement; + std::string canonical_name; + int latency_ms; // In milliseconds. + + Rule(ResolverType resolver_type, + const std::string& host_pattern, + AddressFamily address_family, + HostResolverFlags host_resolver_flags, + const std::string& replacement, + const std::string& canonical_name, + int latency_ms) + : resolver_type(resolver_type), + host_pattern(host_pattern), + address_family(address_family), + host_resolver_flags(host_resolver_flags), + replacement(replacement), + canonical_name(canonical_name), + latency_ms(latency_ms) {} + }; + typedef std::list RuleList; virtual ~RuleBasedHostResolverProc();