| Differences between
and this patch
- a/Source/WebCore/ChangeLog +60 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2013-02-01  Andrey Kosyakov  <caseq@chromium.org>
2
3
        Web Inspector: plumb trace events to Timeline agent
4
        https://bugs.webkit.org/show_bug.cgi?id=105796
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        - plumb trace events to Timeline;
9
        - add TimelineTraceEventProcessor to process selected trace events;
10
        - emit timeline events from TimelineTraceEventProcessor.
11
12
        Note that actual event processing logic is a separate change.
13
14
        * CMakeLists.txt:
15
        * GNUmakefile.list.am:
16
        * Target.pri:
17
        * WebCore.gypi:
18
        * WebCore.vcproj/WebCore.vcproj:
19
        * WebCore.xcodeproj/project.pbxproj:
20
        * inspector/Inspector.json:
21
        * inspector/InspectorAllInOne.cpp:
22
        * inspector/InspectorClient.h:
23
        (InspectorClient):
24
        (WebCore::InspectorClient::setTraceEventCallback):
25
        * inspector/InspectorTimelineAgent.cpp:
26
        (WebCore::InspectorTimelineAgent::start):
27
        (WebCore::InspectorTimelineAgent::stop):
28
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
29
        (WebCore):
30
        (WebCore::InspectorTimelineAgent::page):
31
        * inspector/InspectorTimelineAgent.h:
32
        (WebCore):
33
        (InspectorTimelineAgent):
34
        * inspector/TimelineTraceEventProcessor.cpp: Added.
35
        (WebCore::TimelineTraceEventProcessor::TimelineTraceEventProcessor):
36
        (WebCore):
37
        (WebCore::TimelineTraceEventProcessor::~TimelineTraceEventProcessor):
38
        (WebCore::TimelineTraceEventProcessor::TraceEvent::parameter):
39
        (WebCore::TimelineTraceEventProcessor::processEventOnAnyThread):
40
        (WebCore::TimelineTraceEventProcessor::processEvent):
41
        (WebCore::TimelineTraceEventProcessor::sendTimelineRecord):
42
        (WebCore::TimelineTraceEventProcessor::processBackgroundEvents):
43
        * inspector/TimelineTraceEventProcessor.h: Added.
44
        (WebCore):
45
        (TimelineTraceEventProcessor):
46
        (TraceEvent):
47
        (WebCore::TimelineTraceEventProcessor::TraceEvent::TraceEvent):
48
        (WebCore::TimelineTraceEventProcessor::TraceEvent::timestamp):
49
        (WebCore::TimelineTraceEventProcessor::TraceEvent::phase):
50
        (WebCore::TimelineTraceEventProcessor::TraceEvent::name):
51
        (WebCore::TimelineTraceEventProcessor::TraceEvent::threadIdentifier):
52
        (WebCore::TimelineTraceEventProcessor::TraceEvent::argumentCount):
53
        (WebCore::TimelineTraceEventProcessor::TraceEvent::asBool):
54
        (WebCore::TimelineTraceEventProcessor::TraceEvent::asInt):
55
        (WebCore::TimelineTraceEventProcessor::TraceEvent::asUInt):
56
        (WebCore::TimelineTraceEventProcessor::TraceEvent::asDouble):
57
        (WebCore::TimelineTraceEventProcessor::TraceEvent::asString):
58
        (WebCore::TimelineTraceEventProcessor::EventTypeEntry::EventTypeEntry):
59
        (EventTypeEntry):
60
1
2013-02-01  Chris Fleizach  <cfleizach@apple.com>
61
2013-02-01  Chris Fleizach  <cfleizach@apple.com>
2
62
3
        AX: when aria-activedescendant is used with a ComboBox role, focus should not be changed
63
        AX: when aria-activedescendant is used with a ComboBox role, focus should not be changed
- a/Source/WebKit/chromium/ChangeLog +18 lines
Lines 1-3 a/Source/WebKit/chromium/ChangeLog_sec1
1
2013-02-01  Andrey Kosyakov  <caseq@chromium.org>
2
3
        Web Inspector: plumb trace events to Timeline agent
4
        https://bugs.webkit.org/show_bug.cgi?id=105796
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Plumb trace events to Inspector.
9
10
        * public/WebDevToolsAgentClient.h:
11
        (WebDevToolsAgentClient):
12
        (WebKit::WebDevToolsAgentClient::setTraceEventCallback):
13
        * src/InspectorClientImpl.cpp:
14
        (WebKit::InspectorClientImpl::setTraceEventCallback):
15
        (WebKit):
16
        * src/InspectorClientImpl.h:
17
        (InspectorClientImpl):
18
1
2013-02-01  Ken Kania  <kkania@chromium.org>
19
2013-02-01  Ken Kania  <kkania@chromium.org>
2
20
3
        Web Inspector: Add support for handling modal dialogs
21
        Web Inspector: Add support for handling modal dialogs
- a/Source/WebCore/CMakeLists.txt +1 lines
Lines 1653-1658 set(WebCore_SOURCES a/Source/WebCore/CMakeLists.txt_sec1
1653
    inspector/ScriptCallFrame.cpp
1653
    inspector/ScriptCallFrame.cpp
1654
    inspector/ScriptCallStack.cpp
1654
    inspector/ScriptCallStack.cpp
1655
    inspector/TimelineRecordFactory.cpp
1655
    inspector/TimelineRecordFactory.cpp
1656
    inspector/TimelineTraceEventProcessor.cpp
1656
    inspector/WorkerConsoleAgent.cpp
1657
    inspector/WorkerConsoleAgent.cpp
1657
    inspector/WorkerDebuggerAgent.cpp
1658
    inspector/WorkerDebuggerAgent.cpp
1658
    inspector/WorkerInspectorController.cpp
1659
    inspector/WorkerInspectorController.cpp
- a/Source/WebCore/GNUmakefile.list.am +2 lines
Lines 3865-3870 webcore_sources += \ a/Source/WebCore/GNUmakefile.list.am_sec1
3865
	Source/WebCore/inspector/ScriptGCEventListener.h \
3865
	Source/WebCore/inspector/ScriptGCEventListener.h \
3866
	Source/WebCore/inspector/TimelineRecordFactory.cpp \
3866
	Source/WebCore/inspector/TimelineRecordFactory.cpp \
3867
	Source/WebCore/inspector/TimelineRecordFactory.h \
3867
	Source/WebCore/inspector/TimelineRecordFactory.h \
3868
	Source/WebCore/inspector/TimelineTraceEventProcessor.cpp \
3869
	Source/WebCore/inspector/TimelineTraceEventProcessor.h \
3868
	Source/WebCore/inspector/WorkerConsoleAgent.cpp \
3870
	Source/WebCore/inspector/WorkerConsoleAgent.cpp \
3869
	Source/WebCore/inspector/WorkerConsoleAgent.h \
3871
	Source/WebCore/inspector/WorkerConsoleAgent.h \
3870
	Source/WebCore/inspector/WorkerDebuggerAgent.cpp \
3872
	Source/WebCore/inspector/WorkerDebuggerAgent.cpp \
- a/Source/WebCore/Target.pri +1 lines
Lines 811-816 SOURCES += \ a/Source/WebCore/Target.pri_sec1
811
    inspector/ScriptCallFrame.cpp \
811
    inspector/ScriptCallFrame.cpp \
812
    inspector/ScriptCallStack.cpp \
812
    inspector/ScriptCallStack.cpp \
813
    inspector/TimelineRecordFactory.cpp \
813
    inspector/TimelineRecordFactory.cpp \
814
    inspector/TimelineTraceEventProcessor.cpp \
814
    inspector/WorkerConsoleAgent.cpp \
815
    inspector/WorkerConsoleAgent.cpp \
815
    inspector/WorkerDebuggerAgent.cpp \
816
    inspector/WorkerDebuggerAgent.cpp \
816
    inspector/WorkerInspectorController.cpp \
817
    inspector/WorkerInspectorController.cpp \
- a/Source/WebCore/WebCore.gypi +2 lines
Lines 1906-1911 a/Source/WebCore/WebCore.gypi_sec1
1906
            'inspector/ScriptGCEventListener.h',
1906
            'inspector/ScriptGCEventListener.h',
1907
            'inspector/TimelineRecordFactory.cpp',
1907
            'inspector/TimelineRecordFactory.cpp',
1908
            'inspector/TimelineRecordFactory.h',
1908
            'inspector/TimelineRecordFactory.h',
1909
            'inspector/TimelineTraceEventProcessor.cpp',
1910
            'inspector/TimelineTraceEventProcessor.h',
1909
            'inspector/WorkerConsoleAgent.cpp',
1911
            'inspector/WorkerConsoleAgent.cpp',
1910
            'inspector/WorkerConsoleAgent.h',
1912
            'inspector/WorkerConsoleAgent.h',
1911
            'inspector/WorkerDebuggerAgent.cpp',
1913
            'inspector/WorkerDebuggerAgent.cpp',
- a/Source/WebCore/WebCore.vcproj/WebCore.vcproj +24 lines
Lines 76649-76654 a/Source/WebCore/WebCore.vcproj/WebCore.vcproj_sec1
76649
				RelativePath="..\inspector\TimelineRecordFactory.h"
76649
				RelativePath="..\inspector\TimelineRecordFactory.h"
76650
				>
76650
				>
76651
			</File>
76651
			</File>
76652
                        <File
76653
                                RelativePath="..\inspector\TimelineTraceEventProcessor.cpp"
76654
                                >
76655
                                <FileConfiguration
76656
                                        Name="Release|Win32"
76657
                                        ExcludedFromBuild="true"
76658
                                        >
76659
                                        <Tool
76660
                                                Name="VCCLCompilerTool"
76661
                                        />
76662
                                </FileConfiguration>
76663
                                <FileConfiguration
76664
                                        Name="Production|Win32"
76665
                                        ExcludedFromBuild="true"
76666
                                        >
76667
                                        <Tool
76668
                                                Name="VCCLCompilerTool"
76669
                                        />
76670
                                </FileConfiguration>
76671
                        </File>
76672
                        <File
76673
                                RelativePath="..\inspector\TimelineTraceEventProcessor.h"
76674
                                >
76675
                        </File>
76652
			<File
76676
			<File
76653
				RelativePath="..\inspector\WorkerConsoleAgent.cpp"
76677
				RelativePath="..\inspector\WorkerConsoleAgent.cpp"
76654
				>
76678
				>
- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +8 lines
Lines 1275-1280 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec1
1275
		46F9D5DF0B0D60170028EE36 /* progressCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 46F9D5DC0B0D60170028EE36 /* progressCursor.png */; };
1275
		46F9D5DF0B0D60170028EE36 /* progressCursor.png in Resources */ = {isa = PBXBuildFile; fileRef = 46F9D5DC0B0D60170028EE36 /* progressCursor.png */; };
1276
		490707E61219C04300D90E51 /* ANGLEWebKitBridge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */; };
1276
		490707E61219C04300D90E51 /* ANGLEWebKitBridge.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */; };
1277
		490707E71219C04300D90E51 /* ANGLEWebKitBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */; };
1277
		490707E71219C04300D90E51 /* ANGLEWebKitBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */; };
1278
		49140256168E02E8002D6C6A /* TimelineTraceEventProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49140254168E02B4002D6C6A /* TimelineTraceEventProcessor.cpp */; };
1279
		49140257168E02EC002D6C6A /* TimelineTraceEventProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 49140255168E02B4002D6C6A /* TimelineTraceEventProcessor.h */; };
1278
		49182B5215DCE6F000548418 /* PlatformInstrumentation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49182B5015DCE6F000548418 /* PlatformInstrumentation.cpp */; };
1280
		49182B5215DCE6F000548418 /* PlatformInstrumentation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 49182B5015DCE6F000548418 /* PlatformInstrumentation.cpp */; };
1279
		49182B5315DCE6F000548418 /* PlatformInstrumentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 49182B5115DCE6F000548418 /* PlatformInstrumentation.h */; };
1281
		49182B5315DCE6F000548418 /* PlatformInstrumentation.h in Headers */ = {isa = PBXBuildFile; fileRef = 49182B5115DCE6F000548418 /* PlatformInstrumentation.h */; };
1280
		492863991253B8FC00F792D6 /* ResourceLoadInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 492863981253B8FC00F792D6 /* ResourceLoadInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
1282
		492863991253B8FC00F792D6 /* ResourceLoadInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 492863981253B8FC00F792D6 /* ResourceLoadInfo.h */; settings = {ATTRIBUTES = (Private, ); }; };
Lines 8618-8623 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec2
8618
		46F9D5DC0B0D60170028EE36 /* progressCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progressCursor.png; sourceTree = "<group>"; };
8620
		46F9D5DC0B0D60170028EE36 /* progressCursor.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progressCursor.png; sourceTree = "<group>"; };
8619
		490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ANGLEWebKitBridge.cpp; sourceTree = "<group>"; };
8621
		490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ANGLEWebKitBridge.cpp; sourceTree = "<group>"; };
8620
		490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ANGLEWebKitBridge.h; sourceTree = "<group>"; };
8622
		490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ANGLEWebKitBridge.h; sourceTree = "<group>"; };
8623
		49140254168E02B4002D6C6A /* TimelineTraceEventProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TimelineTraceEventProcessor.cpp; sourceTree = "<group>"; };
8624
		49140255168E02B4002D6C6A /* TimelineTraceEventProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimelineTraceEventProcessor.h; sourceTree = "<group>"; };
8621
		49182B5015DCE6F000548418 /* PlatformInstrumentation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformInstrumentation.cpp; sourceTree = "<group>"; };
8625
		49182B5015DCE6F000548418 /* PlatformInstrumentation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformInstrumentation.cpp; sourceTree = "<group>"; };
8622
		49182B5115DCE6F000548418 /* PlatformInstrumentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformInstrumentation.h; sourceTree = "<group>"; };
8626
		49182B5115DCE6F000548418 /* PlatformInstrumentation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformInstrumentation.h; sourceTree = "<group>"; };
8623
		492863981253B8FC00F792D6 /* ResourceLoadInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadInfo.h; sourceTree = "<group>"; };
8627
		492863981253B8FC00F792D6 /* ResourceLoadInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResourceLoadInfo.h; sourceTree = "<group>"; };
Lines 15184-15189 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec3
15184
				9FA37EF01172FD4100C4CD55 /* ScriptProfileNode.idl */,
15188
				9FA37EF01172FD4100C4CD55 /* ScriptProfileNode.idl */,
15185
				7553CFE7108F473F00EA281E /* TimelineRecordFactory.cpp */,
15189
				7553CFE7108F473F00EA281E /* TimelineRecordFactory.cpp */,
15186
				7553CFE6108F473F00EA281E /* TimelineRecordFactory.h */,
15190
				7553CFE6108F473F00EA281E /* TimelineRecordFactory.h */,
15191
				49140254168E02B4002D6C6A /* TimelineTraceEventProcessor.cpp */,
15192
				49140255168E02B4002D6C6A /* TimelineTraceEventProcessor.h */,
15187
				F382088E147D35F90010BC06 /* WorkerConsoleAgent.cpp */,
15193
				F382088E147D35F90010BC06 /* WorkerConsoleAgent.cpp */,
15188
				F382088F147D35F90010BC06 /* WorkerConsoleAgent.h */,
15194
				F382088F147D35F90010BC06 /* WorkerConsoleAgent.h */,
15189
				F34742DE1343631F00531BC2 /* WorkerDebuggerAgent.cpp */,
15195
				F34742DE1343631F00531BC2 /* WorkerDebuggerAgent.cpp */,
Lines 26325-26330 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec4
26325
				2E07753416B1BD4C004D9936 /* MicroDataAttributeTokenList.h in Headers */,
26331
				2E07753416B1BD4C004D9936 /* MicroDataAttributeTokenList.h in Headers */,
26326
				2919A1E916B3376600787213 /* ContentFilter.h in Headers */,
26332
				2919A1E916B3376600787213 /* ContentFilter.h in Headers */,
26327
				97DC69ED16B9F52C008CFD6F /* BackgroundHTMLInputStream.h in Headers */,
26333
				97DC69ED16B9F52C008CFD6F /* BackgroundHTMLInputStream.h in Headers */,
26334
				49140257168E02EC002D6C6A /* TimelineTraceEventProcessor.h in Headers */,
26328
			);
26335
			);
26329
			runOnlyForDeploymentPostprocessing = 0;
26336
			runOnlyForDeploymentPostprocessing = 0;
26330
		};
26337
		};
Lines 29481-29486 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec5
29481
				2E07753116B1BD13004D9936 /* MicroDataAttributeTokenList.cpp in Sources */,
29488
				2E07753116B1BD13004D9936 /* MicroDataAttributeTokenList.cpp in Sources */,
29482
				2919A1EB16B3378900787213 /* ContentFilterMac.mm in Sources */,
29489
				2919A1EB16B3378900787213 /* ContentFilterMac.mm in Sources */,
29483
				97DC69EC16B9F529008CFD6F /* BackgroundHTMLInputStream.cpp in Sources */,
29490
				97DC69EC16B9F529008CFD6F /* BackgroundHTMLInputStream.cpp in Sources */,
29491
				49140256168E02E8002D6C6A /* TimelineTraceEventProcessor.cpp in Sources */,
29484
			);
29492
			);
29485
			runOnlyForDeploymentPostprocessing = 0;
29493
			runOnlyForDeploymentPostprocessing = 0;
29486
		};
29494
		};
- a/Source/WebCore/inspector/InspectorAllInOne.cpp +1 lines
Lines 83-88 a/Source/WebCore/inspector/InspectorAllInOne.cpp_sec1
83
#include "ScriptCallFrame.cpp"
83
#include "ScriptCallFrame.cpp"
84
#include "ScriptCallStack.cpp"
84
#include "ScriptCallStack.cpp"
85
#include "TimelineRecordFactory.cpp"
85
#include "TimelineRecordFactory.cpp"
86
#include "TimelineTraceEventProcessor.cpp"
86
#include "WorkerConsoleAgent.cpp"
87
#include "WorkerConsoleAgent.cpp"
87
#include "WorkerDebuggerAgent.cpp"
88
#include "WorkerDebuggerAgent.cpp"
88
#include "WorkerInspectorController.cpp"
89
#include "WorkerInspectorController.cpp"
- a/Source/WebCore/inspector/InspectorClient.h +5 lines
Lines 59-64 public: a/Source/WebCore/inspector/InspectorClient.h_sec1
59
    virtual void clearBrowserCookies() { }
59
    virtual void clearBrowserCookies() { }
60
    virtual bool canMonitorMainThread() { return false; }
60
    virtual bool canMonitorMainThread() { return false; }
61
61
62
    typedef void (*TraceEventCallback)(char phase, const unsigned char*, const char* name, unsigned long long id,
63
        int numArgs, const char* const* argNames, const unsigned char* argTypes, const unsigned long long* argValues,
64
        unsigned char flags);
65
    virtual void setTraceEventCallback(TraceEventCallback) { }
66
62
    virtual bool canOverrideDeviceMetrics() { return false; }
67
    virtual bool canOverrideDeviceMetrics() { return false; }
63
68
64
    virtual void overrideDeviceMetrics(int /*width*/, int /*height*/, float /*fontScaleFactor*/, bool /*fitWindow*/)
69
    virtual void overrideDeviceMetrics(int /*width*/, int /*height*/, float /*fontScaleFactor*/, bool /*fitWindow*/)
- a/Source/WebCore/inspector/InspectorTimelineAgent.cpp -1 / +12 lines
Lines 1-5 a/Source/WebCore/inspector/InspectorTimelineAgent.cpp_sec1
1
/*
1
/*
2
* Copyright (C) 2009 Google Inc. All rights reserved.
2
* Copyright (C) 2013 Google Inc. All rights reserved.
3
*
3
*
4
* Redistribution and use in source and binary forms, with or without
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are
5
* modification, are permitted provided that the following conditions are
Lines 51-56 a/Source/WebCore/inspector/InspectorTimelineAgent.cpp_sec2
51
#include "ResourceRequest.h"
51
#include "ResourceRequest.h"
52
#include "ResourceResponse.h"
52
#include "ResourceResponse.h"
53
#include "TimelineRecordFactory.h"
53
#include "TimelineRecordFactory.h"
54
#include "TimelineTraceEventProcessor.h"
54
55
55
#include <wtf/CurrentTime.h>
56
#include <wtf/CurrentTime.h>
56
57
Lines 171-176 void InspectorTimelineAgent::start(ErrorString*, const int* maxCallStackDepth) a/Source/WebCore/inspector/InspectorTimelineAgent.cpp_sec3
171
    m_instrumentingAgents->setInspectorTimelineAgent(this);
172
    m_instrumentingAgents->setInspectorTimelineAgent(this);
172
    ScriptGCEvent::addEventListener(this);
173
    ScriptGCEvent::addEventListener(this);
173
    m_state->setBoolean(TimelineAgentState::timelineAgentEnabled, true);
174
    m_state->setBoolean(TimelineAgentState::timelineAgentEnabled, true);
175
    if (m_client && m_pageAgent)
176
        m_traceEventProcessor = adoptRef(new TimelineTraceEventProcessor(m_weakFactory.createWeakPtr(), m_client));
174
}
177
}
175
178
176
void InspectorTimelineAgent::stop(ErrorString*)
179
void InspectorTimelineAgent::stop(ErrorString*)
Lines 178-183 void InspectorTimelineAgent::stop(ErrorString*) a/Source/WebCore/inspector/InspectorTimelineAgent.cpp_sec4
178
    if (!m_state->getBoolean(TimelineAgentState::timelineAgentEnabled))
181
    if (!m_state->getBoolean(TimelineAgentState::timelineAgentEnabled))
179
        return;
182
        return;
180
183
184
    m_traceEventProcessor.clear();
185
    m_weakFactory.revokeAll();
181
    m_instrumentingAgents->setInspectorTimelineAgent(0);
186
    m_instrumentingAgents->setInspectorTimelineAgent(0);
182
    ScriptGCEvent::removeEventListener(this);
187
    ScriptGCEvent::removeEventListener(this);
183
188
Lines 564-569 InspectorTimelineAgent::InspectorTimelineAgent(InstrumentingAgents* instrumentin a/Source/WebCore/inspector/InspectorTimelineAgent.cpp_sec5
564
    , m_platformInstrumentationClientInstalledAtStackDepth(0)
569
    , m_platformInstrumentationClientInstalledAtStackDepth(0)
565
    , m_inspectorType(type)
570
    , m_inspectorType(type)
566
    , m_client(client)
571
    , m_client(client)
572
    , m_weakFactory(this)
567
{
573
{
568
}
574
}
569
575
Lines 624-629 double InspectorTimelineAgent::timestampFromMicroseconds(double microseconds) a/Source/WebCore/inspector/InspectorTimelineAgent.cpp_sec6
624
    return (microseconds + m_timestampOffset) * 1000.0;
630
    return (microseconds + m_timestampOffset) * 1000.0;
625
}
631
}
626
632
633
Page* InspectorTimelineAgent::page()
634
{
635
    return m_pageAgent ? m_pageAgent->page() : 0;
636
}
637
627
} // namespace WebCore
638
} // namespace WebCore
628
639
629
#endif // ENABLE(INSPECTOR)
640
#endif // ENABLE(INSPECTOR)
- a/Source/WebCore/inspector/InspectorTimelineAgent.h +8 lines
Lines 42-47 a/Source/WebCore/inspector/InspectorTimelineAgent.h_sec1
42
#include "ScriptGCEventListener.h"
42
#include "ScriptGCEventListener.h"
43
#include <wtf/PassOwnPtr.h>
43
#include <wtf/PassOwnPtr.h>
44
#include <wtf/Vector.h>
44
#include <wtf/Vector.h>
45
#include <wtf/WeakPtr.h>
45
46
46
namespace WebCore {
47
namespace WebCore {
47
class Event;
48
class Event;
Lines 52-60 class InspectorPageAgent; a/Source/WebCore/inspector/InspectorTimelineAgent.h_sec2
52
class InspectorState;
53
class InspectorState;
53
class InstrumentingAgents;
54
class InstrumentingAgents;
54
class IntRect;
55
class IntRect;
56
class Page;
55
class RenderObject;
57
class RenderObject;
56
class ResourceRequest;
58
class ResourceRequest;
57
class ResourceResponse;
59
class ResourceResponse;
60
class TimelineTraceEventProcessor;
58
61
59
typedef String ErrorString;
62
typedef String ErrorString;
60
63
Lines 166-171 public: a/Source/WebCore/inspector/InspectorTimelineAgent.h_sec3
166
    virtual void didResizeImage() OVERRIDE;
169
    virtual void didResizeImage() OVERRIDE;
167
170
168
private:
171
private:
172
    friend class TimelineTraceEventProcessor;
173
169
    struct TimelineRecordEntry {
174
    struct TimelineRecordEntry {
170
        TimelineRecordEntry(PassRefPtr<InspectorObject> record, PassRefPtr<InspectorObject> data, PassRefPtr<InspectorArray> children, const String& type, const String& frameId, size_t usedHeapSizeAtStart)
175
        TimelineRecordEntry(PassRefPtr<InspectorObject> record, PassRefPtr<InspectorObject> data, PassRefPtr<InspectorArray> children, const String& type, const String& frameId, size_t usedHeapSizeAtStart)
171
            : record(record), data(data), children(children), type(type), frameId(frameId), usedHeapSizeAtStart(usedHeapSizeAtStart)
176
            : record(record), data(data), children(children), type(type), frameId(frameId), usedHeapSizeAtStart(usedHeapSizeAtStart)
Lines 195-200 private: a/Source/WebCore/inspector/InspectorTimelineAgent.h_sec4
195
200
196
    double timestamp();
201
    double timestamp();
197
    double timestampFromMicroseconds(double microseconds);
202
    double timestampFromMicroseconds(double microseconds);
203
    Page* page();
198
204
199
    InspectorPageAgent* m_pageAgent;
205
    InspectorPageAgent* m_pageAgent;
200
206
Lines 220-225 private: a/Source/WebCore/inspector/InspectorTimelineAgent.h_sec5
220
    RefPtr<InspectorObject> m_pendingFrameRecord;
226
    RefPtr<InspectorObject> m_pendingFrameRecord;
221
    InspectorType m_inspectorType;
227
    InspectorType m_inspectorType;
222
    InspectorClient* m_client;
228
    InspectorClient* m_client;
229
    WeakPtrFactory<InspectorTimelineAgent> m_weakFactory;
230
    RefPtr<TimelineTraceEventProcessor> m_traceEventProcessor;
223
};
231
};
224
232
225
} // namespace WebCore
233
} // namespace WebCore
- a/Source/WebCore/inspector/TimelineTraceEventProcessor.cpp +204 lines
Line 0 a/Source/WebCore/inspector/TimelineTraceEventProcessor.cpp_sec1
1
/*
2
* Copyright (C) 2012 Google 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 are
6
* met:
7
*
8
*     * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
*     * Redistributions in binary form must reproduce the above
11
* copyright notice, this list of conditions and the following disclaimer
12
* in the documentation and/or other materials provided with the
13
* distribution.
14
*     * Neither the name of Google Inc. nor the names of its
15
* contributors may be used to endorse or promote products derived from
16
* this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
*/
30
31
#include "config.h"
32
33
#if ENABLE(INSPECTOR)
34
35
#include "TimelineTraceEventProcessor.h"
36
37
#include "InspectorClient.h"
38
#include "InspectorInstrumentation.h"
39
#include "InspectorTimelineAgent.h"
40
#include "TimelineRecordFactory.h"
41
42
#include <wtf/CurrentTime.h>
43
#include <wtf/MainThread.h>
44
#include <wtf/ThreadSpecific.h>
45
#include <wtf/Vector.h>
46
47
namespace WebCore {
48
49
namespace {
50
51
class TraceEventDispatcher {
52
    WTF_MAKE_NONCOPYABLE(TraceEventDispatcher);
53
public:
54
    static TraceEventDispatcher* instance()
55
    {
56
        DEFINE_STATIC_LOCAL(TraceEventDispatcher, instance, ());
57
        return &instance;
58
    }
59
60
    void addProcessor(TimelineTraceEventProcessor* processor, InspectorClient* client)
61
    {
62
        MutexLocker locker(m_mutex);
63
64
        m_processors.append(processor);
65
        if (m_processors.size() == 1)
66
            client->setTraceEventCallback(dispatchEventOnAnyThread);
67
    }
68
69
    void removeProcessor(TimelineTraceEventProcessor* processor, InspectorClient* client)
70
    {
71
        MutexLocker locker(m_mutex);
72
73
        size_t index = m_processors.find(processor);
74
        if (index == notFound) {
75
            ASSERT_NOT_REACHED();
76
            return;
77
        }
78
        m_processors[index] = m_processors.last();
79
        m_processors.removeLast();
80
        if (m_processors.isEmpty())
81
            client->setTraceEventCallback(0);
82
    }
83
84
private:
85
    TraceEventDispatcher() { }
86
87
    static void dispatchEventOnAnyThread(char phase, const unsigned char*, const char* name, unsigned long long id,
88
        int numArgs, const char* const* argNames, const unsigned char* argTypes, const unsigned long long* argValues,
89
        unsigned char flags)
90
    {
91
        TraceEventDispatcher* self = instance();
92
        Vector<RefPtr<TimelineTraceEventProcessor> > processors;
93
        {
94
            MutexLocker locker(self->m_mutex);
95
            processors = self->m_processors;
96
        }
97
        for (int i = 0, size = processors.size(); i < size; ++i) {
98
            processors[i]->processEventOnAnyThread(static_cast<TimelineTraceEventProcessor::TraceEventPhase>(phase),
99
                name, id, numArgs, argNames, argTypes, argValues, flags);
100
        }
101
    }
102
103
    Mutex m_mutex;
104
    Vector<RefPtr<TimelineTraceEventProcessor> > m_processors;
105
};
106
107
} // namespce
108
TimelineTraceEventProcessor::TimelineTraceEventProcessor(WeakPtr<InspectorTimelineAgent> timelineAgent, InspectorClient *client)
109
    : m_timelineAgent(timelineAgent)
110
    , m_inspectorClient(client)
111
    , m_pageId(reinterpret_cast<unsigned long long>(m_timelineAgent.get()->page()))
112
{
113
    TraceEventDispatcher::instance()->addProcessor(this, m_inspectorClient);
114
}
115
116
TimelineTraceEventProcessor::~TimelineTraceEventProcessor()
117
{
118
    TraceEventDispatcher::instance()->removeProcessor(this, m_inspectorClient);
119
}
120
121
const TimelineTraceEventProcessor::TraceValueUnion& TimelineTraceEventProcessor::TraceEvent::parameter(const char* name, TraceValueTypes expectedType) const
122
{
123
    static TraceValueUnion missingValue;
124
125
    for (int i = 0; i < m_argumentCount; ++i) {
126
        if (!strcmp(name, m_argumentNames[i])) {
127
            if (m_argumentTypes[i] != expectedType) {
128
                ASSERT_NOT_REACHED();
129
                return missingValue;
130
            }
131
            return *reinterpret_cast<const TraceValueUnion*>(m_argumentValues + i);
132
        }
133
    }
134
    ASSERT_NOT_REACHED();
135
    return missingValue;
136
}
137
138
void TimelineTraceEventProcessor::processEventOnAnyThread(TraceEventPhase phase, const char* name, unsigned long long,
139
    int numArgs, const char* const* argNames, const unsigned char* argTypes, const unsigned long long* argValues,
140
    unsigned char)
141
{
142
    HashMap<String, EventTypeEntry>::iterator it = m_handlersByType.find(name);
143
    if (it == m_handlersByType.end())
144
        return;
145
146
    TraceEvent event(WTF::monotonicallyIncreasingTime(), phase, name, currentThread(), numArgs, argNames, argTypes, argValues);
147
148
    if (!isMainThread()) {
149
        MutexLocker locker(m_backgroundEventsMutex);
150
        m_backgroundEvents.append(event);
151
        return;
152
    }
153
154
    processEvent(it->value, event);
155
}
156
157
void TimelineTraceEventProcessor::processEvent(const EventTypeEntry& eventTypeEntry, const TraceEvent& event)
158
{
159
    TraceEventHandler handler = 0;
160
    switch (event.phase()) {
161
    case TracePhaseBegin:
162
        handler = eventTypeEntry.m_begin;
163
        break;
164
    case TracePhaseEnd:
165
        handler = eventTypeEntry.m_end;
166
        break;
167
    case TracePhaseInstant:
168
        handler = eventTypeEntry.m_instant;
169
        break;
170
    default:
171
        ASSERT_NOT_REACHED();
172
    }
173
    if (!handler) {
174
        ASSERT_NOT_REACHED();
175
        return;
176
    }
177
    (this->*handler)(event);
178
}
179
180
void TimelineTraceEventProcessor::sendTimelineRecord(PassRefPtr<InspectorObject> data, const String& recordType, double startTime, double endTime, const String& thread)
181
{
182
    InspectorTimelineAgent* timelineAgent = m_timelineAgent.get();
183
    if (!timelineAgent)
184
        return;
185
    timelineAgent->appendBackgroundThreadRecord(data, recordType, startTime, endTime, thread);
186
}
187
188
void TimelineTraceEventProcessor::processBackgroundEvents()
189
{
190
    Vector<TraceEvent> events;
191
    {
192
        MutexLocker locker(m_backgroundEventsMutex);
193
        events.reserveCapacity(m_backgroundEvents.capacity());
194
        m_backgroundEvents.swap(events);
195
    }
196
    for (size_t i = 0, size = events.size(); i < size; ++i) {
197
        const TraceEvent& event = events[i];
198
        processEvent(m_handlersByType.find(event.name())->value, event);
199
    }
200
}
201
202
} // namespace WebCore
203
204
#endif // ENABLE(INSPECTOR)
- a/Source/WebCore/inspector/TimelineTraceEventProcessor.h +191 lines
Line 0 a/Source/WebCore/inspector/TimelineTraceEventProcessor.h_sec1
1
/*
2
* Copyright (C) 2012 Google 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 are
6
* met:
7
*
8
*     * Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
*     * Redistributions in binary form must reproduce the above
11
* copyright notice, this list of conditions and the following disclaimer
12
* in the documentation and/or other materials provided with the
13
* distribution.
14
*     * Neither the name of Google Inc. nor the names of its
15
* contributors may be used to endorse or promote products derived from
16
* this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
*/
30
31
#ifndef TimelineTraceEventProcessor_h
32
#define TimelineTraceEventProcessor_h
33
34
#if ENABLE(INSPECTOR)
35
36
#include <wtf/HashMap.h>
37
#include <wtf/HashSet.h>
38
#include <wtf/Noncopyable.h>
39
#include <wtf/Threading.h>
40
#include <wtf/Vector.h>
41
#include <wtf/WeakPtr.h>
42
#include <wtf/text/WTFString.h>
43
44
namespace WebCore {
45
46
class InspectorClient;
47
class InspectorTimelineAgent;
48
class Page;
49
50
class TimelineTraceEventProcessor : public ThreadSafeRefCounted<TimelineTraceEventProcessor> {
51
public:
52
    // FIXME: re-use definitions in TraceEvent.h once it's promoted to all platforms.
53
    enum TraceEventPhase {
54
        TracePhaseBegin = 'B',
55
        TracePhaseEnd = 'E',
56
        TracePhaseInstant = 'I'
57
    };
58
59
    TimelineTraceEventProcessor(WeakPtr<InspectorTimelineAgent>, InspectorClient*);
60
    ~TimelineTraceEventProcessor();
61
62
    void processEventOnAnyThread(TraceEventPhase, const char* name, unsigned long long id,
63
        int numArgs, const char* const* argNames, const unsigned char* argTypes, const unsigned long long* argValues,
64
        unsigned char flags);
65
    
66
private:
67
    // FIXME: use the definition in TraceEvent.h once we expose the latter to all plaforms.
68
    union TraceValueUnion {
69
        bool m_bool;
70
        unsigned long long m_uint;
71
        long long m_int;
72
        double m_double;
73
        const void* m_pointer;
74
        const char* m_string;
75
    };
76
77
    enum TraceValueTypes {
78
        TypeBool = 1,
79
        TypeUInt = 2,
80
        TypeInt = 3,
81
        TypeDouble = 4,
82
        TypePointer = 5,
83
        TypeString = 6,
84
        TypeCopyString = 7
85
    };
86
87
    class TraceEvent {
88
    public:
89
        TraceEvent()
90
            : m_argumentCount(0)
91
        {
92
        }
93
94
        TraceEvent(double timestamp, TraceEventPhase phase, const char* name, ThreadIdentifier threadIdentifier,
95
            int argumentCount, const char* const* argumentNames, const unsigned char* argumentTypes, const unsigned long long* argumentValues)
96
            : m_timestamp(timestamp)
97
            , m_phase(phase)
98
            , m_name(name)
99
            , m_threadIdentifier(threadIdentifier)
100
            , m_argumentCount(argumentCount)
101
            , m_argumentNames(argumentNames)
102
            , m_argumentTypes(argumentTypes)
103
            , m_argumentValues(argumentValues)
104
        {
105
        }
106
107
        double timestamp() const { return m_timestamp; }
108
        TraceEventPhase phase() const { return m_phase; }
109
        const char* name() const { return m_name; }
110
        ThreadIdentifier threadIdentifier() const { return m_threadIdentifier; }
111
        int argumentCount() const { return m_argumentCount; }
112
113
        bool asBool(const char* name) const
114
        { 
115
            return parameter(name, TypeBool).m_bool;
116
        }
117
        long long asInt(const char* name) const
118
        { 
119
            return parameter(name, TypeInt).m_int;
120
        }
121
        unsigned long long asUInt(const char* name) const 
122
        { 
123
            return parameter(name, TypeUInt).m_uint;
124
        }
125
        double asDouble(const char* name) const
126
        { 
127
            return parameter(name, TypeDouble).m_double;
128
        }
129
        const char* asString(const char* name) const
130
        {
131
            return parameter(name, TypeString).m_string;
132
        }
133
134
    private:
135
        const TraceValueUnion& parameter(const char* name, TraceValueTypes expectedType) const;
136
137
        double m_timestamp;
138
        TraceEventPhase m_phase;
139
        const char* m_name;
140
        ThreadIdentifier m_threadIdentifier;
141
        int m_argumentCount;
142
        const char* const* m_argumentNames;
143
        const unsigned char* m_argumentTypes;
144
        const unsigned long long* m_argumentValues;
145
    };
146
147
    typedef void (TimelineTraceEventProcessor::*TraceEventHandler)(const TraceEvent&);
148
149
    struct EventTypeEntry {
150
        EventTypeEntry()
151
            : m_begin(0)
152
            , m_end(0)
153
            , m_instant(0)
154
        {
155
        }
156
        explicit EventTypeEntry(TraceEventHandler instant)
157
            : m_begin(0)
158
            , m_end(0)
159
            , m_instant(instant)
160
        {
161
        }
162
        EventTypeEntry(TraceEventHandler begin, TraceEventHandler end)
163
            : m_begin(begin)
164
            , m_end(end)
165
            , m_instant(0)
166
        {
167
        }
168
169
        TraceEventHandler m_begin;
170
        TraceEventHandler m_end;
171
        TraceEventHandler m_instant;
172
    };
173
174
    void processBackgroundEvents();
175
    void sendTimelineRecord(PassRefPtr<InspectorObject> data, const String& recordType, double startTime, double endTime, const String& thread);
176
    void processEvent(const EventTypeEntry&, const TraceEvent&);
177
178
    WeakPtr<InspectorTimelineAgent> m_timelineAgent;
179
    InspectorClient* m_inspectorClient;
180
181
    HashMap<String, EventTypeEntry> m_handlersByType;
182
    Mutex m_backgroundEventsMutex;
183
    Vector<TraceEvent> m_backgroundEvents;
184
    unsigned long long m_pageId;
185
};
186
187
188
} // namespace WebCore
189
190
#endif // ENABLE(INSPECTOR)
191
#endif // !defined(TimelineTraceEventProcessor_h)
- a/Source/WebKit/chromium/public/WebDevToolsAgentClient.h +6 lines
Lines 77-82 public: a/Source/WebKit/chromium/public/WebDevToolsAgentClient.h_sec1
77
    };
77
    };
78
    virtual void dumpUncountedAllocatedObjects(const InstrumentedObjectSizeProvider*) { }
78
    virtual void dumpUncountedAllocatedObjects(const InstrumentedObjectSizeProvider*) { }
79
79
80
    typedef void (*TraceEventCallback)(char phase, const unsigned char*, const char* name, unsigned long long id,
81
        int numArgs, const char* const* argNames, const unsigned char* argTypes, const unsigned long long* argValues,
82
        unsigned char flags);
83
84
    virtual void setTraceEventCallback(TraceEventCallback) { }
85
80
protected:
86
protected:
81
    ~WebDevToolsAgentClient() { }
87
    ~WebDevToolsAgentClient() { }
82
};
88
};
- a/Source/WebKit/chromium/src/InspectorClientImpl.cpp +6 lines
Lines 218-223 bool InspectorClientImpl::handleJavaScriptDialog(bool accept) a/Source/WebKit/chromium/src/InspectorClientImpl.cpp_sec1
218
    return false;
218
    return false;
219
}
219
}
220
220
221
void InspectorClientImpl::setTraceEventCallback(TraceEventCallback callback)
222
{
223
    if (WebDevToolsAgentImpl* agent = devToolsAgent())
224
        agent->setTraceEventCallback(callback);
225
}
226
221
WebDevToolsAgentImpl* InspectorClientImpl::devToolsAgent()
227
WebDevToolsAgentImpl* InspectorClientImpl::devToolsAgent()
222
{
228
{
223
    return static_cast<WebDevToolsAgentImpl*>(m_inspectedWebView->devToolsAgent());
229
    return static_cast<WebDevToolsAgentImpl*>(m_inspectedWebView->devToolsAgent());
- a/Source/WebKit/chromium/src/InspectorClientImpl.h +1 lines
Lines 88-93 public: a/Source/WebKit/chromium/src/InspectorClientImpl.h_sec1
88
    virtual void dumpUncountedAllocatedObjects(const HashMap<const void*, size_t>&);
88
    virtual void dumpUncountedAllocatedObjects(const HashMap<const void*, size_t>&);
89
89
90
    virtual bool captureScreenshot(WTF::String* data);
90
    virtual bool captureScreenshot(WTF::String* data);
91
    virtual void setTraceEventCallback(TraceEventCallback);
91
92
92
    virtual bool handleJavaScriptDialog(bool accept);
93
    virtual bool handleJavaScriptDialog(bool accept);
93
94
- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp +5 lines
Lines 591-596 bool WebDevToolsAgentImpl::handleJavaScriptDialog(bool accept) a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp_sec1
591
    return true;
591
    return true;
592
}
592
}
593
593
594
void WebDevToolsAgentImpl::setTraceEventCallback(TraceEventCallback callback)
595
{
596
    m_client->setTraceEventCallback(callback);
597
}
598
594
void WebDevToolsAgentImpl::dispatchOnInspectorBackend(const WebString& message)
599
void WebDevToolsAgentImpl::dispatchOnInspectorBackend(const WebString& message)
595
{
600
{
596
    inspectorController()->dispatchMessageFromFrontend(message);
601
    inspectorController()->dispatchMessageFromFrontend(message);
- a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h +1 lines
Lines 110-115 public: a/Source/WebKit/chromium/src/WebDevToolsAgentImpl.h_sec1
110
110
111
    virtual void getAllocatedObjects(HashSet<const void*>&);
111
    virtual void getAllocatedObjects(HashSet<const void*>&);
112
    virtual void dumpUncountedAllocatedObjects(const HashMap<const void*, size_t>&);
112
    virtual void dumpUncountedAllocatedObjects(const HashMap<const void*, size_t>&);
113
    virtual void setTraceEventCallback(TraceEventCallback);
113
114
114
    virtual bool captureScreenshot(WTF::String* data);
115
    virtual bool captureScreenshot(WTF::String* data);
115
116

Return to Bug 105796