1/*
2 * Copyright (C) 2015 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "JSRemoteInspector.h"
28
29#include "JSGlobalObjectConsoleClient.h"
30#include <wtf/ProcessID.h>
31
32#if ENABLE(REMOTE_INSPECTOR)
33#include "RemoteInspector.h"
34#endif
35
36using namespace Inspector;
37
38static bool remoteInspectionEnabledByDefault = true;
39
40void JSRemoteInspectorDisableAutoStart(void)
41{
42#if ENABLE(REMOTE_INSPECTOR)
43 RemoteInspector::startDisabled();
44#endif
45}
46
47void JSRemoteInspectorStart(void)
48{
49#if ENABLE(REMOTE_INSPECTOR)
50 RemoteInspector::singleton();
51#endif
52}
53
54void JSRemoteInspectorSetParentProcessInformation(ProcessID pid, const uint8_t* auditData, size_t auditLength)
55{
56#if ENABLE(REMOTE_INSPECTOR) && PLATFORM(COCOA)
57 RetainPtr<CFDataRef> auditDataRef = adoptCF(CFDataCreate(kCFAllocatorDefault, auditData, auditLength));
58 RemoteInspector::singleton().setParentProcessInformation(pid, auditDataRef);
59#else
60 UNUSED_PARAM(pid);
61 UNUSED_PARAM(auditData);
62 UNUSED_PARAM(auditLength);
63#endif
64}
65
66void JSRemoteInspectorSetLogToSystemConsole(bool logToSystemConsole)
67{
68 JSGlobalObjectConsoleClient::setLogToSystemConsole(logToSystemConsole);
69}
70
71bool JSRemoteInspectorGetInspectionEnabledByDefault(void)
72{
73 return remoteInspectionEnabledByDefault;
74}
75
76void JSRemoteInspectorSetInspectionEnabledByDefault(bool enabledByDefault)
77{
78 remoteInspectionEnabledByDefault = enabledByDefault;
79}
80