Changeset 96398 in webkit


Ignore:
Timestamp:
Sep 30, 2011 3:44:46 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

Web Inspector: [chromium] expose inspector protocol version to the embedder.
https://bugs.webkit.org/show_bug.cgi?id=69092

Source/WebCore:

This change also introduces major/minor inspector version components.

Reviewed by Yury Semikhatsky.

  • CMakeLists.txt:
  • CodeGenerators.pri:
  • DerivedSources.make:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • WebCore.gyp/WebCore.gyp:
  • WebCore.gypi:
  • inspector/Inspector-0.1.json: Renamed from Source/WebCore/inspector/Inspector.draft-01.json.
  • inspector/Inspector.json:
  • inspector/generate-inspector-protocol-version: Renamed from Source/WebCore/inspector/validate-protocol-compatibility.

Source/WebKit/chromium:

Reviewed by Yury Semikhatsky.

  • public/WebDevToolsAgent.h:
  • src/WebDevToolsAgentImpl.cpp:

(WebKit::WebDevToolsAgent::inspectorProtocolVersion):
(WebKit::WebDevToolsAgent::supportsInspectorProtocolVersion):

Location:
trunk/Source
Files:
12 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r96320 r96398  
    22052205# All Web Inspector generated files are created with this one call to CodeGeneratorInspector.pm
    22062206ADD_CUSTOM_COMMAND(
    2207     OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.json.validated
     2207    OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorProtocolVersion.h
    22082208    MAIN_DEPENDENCY inspector/Inspector.json
    2209     DEPENDS ${WEBCORE_DIR}/inspector/validate-protocol-compatibility ${WEBCORE_DIR}/inspector/Inspector.json
    2210     COMMAND ${PYTHON_EXECUTABLE} ${WEBCORE_DIR}/inspector/validate-protocol-compatibility -o ${DERIVED_SOURCES_WEBCORE_DIR}/Inspector.json.validated ${WEBCORE_DIR}/inspector/Inspector.json
     2209    DEPENDS ${WEBCORE_DIR}/inspector/generate-inspector-protocol-version ${WEBCORE_DIR}/inspector/Inspector.json
     2210    COMMAND ${PYTHON_EXECUTABLE} ${WEBCORE_DIR}/inspector/generate-inspector-protocol-version -o ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorProtocolVersion.h ${WEBCORE_DIR}/inspector/Inspector.json
    22112211    VERBATIM)
     2212LIST(APPEND WebCore_SOURCES ${DERIVED_SOURCES_WEBCORE_DIR}/InspectorProtocolVersion.h)
    22122213
    22132214ADD_CUSTOM_COMMAND(
  • trunk/Source/WebCore/ChangeLog

    r96393 r96398  
     12011-09-30  Pavel Feldman  <pfeldman@google.com>
     2
     3        Web Inspector: [chromium] expose inspector protocol version to the embedder.
     4        https://bugs.webkit.org/show_bug.cgi?id=69092
     5
     6        This change also introduces major/minor inspector version components.
     7
     8        Reviewed by Yury Semikhatsky.
     9
     10        * CMakeLists.txt:
     11        * CodeGenerators.pri:
     12        * DerivedSources.make:
     13        * GNUmakefile.am:
     14        * GNUmakefile.list.am:
     15        * WebCore.gyp/WebCore.gyp:
     16        * WebCore.gypi:
     17        * inspector/Inspector-0.1.json: Renamed from Source/WebCore/inspector/Inspector.draft-01.json.
     18        * inspector/Inspector.json:
     19        * inspector/generate-inspector-protocol-version: Renamed from Source/WebCore/inspector/validate-protocol-compatibility.
     20
    1212011-09-29  Antti Koivisto  <antti@apple.com>
    222
  • trunk/Source/WebCore/CodeGenerators.pri

    r96320 r96398  
    669669
    670670# GENERATOR 2: inspector idl compiler
    671 inspectorValidate.output = $${WC_GENERATED_SOURCES_DIR}/Inspector.json.validated
     671inspectorValidate.output = $${WC_GENERATED_SOURCES_DIR}/InspectorProtocolVersion.h
    672672inspectorValidate.input = INSPECTOR_JSON
    673 inspectorValidate.wkScript = $$PWD/inspector/validate-protocol-compatibility
    674 inspectorValidate.commands = python $$inspectorValidate.wkScript -o $${WC_GENERATED_SOURCES_DIR}/Inspector.json.validated $$PWD/inspector/Inspector.json
    675 inspectorValidate.depends = $$PWD/inspector/validate-protocol-compatibility
     673inspectorValidate.wkScript = $$PWD/inspector/generate-inspector-protocol-version
     674inspectorValidate.commands = python $$inspectorValidate.wkScript -o $${WC_GENERATED_SOURCES_DIR}/InspectorProtocolVersion.h $$PWD/inspector/Inspector.json
     675inspectorValidate.depends = $$PWD/inspector/generate-inspector-protocol-version
    676676inspectorValidate.wkAddOutputToSources = false
    677677addExtraCompiler(inspectorValidate)
  • trunk/Source/WebCore/DerivedSources.make

    r96320 r96398  
    889889# Inspector interfaces generator
    890890
    891 Inspector.json.validated : Inspector.json inspector/validate-protocol-compatibility
    892         python $(WebCore)/inspector/validate-protocol-compatibility -o Inspector.json.validated $(WebCore)/inspector/Inspector.json
     891all : InspectorProtocolVersion.h
     892
     893InspectorProtocolVersion.h : Inspector.json inspector/generate-inspector-protocol-version
     894        python $(WebCore)/inspector/generate-inspector-protocol-version -o InspectorProtocolVersion.h $(WebCore)/inspector/Inspector.json
    893895
    894896Inspector.idl : Inspector.json inspector/generate-inspector-idl
  • trunk/Source/WebCore/GNUmakefile.am

    r96320 r96398  
    688688
    689689# All Web Inspector generated files are created with this one call to CodeGeneratorInspector.pm
    690 DerivedSources/WebCore/Inspector.json.validated : $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/validate-protocol-compatibility
    691         $(PYTHON) $(WebCore)/inspector/validate-protocol-compatibility -o $(GENSOURCES_WEBCORE)/Inspector.json.validated $(WebCore)/inspector/Inspector.json
     690DerivedSources/WebCore/InspectorProtocolVersion.h : $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/generate-inspector-protocol-version
     691        $(PYTHON) $(WebCore)/inspector/generate-inspector-protocol-version -o $(GENSOURCES_WEBCORE)/InspectorProtocolVersion.h $(WebCore)/inspector/Inspector.json
    692692
    693693DerivedSources/WebCore/Inspector.idl : $(WebCore)/inspector/Inspector.json $(WebCore)/inspector/generate-inspector-idl
  • trunk/Source/WebCore/GNUmakefile.list.am

    r96339 r96398  
    2020        DerivedSources/WebCore/InspectorFrontend.cpp \
    2121        DerivedSources/WebCore/InspectorFrontend.h \
     22        DerivedSources/WebCore/InspectorProtocolVersion.h \
    2223        DerivedSources/WebCore/JSAbstractWorker.cpp \
    2324        DerivedSources/WebCore/JSAbstractWorker.h \
  • trunk/Source/WebCore/WebCore.gyp/WebCore.gyp

    r96320 r96398  
    336336  'targets': [
    337337    {
    338       'target_name': 'inspector_idl',
     338      'target_name': 'generate_inspector_protocol_version',
    339339      'type': 'none',
    340340      'actions': [
    341341         {
    342           'action_name': 'validateInspectorProtocol',
    343           'inputs': [
    344             '../inspector/validate-protocol-compatibility',
     342          'action_name': 'generateInspectorProtocolVersion',
     343          'inputs': [
     344            '../inspector/generate-inspector-protocol-version',
    345345            '../inspector/Inspector.json',
    346346          ],
    347347          'outputs': [
    348             '<(SHARED_INTERMEDIATE_DIR)/webcore/Inspector.json.validated',
     348            '<(SHARED_INTERMEDIATE_DIR)/webkit/InspectorProtocolVersion.h',
    349349          ],
    350350          'variables': {
     
    354354          'action': [
    355355            'python',
    356             '../inspector/validate-protocol-compatibility',
     356            '../inspector/generate-inspector-protocol-version',
    357357            '-o',
    358358            '<@(_outputs)',
    359359            '<@(_inputs)'
    360360          ],
    361           'message': 'Validate inspector protocol for backwards compatibility',
    362         },
     361          'message': 'Validate inspector protocol for backwards compatibility and generate version file',
     362        }
     363      ]
     364    },
     365    {
     366      'target_name': 'inspector_idl',
     367      'type': 'none',
     368      'actions': [
     369
    363370        {
    364371          'action_name': 'generateInspectorProtocolIDL',
     
    382389          ],
    383390          'message': 'Generating Inspector protocol sources from Inspector.idl',
    384         },
     391        }
    385392      ]
    386393    },
     
    389396      'type': 'none',
    390397      'dependencies': [
    391         'inspector_idl'
     398        'inspector_idl',
     399        'generate_inspector_protocol_version'
    392400      ],
    393401      'actions': [
  • trunk/Source/WebCore/WebCore.gypi

    r96384 r96398  
    70207020            '<(PRODUCT_DIR)/DerivedSources/WebCore/InspectorFrontend.cpp',
    70217021            '<(PRODUCT_DIR)/DerivedSources/WebCore/InspectorFrontend.h',
     7022            '<(PRODUCT_DIR)/DerivedSources/WebCore/InspectorProtocolVersion.h',
    70227023            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSAbstractView.cpp',
    70237024            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSAbstractView.h',
  • trunk/Source/WebCore/inspector/Inspector-0.1.json

    r96397 r96398  
    11{
    2     "version": "draft-01",
    32    "compatible": [],
    43    "domains" : [{
  • trunk/Source/WebCore/inspector/Inspector.json

    r96320 r96398  
    11{
    2     "version": "tip-of-tree",
    3     "compatible": ["draft-01"],
     2    "version": { "major": "0", "minor": "1" },
    43    "domains": [{
    54        "domain": "Inspector",
  • trunk/Source/WebCore/inspector/generate-inspector-protocol-version

    r96397 r96398  
    315315    dir_name = os.path.dirname(input_path)
    316316    schema = load_json(input_path)
    317     sys.stdout.write("Validating schema: %s\n" % schema["version"])
    318     compatible = schema["compatible"]
    319     errors_found = False
    320     for version in compatible:
    321         schema = load_json(input_path) # reload since modified while comparing
    322         version_file_name = os.path.normpath(dir_name + "/Inspector." + version + ".json")
    323         version_schema = load_json(version_file_name)
    324         errors = compare_schemas(version_schema["domains"], schema["domains"])
    325         if len(errors) > 0:
    326             errors_found = True
    327             sys.stderr.write("  compatibility with %s: FAILED\n" % version)
    328             for error in errors:
    329                 sys.stderr.write( "    %s\n" % error)
    330         else:
    331             sys.stderr.write("  compatibility with %s: SUCCESS\n" % version)
    332     if errors_found:
     317
     318    major = schema["version"]["major"]
     319    minor = schema["version"]["minor"]
     320    version = "%s.%s" % (major, minor)
     321    version_file_name = os.path.normpath(dir_name + "/Inspector-" + version + ".json")
     322    version_schema = load_json(version_file_name)
     323
     324    errors = compare_schemas(version_schema["domains"], schema["domains"])
     325    if len(errors) > 0:
     326        sys.stderr.write("  compatibility with %s: FAILED\n" % version)
     327        for error in errors:
     328            sys.stderr.write( "    %s\n" % error)
    333329        return 1
     330
     331    output_file.write("""
     332#ifndef InspectorProtocolVersion_h
     333#define InspectorProtocolVersion_h
     334#include "PlatformString.h"
     335#include <wtf/Vector.h>
     336
     337namespace WebCore {
     338
     339String inspectorProtocolVersion() { return "%s"; }
     340
     341int inspectorProtocolVersionMajor() { return %s; }
     342
     343int inspectorProtocolVersionMinor() { return %s; }
     344
     345bool supportsInspectorProtocolVersion(const String& version)
     346{
     347    Vector<String> tokens;
     348    version.split(".", tokens);
     349    if (tokens.size() != 2)
     350        return false;
     351
     352    bool ok = true;
     353    int major = tokens[0].toInt(&ok);
     354    if (!ok || major != %s)
     355        return false;
     356
     357    int minor = tokens[1].toInt(&ok);
     358    if (!ok || minor < %s)
     359        return false;
     360
     361    return true;
     362}
     363
     364}
     365
     366#endif // !defined(InspectorProtocolVersion_h)
     367""" % (version, major, minor, major, minor))
     368
     369    output_file.close()
    334370
    335371if __name__ == '__main__':
  • trunk/Source/WebKit/chromium/ChangeLog

    r96392 r96398  
     12011-09-29  Pavel Feldman  <pfeldman@google.com>
     2
     3        Web Inspector: [chromium] expose inspector protocol version to the embedder.
     4        https://bugs.webkit.org/show_bug.cgi?id=69092
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * public/WebDevToolsAgent.h:
     9        * src/WebDevToolsAgentImpl.cpp:
     10        (WebKit::WebDevToolsAgent::inspectorProtocolVersion):
     11        (WebKit::WebDevToolsAgent::supportsInspectorProtocolVersion):
     12
    1132011-09-30  James Robinson  <jamesr@chromium.org>
    214
  • trunk/Source/WebKit/chromium/public/WebDevToolsAgent.h

    r95901 r96398  
    5050    virtual ~WebDevToolsAgent() {}
    5151
     52    // Returns WebKit WebInspector protocol version.
     53    WEBKIT_EXPORT static WebString inspectorProtocolVersion();
     54
     55    // Returns true if and only if the given protocol version is supported by the WebKit Web Inspector.
     56    WEBKIT_EXPORT static bool supportsInspectorProtocolVersion(const WebString& version);
     57
    5258    virtual void attach() = 0;
    5359    virtual void detach() = 0;
  • trunk/Source/WebKit/chromium/src/WebDevToolsAgentImpl.cpp

    r95901 r96398  
    4040#include "InspectorController.h"
    4141#include "InspectorInstrumentation.h"
     42#include "InspectorProtocolVersion.h"
    4243#include "MemoryCache.h"
    4344#include "Page.h"
     
    338339}
    339340
     341WebString WebDevToolsAgent::inspectorProtocolVersion()
     342{
     343    return WebCore::inspectorProtocolVersion();
     344}
     345
     346bool WebDevToolsAgent::supportsInspectorProtocolVersion(const WebString& version)
     347{
     348    return WebCore::supportsInspectorProtocolVersion(version);
     349}
     350
    340351void WebDevToolsAgent::executeDebuggerCommand(const WebString& command, int callerId)
    341352{
Note: See TracChangeset for help on using the changeset viewer.