1e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// Use of this source code is governed by a BSD-style license that can be
3e9629bad30a9f478b336ab46b8e6e02f7f87af46Evan Chu// found in the LICENSE file.
4e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
5e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifndef CHROME_BROWSER_UI_COCOA_ABOUT_IPC_DIALOG_H_
6e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#define CHROME_BROWSER_UI_COCOA_ABOUT_IPC_DIALOG_H_
7e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
8e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "ipc/ipc_logging.h"
9e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#include "ipc/ipc_message_utils.h"
10e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
11e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#if defined(IPC_MESSAGE_LOG_ENABLED)
12e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
13e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#ifdef __OBJC__
14e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project@class AboutIPCController;
15e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#else
16e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectclass AboutIPCController;
17e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif
18e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
195c65c3a0f42e174e47fecd4e569606003217ff4eMartijn Coenen
20e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// On Windows, the AboutIPCDialog is a views::View.  On Mac we have a
21e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project// Cocoa dialog.  This class bridges from C++ to ObjC.
22e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Projectclass AboutIPCBridge : public IPC::Logging::Consumer {
23e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project public:
24e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project  AboutIPCBridge(AboutIPCController* controller) : controller_(controller) { }
25e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project  virtual ~AboutIPCBridge() { }
26e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
27e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project  // IPC::Logging::Consumer implementation.
28e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project  virtual void Log(const IPC::LogData& data) OVERRIDE;
29e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
30e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project private:
31e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project  AboutIPCController* controller_;  // weak; owns me
32e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project  DISALLOW_COPY_AND_ASSIGN(AboutIPCBridge);
33e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project};
34e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
35e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif  // IPC_MESSAGE_LOG_ENABLED
36e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project
37e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project#endif  // CHROME_BROWSER_UI_COCOA_ABOUT_IPC_DIALOG_H_
38e9df6ba5a8fcccf306a80b1670b423be8fe7746The Android Open Source Project