Changeset 160588 in webkit


Ignore:
Timestamp:
Dec 13, 2013 10:50:33 PM (10 years ago)
Author:
Joseph Pecoraro
Message:

Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=125707

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • GNUmakefile.am:
  • inspector/protocol/Debugger.json: Renamed from Source/WebCore/inspector/protocol/Debugger.json.
  • inspector/protocol/GenericTypes.json: Added.
  • inspector/protocol/InspectorDomain.json: Renamed from Source/WebCore/inspector/protocol/InspectorDomain.json.

Add new files to inspector generation.

  • inspector/scripts/CodeGeneratorInspector.py:

(Generator.go):
Only build TypeBuilder output if the domain only has types. Avoid
backend/frontend dispatchers and backend commands.

(TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
(format_setter_value_expression):
(Generator.process_command):
(Generator.generate_send_method):

  • inspector/scripts/CodeGeneratorInspectorStrings.py:

Export and name the get{JS,Web}EnumConstant function.

Source/WebCore:

  • Switch TypeBuilder::Page::SearchMatch to TypeBuilder::GenericTypes::SearchMatch which comes from InspectorJSTypeBuilders.
  • Remove domains that moved to JavaScriptCore.

No new tests, this only moves code around. There are no functional changes.

  • CMakeLists.txt:
  • DerivedSources.make:
  • GNUmakefile.am:

Add new files.

  • inspector/ContentSearchUtils.cpp:

(WebCore::ContentSearchUtils::buildObjectForSearchMatch):
(WebCore::ContentSearchUtils::searchInTextByLines):

  • inspector/ContentSearchUtils.h:
  • inspector/InspectorAgent.cpp:
  • inspector/InspectorAgent.h:
  • inspector/InspectorDebuggerAgent.h:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::searchInResource):

  • inspector/InspectorPageAgent.h:
  • inspector/protocol/Page.json:

Update includes and type builder type names.

  • inspector/InspectorDebuggerAgent.cpp:

(WebCore::breakpointActionTypeForString):
(WebCore::InspectorDebuggerAgent::searchInContent):

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
Use the new getEnum function names.

Source/WebInspectorUI:

  • UserInterface/InspectorJSBackendCommands.js:
  • UserInterface/InspectorWebBackendCommands.js:

Regenerate now that domains have moved around.

LayoutTests:

  • http/tests/inspector-protocol/resources/InspectorTest.js:

(InspectorTest.checkForError):
Since having a protocol error is likely wrong, make the output
for it as detailed as possible.

Location:
trunk
Files:
1 added
26 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r160567 r160588  
     12013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
     4        https://bugs.webkit.org/show_bug.cgi?id=125707
     5
     6        Reviewed by Timothy Hatcher.
     7
     8        * http/tests/inspector-protocol/resources/InspectorTest.js:
     9        (InspectorTest.checkForError):
     10        Since having a protocol error is likely wrong, make the output
     11        for it as detailed as possible.
     12
    1132013-12-13  Roger Fong  <roger_fong@apple.com>
    214
  • trunk/LayoutTests/http/tests/inspector-protocol/resources/InspectorTest.js

    r160557 r160588  
    132132{
    133133    if (responseObject.error) {
    134         InspectorTest.log("PROTOCOL ERROR: " + responseObject.error.message);
     134        InspectorTest.log("PROTOCOL ERROR: " + JSON.stringify(responseObject.error));
    135135        InspectorTest.completeTest();
    136136        throw "PROTOCOL ERROR";
  • trunk/Source/JavaScriptCore/CMakeLists.txt

    r160557 r160588  
    659659
    660660set(JavaScriptCore_INSPECTOR_DOMAINS
     661    inspector/protocol/Debugger.json
     662    inspector/protocol/GenericTypes.json
     663    inspector/protocol/InspectorDomain.json
    661664    inspector/protocol/Runtime.json
    662665)
  • trunk/Source/JavaScriptCore/ChangeLog

    r160587 r160588  
     12013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
     4        https://bugs.webkit.org/show_bug.cgi?id=125707
     5
     6        Reviewed by Timothy Hatcher.
     7
     8        * CMakeLists.txt:
     9        * DerivedSources.make:
     10        * GNUmakefile.am:
     11        * inspector/protocol/Debugger.json: Renamed from Source/WebCore/inspector/protocol/Debugger.json.
     12        * inspector/protocol/GenericTypes.json: Added.
     13        * inspector/protocol/InspectorDomain.json: Renamed from Source/WebCore/inspector/protocol/InspectorDomain.json.
     14        Add new files to inspector generation.
     15
     16        * inspector/scripts/CodeGeneratorInspector.py:
     17        (Generator.go):
     18        Only build TypeBuilder output if the domain only has types. Avoid
     19        backend/frontend dispatchers and backend commands.
     20
     21        (TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
     22        (format_setter_value_expression):
     23        (Generator.process_command):
     24        (Generator.generate_send_method):
     25        * inspector/scripts/CodeGeneratorInspectorStrings.py:
     26        Export and name the get{JS,Web}EnumConstant function.
     27
    1282013-12-11  Filip Pizlo  <fpizlo@apple.com>
    229
  • trunk/Source/JavaScriptCore/DerivedSources.make

    r160557 r160588  
    8585
    8686INSPECTOR_DOMAINS = \
     87    $(JavaScriptCore)/inspector/protocol/Debugger.json \
     88    $(JavaScriptCore)/inspector/protocol/GenericTypes.json \
     89    $(JavaScriptCore)/inspector/protocol/InspectorDomain.json \
    8790    $(JavaScriptCore)/inspector/protocol/Runtime.json \
    8891#
  • trunk/Source/JavaScriptCore/GNUmakefile.am

    r160568 r160588  
    221221
    222222JavaScriptCore_INSPECTOR_DOMAINS := \
     223    $(JavaScriptCore)/inspector/protocol/Debugger.json \
     224    $(JavaScriptCore)/inspector/protocol/GenericTypes.json \
     225    $(JavaScriptCore)/inspector/protocol/InspectorDomain.json \
    223226    $(JavaScriptCore)/inspector/protocol/Runtime.json
    224227
  • trunk/Source/JavaScriptCore/inspector/protocol/Debugger.json

    r160587 r160588  
    181181            ],
    182182            "returns": [
    183                 { "name": "result", "type": "array", "items": { "$ref": "Page.SearchMatch" }, "description": "List of search matches." }
     183                { "name": "result", "type": "array", "items": { "$ref": "GenericTypes.SearchMatch" }, "description": "List of search matches." }
    184184            ],
    185185            "description": "Searches for given string in script content."
  • trunk/Source/JavaScriptCore/inspector/protocol/Runtime.json

    r160557 r160588  
    8585            "id": "RuntimeFrameId",
    8686            "type": "string",
    87             "description": "Unique frame identifier. FIXME: This duplicates Network.FrameId."
     87            "description": "Unique frame identifier. FIXME: Duplicate of Network.FrameId <https://webkit.org/b/125664> Web Inspector: FIX Type Dependency Issues"
    8888        },
    8989        {
  • trunk/Source/JavaScriptCore/inspector/scripts/CodeGeneratorInspector.py

    r160557 r160588  
    10021002                    @staticmethod
    10031003                    def get_setter_value_expression_pattern():
    1004                         return "Inspector::TypeBuilder::getEnumConstantValue(%s)"
     1004                        return "Inspector::TypeBuilder::get%sEnumConstantValue(%s)"
    10051005
    10061006                    @staticmethod
     
    18641864    pattern = param_type_binding.get_setter_value_expression_pattern()
    18651865    if pattern:
    1866         return pattern % value_ref
     1866        return pattern % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["prefix"], value_ref)
    18671867    else:
    18681868        return value_ref
     
    19071907            frontend_method_declaration_lines = []
    19081908
    1909             Generator.backend_js_domain_initializer_list.append("// %s.\n" % domain_name)
    1910 
    1911             if not domain_fixes.skip_js_bind:
    1912                 Generator.backend_js_domain_initializer_list.append("InspectorBackend.register%sDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, \"%s\");\n" % (domain_name, domain_name))
     1909            if ("commands" in json_domain or "events" in json_domain):
     1910                Generator.backend_js_domain_initializer_list.append("// %s.\n" % domain_name)
     1911                if not domain_fixes.skip_js_bind:
     1912                    Generator.backend_js_domain_initializer_list.append("InspectorBackend.register%sDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, \"%s\");\n" % (domain_name, domain_name))
    19131913
    19141914            if "types" in json_domain:
     
    19441944            agent_interface_name = dispatcher_name + "Handler"
    19451945
    1946             Generator.backend_dispatcher_interface_list.append("class %s %s FINAL : public Inspector::InspectorSupplementalBackendDispatcher {\n" % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["export_macro"], dispatcher_name))
    1947             Generator.backend_dispatcher_interface_list.append("public:\n")
    1948             Generator.backend_dispatcher_interface_list.append("    static PassRefPtr<%s> create(Inspector::InspectorBackendDispatcher*, %s*);\n" % (dispatcher_name, agent_interface_name))
    1949             Generator.backend_dispatcher_interface_list.append("    virtual void dispatch(long callId, const String& method, PassRefPtr<Inspector::InspectorObject> message) OVERRIDE;\n")
    1950             Generator.backend_dispatcher_interface_list.append("private:\n")
    1951 
    1952             Generator.backend_handler_interface_list.append("class %s %s {\n" % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["export_macro"], agent_interface_name))
    1953             Generator.backend_handler_interface_list.append("public:\n")
    1954 
    1955             backend_method_count = len(Generator.backend_method_implementation_list)
    1956 
    1957             dispatcher_if_chain = []
    1958             dispatcher_commands_list = []
    19591946            if "commands" in json_domain:
     1947                Generator.backend_dispatcher_interface_list.append("class %s %s FINAL : public Inspector::InspectorSupplementalBackendDispatcher {\n" % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["export_macro"], dispatcher_name))
     1948                Generator.backend_dispatcher_interface_list.append("public:\n")
     1949                Generator.backend_dispatcher_interface_list.append("    static PassRefPtr<%s> create(Inspector::InspectorBackendDispatcher*, %s*);\n" % (dispatcher_name, agent_interface_name))
     1950                Generator.backend_dispatcher_interface_list.append("    virtual void dispatch(long callId, const String& method, PassRefPtr<Inspector::InspectorObject> message) OVERRIDE;\n")
     1951                Generator.backend_dispatcher_interface_list.append("private:\n")
     1952
     1953                Generator.backend_handler_interface_list.append("class %s %s {\n" % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["export_macro"], agent_interface_name))
     1954                Generator.backend_handler_interface_list.append("public:\n")
     1955
     1956                backend_method_count = len(Generator.backend_method_implementation_list)
     1957
     1958                dispatcher_if_chain = []
     1959                dispatcher_commands_list = []
    19601960                for json_command in json_domain["commands"]:
    19611961                    Generator.process_command(json_command, domain_name, agent_interface_name, dispatcher_name, dispatcher_if_chain, dispatcher_commands_list)
    19621962
    1963             Generator.backend_handler_interface_list.append("protected:\n")
    1964             Generator.backend_handler_interface_list.append("    virtual ~%s() { }\n" % agent_interface_name)
    1965             Generator.backend_handler_interface_list.append("};\n\n")
    1966 
    1967             Generator.backend_dispatcher_interface_list.append("private:\n")
    1968             Generator.backend_dispatcher_interface_list.append("    %s(Inspector::InspectorBackendDispatcher*, %s*);\n" % (dispatcher_name, agent_interface_name))
    1969             Generator.backend_dispatcher_interface_list.append("    %s* m_agent;\n" % agent_interface_name)
    1970             Generator.backend_dispatcher_interface_list.append("};\n\n")
    1971 
    1972             Generator.backend_method_implementation_list.insert(backend_method_count, Templates.backend_dispatcher_constructor.substitute(None,
    1973                 domainName=domain_name,
    1974                 dispatcherName=dispatcher_name,
    1975                 agentName=agent_interface_name))
    1976 
    1977             if "commands" in json_domain and len(json_domain["commands"]) <= 5:
    1978                 Generator.backend_method_implementation_list.insert(backend_method_count + 1, Templates.backend_dispatcher_dispatch_method_simple.substitute(None,
     1963                Generator.backend_handler_interface_list.append("protected:\n")
     1964                Generator.backend_handler_interface_list.append("    virtual ~%s() { }\n" % agent_interface_name)
     1965                Generator.backend_handler_interface_list.append("};\n\n")
     1966
     1967                Generator.backend_dispatcher_interface_list.append("private:\n")
     1968                Generator.backend_dispatcher_interface_list.append("    %s(Inspector::InspectorBackendDispatcher*, %s*);\n" % (dispatcher_name, agent_interface_name))
     1969                Generator.backend_dispatcher_interface_list.append("    %s* m_agent;\n" % agent_interface_name)
     1970                Generator.backend_dispatcher_interface_list.append("};\n\n")
     1971
     1972                Generator.backend_method_implementation_list.insert(backend_method_count, Templates.backend_dispatcher_constructor.substitute(None,
    19791973                    domainName=domain_name,
    19801974                    dispatcherName=dispatcher_name,
    1981                     ifChain="\n".join(dispatcher_if_chain)))
    1982             else:
    1983                 Generator.backend_method_implementation_list.insert(backend_method_count + 1, Templates.backend_dispatcher_dispatch_method.substitute(None,
    1984                     domainName=domain_name,
    1985                     dispatcherName=dispatcher_name,
    1986                     dispatcherCommands="\n".join(dispatcher_commands_list)))
    1987 
    1988             if domain_guard:
    1989                 for l in reversed(first_cycle_guardable_list_list):
    1990                     domain_guard.generate_close(l)
    1991             Generator.backend_js_domain_initializer_list.append("\n")
     1975                    agentName=agent_interface_name))
     1976
     1977                if len(json_domain["commands"]) <= 5:
     1978                    Generator.backend_method_implementation_list.insert(backend_method_count + 1, Templates.backend_dispatcher_dispatch_method_simple.substitute(None,
     1979                        domainName=domain_name,
     1980                        dispatcherName=dispatcher_name,
     1981                        ifChain="\n".join(dispatcher_if_chain)))
     1982                else:
     1983                    Generator.backend_method_implementation_list.insert(backend_method_count + 1, Templates.backend_dispatcher_dispatch_method.substitute(None,
     1984                        domainName=domain_name,
     1985                        dispatcherName=dispatcher_name,
     1986                        dispatcherCommands="\n".join(dispatcher_commands_list)))
     1987
     1988                if domain_guard:
     1989                    for l in reversed(first_cycle_guardable_list_list):
     1990                        domain_guard.generate_close(l)
     1991                Generator.backend_js_domain_initializer_list.append("\n")
    19921992
    19931993    @staticmethod
     
    21872187                setter_argument = type_model.get_command_return_pass_model().get_output_to_raw_expression() % var_name
    21882188                if return_type_binding.get_setter_value_expression_pattern():
    2189                     setter_argument = return_type_binding.get_setter_value_expression_pattern() % setter_argument
     2189                    setter_argument = return_type_binding.get_setter_value_expression_pattern() % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["prefix"], setter_argument)
    21902190
    21912191                cook = "        result->set%s(ASCIILiteral(\"%s\"), %s);\n" % (setter_type, json_return_name, setter_argument)
     
    22802280                setter_argument = raw_type_model.get_event_setter_expression_pattern() % parameter_name
    22812281                if mode_type_binding.get_setter_value_expression_pattern():
    2282                     setter_argument = mode_type_binding.get_setter_value_expression_pattern() % setter_argument
     2282                    setter_argument = mode_type_binding.get_setter_value_expression_pattern() % (INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["prefix"], setter_argument)
    22832283
    22842284                setter_code = "    %s->set%s(ASCIILiteral(\"%s\"), %s);\n" % (method_struct_template.container_name, setter_type, parameter_name, setter_argument)
     
    24852485    outputFileNamePrefix=output_file_name_prefix,
    24862486    typeBuilderDependencies=INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["typebuilder_dependency"],
     2487    exportMacro=INSPECTOR_TYPES_GENERATOR_CONFIG_MAP[output_type]["export_macro"],
    24872488    typeBuilders="".join(flatten_list(Generator.type_builder_fragments)),
    24882489    forwards="".join(Generator.type_builder_forwards),
  • trunk/Source/JavaScriptCore/inspector/scripts/CodeGeneratorInspectorStrings.py

    r160565 r160588  
    224224${forwards}
    225225
    226 String getEnumConstantValue(int code);
     226${exportMacro} String get${outputFileNamePrefix}EnumConstantValue(int code);
    227227
    228228${typeBuilders}
     
    251251namespace TypeBuilder {
    252252
    253 const char* const enum_constant_values[] = {
     253static const char* const enum_constant_values[] = {
    254254${enumConstantValues}};
    255255
    256 String getEnumConstantValue(int code) {
     256String get${outputFileNamePrefix}EnumConstantValue(int code) {
    257257    return enum_constant_values[code];
    258258}
  • trunk/Source/WebCore/CMakeLists.txt

    r160557 r160588  
    763763    inspector/protocol/DOMStorage.json
    764764    inspector/protocol/Database.json
    765     inspector/protocol/Debugger.json
    766765    inspector/protocol/FileSystem.json
    767766    inspector/protocol/HeapProfiler.json
    768767    inspector/protocol/IndexedDB.json
    769768    inspector/protocol/Input.json
    770     inspector/protocol/InspectorDomain.json
    771769    inspector/protocol/LayerTree.json
    772770    inspector/protocol/Memory.json
  • trunk/Source/WebCore/ChangeLog

    r160581 r160588  
     12013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
     4        https://bugs.webkit.org/show_bug.cgi?id=125707
     5
     6        Reviewed by Timothy Hatcher.
     7
     8          - Switch TypeBuilder::Page::SearchMatch to TypeBuilder::GenericTypes::SearchMatch
     9            which comes from InspectorJSTypeBuilders.
     10          - Remove domains that moved to JavaScriptCore.
     11
     12        No new tests, this only moves code around. There are no functional changes.
     13
     14        * CMakeLists.txt:
     15        * DerivedSources.make:
     16        * GNUmakefile.am:
     17        Add new files.
     18
     19        * inspector/ContentSearchUtils.cpp:
     20        (WebCore::ContentSearchUtils::buildObjectForSearchMatch):
     21        (WebCore::ContentSearchUtils::searchInTextByLines):
     22        * inspector/ContentSearchUtils.h:
     23        * inspector/InspectorAgent.cpp:
     24        * inspector/InspectorAgent.h:
     25        * inspector/InspectorDebuggerAgent.h:
     26        * inspector/InspectorPageAgent.cpp:
     27        (WebCore::InspectorPageAgent::searchInResource):
     28        * inspector/InspectorPageAgent.h:
     29        * inspector/protocol/Page.json:
     30        Update includes and type builder type names.
     31
     32        * inspector/InspectorDebuggerAgent.cpp:
     33        (WebCore::breakpointActionTypeForString):
     34        (WebCore::InspectorDebuggerAgent::searchInContent):
     35        * inspector/InspectorTimelineAgent.cpp:
     36        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
     37        Use the new getEnum function names.
     38
    1392013-12-13  Brent Fulgham  <bfulgham@apple.com>
    240
  • trunk/Source/WebCore/DerivedSources.make

    r160557 r160588  
    10781078    $(WebCore)/inspector/protocol/DOMStorage.json \
    10791079    $(WebCore)/inspector/protocol/Database.json \
    1080     $(WebCore)/inspector/protocol/Debugger.json \
    10811080    $(WebCore)/inspector/protocol/FileSystem.json \
    10821081    $(WebCore)/inspector/protocol/HeapProfiler.json \
    10831082    $(WebCore)/inspector/protocol/IndexedDB.json \
    10841083    $(WebCore)/inspector/protocol/Input.json \
    1085     $(WebCore)/inspector/protocol/InspectorDomain.json \
    10861084    $(WebCore)/inspector/protocol/LayerTree.json \
    10871085    $(WebCore)/inspector/protocol/Memory.json \
  • trunk/Source/WebCore/GNUmakefile.am

    r160568 r160588  
    343343    $(WebCore)/inspector/protocol/DOMStorage.json \
    344344    $(WebCore)/inspector/protocol/Database.json \
    345     $(WebCore)/inspector/protocol/Debugger.json \
    346345    $(WebCore)/inspector/protocol/FileSystem.json \
    347346    $(WebCore)/inspector/protocol/HeapProfiler.json \
    348347    $(WebCore)/inspector/protocol/IndexedDB.json \
    349348    $(WebCore)/inspector/protocol/Input.json \
    350     $(WebCore)/inspector/protocol/InspectorDomain.json \
    351349    $(WebCore)/inspector/protocol/LayerTree.json \
    352350    $(WebCore)/inspector/protocol/Memory.json \
  • trunk/Source/WebCore/inspector/ContentSearchUtils.cpp

    r160457 r160588  
    3333#include "ContentSearchUtils.h"
    3434#include "RegularExpression.h"
     35#include <inspector/InspectorJSTypeBuilders.h>
    3536#include <inspector/InspectorValues.h>
    3637#include <wtf/BumpPointerAllocator.h>
     
    121122}
    122123
    123 static PassRefPtr<Inspector::TypeBuilder::Page::SearchMatch> buildObjectForSearchMatch(int lineNumber, const String& lineContent)
    124 {
    125     return Inspector::TypeBuilder::Page::SearchMatch::create()
     124static PassRefPtr<Inspector::TypeBuilder::GenericTypes::SearchMatch> buildObjectForSearchMatch(int lineNumber, const String& lineContent)
     125{
     126    return Inspector::TypeBuilder::GenericTypes::SearchMatch::create()
    126127        .setLineNumber(lineNumber)
    127128        .setLineContent(lineContent)
     
    154155}
    155156
    156 PassRefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>> searchInTextByLines(const String& text, const String& query, const bool caseSensitive, const bool isRegex)
    157 {
    158     RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>> result = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>::create();
     157PassRefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>> searchInTextByLines(const String& text, const String& query, const bool caseSensitive, const bool isRegex)
     158{
     159    RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>> result = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>::create();
    159160
    160161    RegularExpression regex = ContentSearchUtils::createSearchRegex(query, caseSensitive, isRegex);
  • trunk/Source/WebCore/inspector/ContentSearchUtils.h

    r160457 r160588  
    4545RegularExpression createSearchRegex(const String& query, bool caseSensitive, bool isRegex);
    4646int countRegularExpressionMatches(const RegularExpression&, const String&);
    47 PassRefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>> searchInTextByLines(const String& text, const String& query, const bool caseSensitive, const bool isRegex);
     47PassRefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>> searchInTextByLines(const String& text, const String& query, const bool caseSensitive, const bool isRegex);
    4848TextPosition textPositionFromOffset(size_t offset, const Vector<size_t>& lineEndings);
    4949PassOwnPtr<Vector<size_t>> lineEndings(const String&);
  • trunk/Source/WebCore/inspector/InspectorAgent.cpp

    r160557 r160588  
    4242#include "InspectorController.h"
    4343#include "InspectorInstrumentation.h"
    44 #include "InspectorWebFrontendDispatchers.h"
    4544#include "InstrumentingAgents.h"
    4645#include "MainFrame.h"
     
    5150#include "Settings.h"
    5251#include <bindings/ScriptValue.h>
     52#include <inspector/InspectorJSFrontendDispatchers.h>
    5353#include <inspector/InspectorValues.h>
    5454#include <wtf/PassRefPtr.h>
  • trunk/Source/WebCore/inspector/InspectorAgent.h

    r160557 r160588  
    3232
    3333#include "InspectorWebAgentBase.h"
    34 #include "InspectorWebBackendDispatchers.h"
     34#include <inspector/InspectorJSBackendDispatchers.h>
    3535#include <wtf/Forward.h>
    3636#include <wtf/HashMap.h>
  • trunk/Source/WebCore/inspector/InspectorDebuggerAgent.cpp

    r160557 r160588  
    2929
    3030#include "config.h"
     31#include "InspectorDebuggerAgent.h"
    3132
    3233#if ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
    33 #include "InspectorDebuggerAgent.h"
    3434
    3535#include "CachedResource.h"
     
    3838#include "InjectedScriptManager.h"
    3939#include "InspectorPageAgent.h"
    40 #include "InspectorWebFrontendDispatchers.h"
    4140#include "InstrumentingAgents.h"
    4241#include "RegularExpression.h"
     
    204203static bool breakpointActionTypeForString(const String& typeString, ScriptBreakpointActionType* output)
    205204{
    206     if (typeString == Inspector::TypeBuilder::getEnumConstantValue(Inspector::TypeBuilder::Debugger::BreakpointAction::Type::Log)) {
     205    if (typeString == Inspector::TypeBuilder::getJSEnumConstantValue(Inspector::TypeBuilder::Debugger::BreakpointAction::Type::Log)) {
    207206        *output = ScriptBreakpointActionTypeLog;
    208207        return true;
    209208    }
    210     if (typeString == Inspector::TypeBuilder::getEnumConstantValue(Inspector::TypeBuilder::Debugger::BreakpointAction::Type::Evaluate)) {
     209    if (typeString == Inspector::TypeBuilder::getJSEnumConstantValue(Inspector::TypeBuilder::Debugger::BreakpointAction::Type::Evaluate)) {
    211210        *output = ScriptBreakpointActionTypeEvaluate;
    212211        return true;
    213212    }
    214     if (typeString == Inspector::TypeBuilder::getEnumConstantValue(Inspector::TypeBuilder::Debugger::BreakpointAction::Type::Sound)) {
     213    if (typeString == Inspector::TypeBuilder::getJSEnumConstantValue(Inspector::TypeBuilder::Debugger::BreakpointAction::Type::Sound)) {
    215214        *output = ScriptBreakpointActionTypeSound;
    216215        return true;
     
    424423}
    425424
    426 void InspectorDebuggerAgent::searchInContent(ErrorString* error, const String& scriptIDStr, const String& query, const bool* const optionalCaseSensitive, const bool* const optionalIsRegex, RefPtr<Array<Inspector::TypeBuilder::Page::SearchMatch>>& results)
     425void InspectorDebuggerAgent::searchInContent(ErrorString* error, const String& scriptIDStr, const String& query, const bool* const optionalCaseSensitive, const bool* const optionalIsRegex, RefPtr<Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>>& results)
    427426{
    428427    bool isRegex = optionalIsRegex ? *optionalIsRegex : false;
  • trunk/Source/WebCore/inspector/InspectorDebuggerAgent.h

    r160557 r160588  
    3838#include "InjectedScript.h"
    3939#include "InspectorWebAgentBase.h"
    40 #include "InspectorWebBackendDispatchers.h"
    41 #include "InspectorWebFrontendDispatchers.h"
    4240#include "ScriptBreakpoint.h"
    4341#include "ScriptDebugListener.h"
    4442#include "ScriptState.h"
    4543#include "SourceID.h"
     44#include <inspector/InspectorJSBackendDispatchers.h>
     45#include <inspector/InspectorJSFrontendDispatchers.h>
    4646#include <wtf/Forward.h>
    4747#include <wtf/HashMap.h>
     
    9797    virtual void continueToLocation(ErrorString*, const RefPtr<Inspector::InspectorObject>& location);
    9898
    99     virtual void searchInContent(ErrorString*, const String& scriptID, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>>&);
     99    virtual void searchInContent(ErrorString*, const String& scriptID, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>>&);
    100100    virtual void setScriptSource(ErrorString*, const String& scriptID, const String& newContent, const bool* preview, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Debugger::CallFrame>>& newCallFrames, RefPtr<Inspector::InspectorObject>& result);
    101101    virtual void getScriptSource(ErrorString*, const String& scriptID, String* scriptSource);
  • trunk/Source/WebCore/inspector/InspectorPageAgent.cpp

    r160557 r160588  
    607607}
    608608
    609 void InspectorPageAgent::searchInResource(ErrorString*, const String& frameId, const String& url, const String& query, const bool* const optionalCaseSensitive, const bool* const optionalIsRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>>& results)
    610 {
    611     results = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>::create();
     609void InspectorPageAgent::searchInResource(ErrorString*, const String& frameId, const String& url, const String& query, const bool* const optionalCaseSensitive, const bool* const optionalIsRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>>& results)
     610{
     611    results = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>::create();
    612612
    613613    bool isRegex = optionalIsRegex ? *optionalIsRegex : false;
  • trunk/Source/WebCore/inspector/InspectorPageAgent.h

    r160557 r160588  
    110110    virtual void getResourceTree(ErrorString*, RefPtr<Inspector::TypeBuilder::Page::FrameResourceTree>&);
    111111    virtual void getResourceContent(ErrorString*, const String& frameId, const String& url, String* content, bool* base64Encoded);
    112     virtual void searchInResource(ErrorString*, const String& frameId, const String& url, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchMatch>>&);
     112    virtual void searchInResource(ErrorString*, const String& frameId, const String& url, const String& query, const bool* optionalCaseSensitive, const bool* optionalIsRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::GenericTypes::SearchMatch>>&);
    113113    virtual void searchInResources(ErrorString*, const String&, const bool* caseSensitive, const bool* isRegex, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Page::SearchResult>>&);
    114114    virtual void setDocumentContent(ErrorString*, const String& frameId, const String& html);
  • trunk/Source/WebCore/inspector/InspectorTimelineAgent.cpp

    r160557 r160588  
    515515void InspectorTimelineAgent::innerAddRecordToTimeline(PassRefPtr<InspectorObject> prpRecord, TimelineRecordType type)
    516516{
    517     prpRecord->setString("type", Inspector::TypeBuilder::getEnumConstantValue(toProtocol(type)));
     517    prpRecord->setString("type", Inspector::TypeBuilder::getWebEnumConstantValue(toProtocol(type)));
    518518
    519519    RefPtr<Inspector::TypeBuilder::Timeline::TimelineEvent> record = Inspector::TypeBuilder::Timeline::TimelineEvent::runtimeCast(prpRecord);
  • trunk/Source/WebCore/inspector/protocol/Page.json

    r160203 r160588  
    5353        },
    5454        {
    55             "id": "SearchMatch",
    56             "type": "object",
    57             "description": "Search match for resource.",
    58             "properties": [
    59                 { "name": "lineNumber", "type": "number", "description": "Line number in resource content." },
    60                 { "name": "lineContent", "type": "string", "description": "Line with match content." }
    61             ]
    62         },
    63         {
    6455            "id": "SearchResult",
    6556            "type": "object",
     
    178169            ],
    179170            "returns": [
    180                 { "name": "result", "type": "array", "items": { "$ref": "SearchMatch" }, "description": "List of search matches." }
     171                { "name": "result", "type": "array", "items": { "$ref": "GenericTypes.SearchMatch" }, "description": "List of search matches." }
    181172            ]
    182173        },
  • trunk/Source/WebInspectorUI/ChangeLog

    r160585 r160588  
     12013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
     4        https://bugs.webkit.org/show_bug.cgi?id=125707
     5
     6        Reviewed by Timothy Hatcher.
     7
     8        * UserInterface/InspectorJSBackendCommands.js:
     9        * UserInterface/InspectorWebBackendCommands.js:
     10        Regenerate now that domains have moved around.
     11
    1122013-12-13  Joseph Pecoraro  <pecoraro@apple.com>
    213
  • trunk/Source/WebInspectorUI/UserInterface/InspectorJSBackendCommands.js

    r160557 r160588  
    66// found in the LICENSE file.
    77
     8
     9// Debugger.
     10InspectorBackend.registerDebuggerDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Debugger");
     11InspectorBackend.registerEnum("Debugger.BreakpointActionType", {Log: "log", Evaluate: "evaluate", Sound: "sound"});
     12InspectorBackend.registerEnum("Debugger.ScopeType", {Global: "global", Local: "local", With: "with", Closure: "closure", Catch: "catch"});
     13InspectorBackend.registerEvent("Debugger.globalObjectCleared", []);
     14InspectorBackend.registerEvent("Debugger.scriptParsed", ["scriptId", "url", "startLine", "startColumn", "endLine", "endColumn", "isContentScript", "sourceMapURL", "hasSourceURL"]);
     15InspectorBackend.registerEvent("Debugger.scriptFailedToParse", ["url", "scriptSource", "startLine", "errorLine", "errorMessage"]);
     16InspectorBackend.registerEvent("Debugger.breakpointResolved", ["breakpointId", "location"]);
     17InspectorBackend.registerEvent("Debugger.paused", ["callFrames", "reason", "data"]);
     18InspectorBackend.registerEvent("Debugger.resumed", []);
     19InspectorBackend.registerCommand("Debugger.causesRecompilation", [], ["result"]);
     20InspectorBackend.registerCommand("Debugger.supportsSeparateScriptCompilationAndExecution", [], ["result"]);
     21InspectorBackend.registerCommand("Debugger.enable", [], []);
     22InspectorBackend.registerCommand("Debugger.disable", [], []);
     23InspectorBackend.registerCommand("Debugger.setBreakpointsActive", [{"name": "active", "type": "boolean", "optional": false}], []);
     24InspectorBackend.registerCommand("Debugger.setBreakpointByUrl", [{"name": "lineNumber", "type": "number", "optional": false}, {"name": "url", "type": "string", "optional": true}, {"name": "urlRegex", "type": "string", "optional": true}, {"name": "columnNumber", "type": "number", "optional": true}, {"name": "options", "type": "object", "optional": true}], ["breakpointId", "locations"]);
     25InspectorBackend.registerCommand("Debugger.setBreakpoint", [{"name": "location", "type": "object", "optional": false}, {"name": "options", "type": "object", "optional": true}], ["breakpointId", "actualLocation"]);
     26InspectorBackend.registerCommand("Debugger.removeBreakpoint", [{"name": "breakpointId", "type": "string", "optional": false}], []);
     27InspectorBackend.registerCommand("Debugger.continueToLocation", [{"name": "location", "type": "object", "optional": false}], []);
     28InspectorBackend.registerCommand("Debugger.stepOver", [], []);
     29InspectorBackend.registerCommand("Debugger.stepInto", [], []);
     30InspectorBackend.registerCommand("Debugger.stepOut", [], []);
     31InspectorBackend.registerCommand("Debugger.pause", [], []);
     32InspectorBackend.registerCommand("Debugger.resume", [], []);
     33InspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false}, {"name": "query", "type": "string", "optional": false}, {"name": "caseSensitive", "type": "boolean", "optional": true}, {"name": "isRegex", "type": "boolean", "optional": true}], ["result"]);
     34InspectorBackend.registerCommand("Debugger.canSetScriptSource", [], ["result"]);
     35InspectorBackend.registerCommand("Debugger.setScriptSource", [{"name": "scriptId", "type": "string", "optional": false}, {"name": "scriptSource", "type": "string", "optional": false}, {"name": "preview", "type": "boolean", "optional": true}], ["callFrames", "result"]);
     36InspectorBackend.registerCommand("Debugger.getScriptSource", [{"name": "scriptId", "type": "string", "optional": false}], ["scriptSource"]);
     37InspectorBackend.registerCommand("Debugger.getFunctionDetails", [{"name": "functionId", "type": "string", "optional": false}], ["details"]);
     38InspectorBackend.registerCommand("Debugger.setPauseOnExceptions", [{"name": "state", "type": "string", "optional": false}], []);
     39InspectorBackend.registerCommand("Debugger.evaluateOnCallFrame", [{"name": "callFrameId", "type": "string", "optional": false}, {"name": "expression", "type": "string", "optional": false}, {"name": "objectGroup", "type": "string", "optional": true}, {"name": "includeCommandLineAPI", "type": "boolean", "optional": true}, {"name": "doNotPauseOnExceptionsAndMuteConsole", "type": "boolean", "optional": true}, {"name": "returnByValue", "type": "boolean", "optional": true}, {"name": "generatePreview", "type": "boolean", "optional": true}], ["result", "wasThrown"]);
     40InspectorBackend.registerCommand("Debugger.compileScript", [{"name": "expression", "type": "string", "optional": false}, {"name": "sourceURL", "type": "string", "optional": false}], ["scriptId", "syntaxErrorMessage"]);
     41InspectorBackend.registerCommand("Debugger.runScript", [{"name": "scriptId", "type": "string", "optional": false}, {"name": "contextId", "type": "number", "optional": true}, {"name": "objectGroup", "type": "string", "optional": true}, {"name": "doNotPauseOnExceptionsAndMuteConsole", "type": "boolean", "optional": true}], ["result", "wasThrown"]);
     42InspectorBackend.registerCommand("Debugger.setOverlayMessage", [{"name": "message", "type": "string", "optional": true}], []);
     43
     44// Inspector.
     45InspectorBackend.registerInspectorDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Inspector");
     46InspectorBackend.registerEvent("Inspector.evaluateForTestInFrontend", ["testCallId", "script"]);
     47InspectorBackend.registerEvent("Inspector.inspect", ["object", "hints"]);
     48InspectorBackend.registerEvent("Inspector.detached", ["reason"]);
     49InspectorBackend.registerEvent("Inspector.targetCrashed", []);
     50InspectorBackend.registerCommand("Inspector.enable", [], []);
     51InspectorBackend.registerCommand("Inspector.disable", [], []);
    852
    953// Runtime.
  • trunk/Source/WebInspectorUI/UserInterface/InspectorWebBackendCommands.js

    r160557 r160588  
    160160InspectorBackend.registerCommand("Database.executeSQL", [{"name": "databaseId", "type": "string", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "values", "sqlError"]);
    161161
    162 // Debugger.
    163 InspectorBackend.registerDebuggerDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Debugger");
    164 InspectorBackend.registerEnum("Debugger.BreakpointActionType", {Log: "log", Evaluate: "evaluate", Sound: "sound"});
    165 InspectorBackend.registerEnum("Debugger.ScopeType", {Global: "global", Local: "local", With: "with", Closure: "closure", Catch: "catch"});
    166 InspectorBackend.registerEvent("Debugger.globalObjectCleared", []);
    167 InspectorBackend.registerEvent("Debugger.scriptParsed", ["scriptId", "url", "startLine", "startColumn", "endLine", "endColumn", "isContentScript", "sourceMapURL", "hasSourceURL"]);
    168 InspectorBackend.registerEvent("Debugger.scriptFailedToParse", ["url", "scriptSource", "startLine", "errorLine", "errorMessage"]);
    169 InspectorBackend.registerEvent("Debugger.breakpointResolved", ["breakpointId", "location"]);
    170 InspectorBackend.registerEvent("Debugger.paused", ["callFrames", "reason", "data"]);
    171 InspectorBackend.registerEvent("Debugger.resumed", []);
    172 InspectorBackend.registerCommand("Debugger.causesRecompilation", [], ["result"]);
    173 InspectorBackend.registerCommand("Debugger.supportsSeparateScriptCompilationAndExecution", [], ["result"]);
    174 InspectorBackend.registerCommand("Debugger.enable", [], []);
    175 InspectorBackend.registerCommand("Debugger.disable", [], []);
    176 InspectorBackend.registerCommand("Debugger.setBreakpointsActive", [{"name": "active", "type": "boolean", "optional": false}], []);
    177 InspectorBackend.registerCommand("Debugger.setBreakpointByUrl", [{"name": "lineNumber", "type": "number", "optional": false}, {"name": "url", "type": "string", "optional": true}, {"name": "urlRegex", "type": "string", "optional": true}, {"name": "columnNumber", "type": "number", "optional": true}, {"name": "options", "type": "object", "optional": true}], ["breakpointId", "locations"]);
    178 InspectorBackend.registerCommand("Debugger.setBreakpoint", [{"name": "location", "type": "object", "optional": false}, {"name": "options", "type": "object", "optional": true}], ["breakpointId", "actualLocation"]);
    179 InspectorBackend.registerCommand("Debugger.removeBreakpoint", [{"name": "breakpointId", "type": "string", "optional": false}], []);
    180 InspectorBackend.registerCommand("Debugger.continueToLocation", [{"name": "location", "type": "object", "optional": false}], []);
    181 InspectorBackend.registerCommand("Debugger.stepOver", [], []);
    182 InspectorBackend.registerCommand("Debugger.stepInto", [], []);
    183 InspectorBackend.registerCommand("Debugger.stepOut", [], []);
    184 InspectorBackend.registerCommand("Debugger.pause", [], []);
    185 InspectorBackend.registerCommand("Debugger.resume", [], []);
    186 InspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false}, {"name": "query", "type": "string", "optional": false}, {"name": "caseSensitive", "type": "boolean", "optional": true}, {"name": "isRegex", "type": "boolean", "optional": true}], ["result"]);
    187 InspectorBackend.registerCommand("Debugger.canSetScriptSource", [], ["result"]);
    188 InspectorBackend.registerCommand("Debugger.setScriptSource", [{"name": "scriptId", "type": "string", "optional": false}, {"name": "scriptSource", "type": "string", "optional": false}, {"name": "preview", "type": "boolean", "optional": true}], ["callFrames", "result"]);
    189 InspectorBackend.registerCommand("Debugger.getScriptSource", [{"name": "scriptId", "type": "string", "optional": false}], ["scriptSource"]);
    190 InspectorBackend.registerCommand("Debugger.getFunctionDetails", [{"name": "functionId", "type": "string", "optional": false}], ["details"]);
    191 InspectorBackend.registerCommand("Debugger.setPauseOnExceptions", [{"name": "state", "type": "string", "optional": false}], []);
    192 InspectorBackend.registerCommand("Debugger.evaluateOnCallFrame", [{"name": "callFrameId", "type": "string", "optional": false}, {"name": "expression", "type": "string", "optional": false}, {"name": "objectGroup", "type": "string", "optional": true}, {"name": "includeCommandLineAPI", "type": "boolean", "optional": true}, {"name": "doNotPauseOnExceptionsAndMuteConsole", "type": "boolean", "optional": true}, {"name": "returnByValue", "type": "boolean", "optional": true}, {"name": "generatePreview", "type": "boolean", "optional": true}], ["result", "wasThrown"]);
    193 InspectorBackend.registerCommand("Debugger.compileScript", [{"name": "expression", "type": "string", "optional": false}, {"name": "sourceURL", "type": "string", "optional": false}], ["scriptId", "syntaxErrorMessage"]);
    194 InspectorBackend.registerCommand("Debugger.runScript", [{"name": "scriptId", "type": "string", "optional": false}, {"name": "contextId", "type": "number", "optional": true}, {"name": "objectGroup", "type": "string", "optional": true}, {"name": "doNotPauseOnExceptionsAndMuteConsole", "type": "boolean", "optional": true}], ["result", "wasThrown"]);
    195 InspectorBackend.registerCommand("Debugger.setOverlayMessage", [{"name": "message", "type": "string", "optional": true}], []);
    196 
    197162// FileSystem.
    198163InspectorBackend.registerFileSystemDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "FileSystem");
     
    237202InspectorBackend.registerCommand("Input.dispatchKeyEvent", [{"name": "type", "type": "string", "optional": false}, {"name": "modifiers", "type": "number", "optional": true}, {"name": "timestamp", "type": "number", "optional": true}, {"name": "text", "type": "string", "optional": true}, {"name": "unmodifiedText", "type": "string", "optional": true}, {"name": "keyIdentifier", "type": "string", "optional": true}, {"name": "windowsVirtualKeyCode", "type": "number", "optional": true}, {"name": "nativeVirtualKeyCode", "type": "number", "optional": true}, {"name": "macCharCode", "type": "number", "optional": true}, {"name": "autoRepeat", "type": "boolean", "optional": true}, {"name": "isKeypad", "type": "boolean", "optional": true}, {"name": "isSystemKey", "type": "boolean", "optional": true}], []);
    238203InspectorBackend.registerCommand("Input.dispatchMouseEvent", [{"name": "type", "type": "string", "optional": false}, {"name": "x", "type": "number", "optional": false}, {"name": "y", "type": "number", "optional": false}, {"name": "modifiers", "type": "number", "optional": true}, {"name": "timestamp", "type": "number", "optional": true}, {"name": "button", "type": "string", "optional": true}, {"name": "clickCount", "type": "number", "optional": true}], []);
    239 
    240 // Inspector.
    241 InspectorBackend.registerInspectorDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "Inspector");
    242 InspectorBackend.registerEvent("Inspector.evaluateForTestInFrontend", ["testCallId", "script"]);
    243 InspectorBackend.registerEvent("Inspector.inspect", ["object", "hints"]);
    244 InspectorBackend.registerEvent("Inspector.detached", ["reason"]);
    245 InspectorBackend.registerEvent("Inspector.targetCrashed", []);
    246 InspectorBackend.registerCommand("Inspector.enable", [], []);
    247 InspectorBackend.registerCommand("Inspector.disable", [], []);
    248204
    249205// LayerTree.
Note: See TracChangeset for help on using the changeset viewer.