Changeset 83435 in webkit


Ignore:
Timestamp:
Apr 11, 2011 5:30:57 AM (13 years ago)
Author:
pfeldman@chromium.org
Message:

2011-04-11 Pavel Feldman <pfeldman@chromium.org>

Reviewed by Yury Semikhatsky.

Web Inspector: add support for optional output parameters.
https://bugs.webkit.org/show_bug.cgi?id=58207

Output parameters such as "redirectResponse" are optional, but
do not allow specifying them as such.

  • inspector/CodeGeneratorInspector.pm:
  • inspector/Inspector.json:
  • inspector/InspectorResourceAgent.cpp: (WebCore::buildObjectForResourceResponse): (WebCore::buildObjectForCachedResource):
  • inspector/front-end/NetworkManager.js: (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
  • inspector/generate-inspector-idl:
Location:
trunk/Source/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r83434 r83435  
     12011-04-11  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Reviewed by Yury Semikhatsky.
     4
     5        Web Inspector: add support for optional output parameters.
     6        https://bugs.webkit.org/show_bug.cgi?id=58207
     7
     8        Output parameters such as "redirectResponse" are optional, but
     9        do not allow specifying them as such.
     10
     11        * inspector/CodeGeneratorInspector.pm:
     12        * inspector/Inspector.json:
     13        * inspector/InspectorResourceAgent.cpp:
     14        (WebCore::buildObjectForResourceResponse):
     15        (WebCore::buildObjectForCachedResource):
     16        * inspector/front-end/NetworkManager.js:
     17        (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
     18        * inspector/generate-inspector-idl:
     19
    1202011-04-11  Pavel Feldman  <pfeldman@chromium.org>
    221
  • trunk/Source/WebCore/inspector/CodeGeneratorInspector.pm

    r83171 r83435  
    376376    if (scalar(@argsFiltered)) {
    377377        push(@function, "    RefPtr<InspectorObject> paramsObject = InspectorObject::create();");
    378         my @pushArguments = map("    paramsObject->set" . typeTraits($_->type, "JSONType") . "(\"" . $_->name . "\", " . $_->name . ");", @argsFiltered);
    379         push(@function, @pushArguments);
     378
     379        foreach my $parameter (@argsFiltered) {
     380            my $optional = $parameter->extendedAttributes->{"optional"} ? "if (" . $parameter->name . ")\n        " : "";
     381            push(@function, "    " . $optional . "paramsObject->set" . typeTraits($parameter->type, "JSONType") . "(\"" . $parameter->name . "\", " . $parameter->name . ");");
     382        }
    380383        push(@function, "    ${functionName}Message->setObject(\"params\", paramsObject);");
    381384    }
  • trunk/Source/WebCore/inspector/Inspector.json

    r83434 r83435  
    387387                    { "name": "documentURL", "type": "string", "description": "URL of the document this resource is loaded for." },
    388388                    { "name": "request", "$ref": "ResourceRequest", "description": "Request data." },
    389                     { "name": "redirectResponse", "$ref": "ResourceResponse", "description": "Redirect response data." },
     389                    { "name": "redirectResponse", "optional": true, "$ref": "ResourceResponse", "description": "Redirect response data." },
    390390                    { "name": "time", "type": "number", "description": "Timestamp." },
    391391                    { "name": "callStack", "type": "array", "items": { "$ref" : "DebuggerStackFrame"}, "description": "JavaScript stack trace upon issuing this request." }
     
    394394            {
    395395                "name": "resourceMarkedAsCached",
    396                 "description": "Fired when request is known to be served from memory cache.",
     396                "description": "Fired when request is known to be served from disk cache.",
    397397                "parameters": [
    398398                    { "name": "identifier", "type": "integer", "description": "Request identifier." }
     
    12851285                "returns": [
    12861286                    { "name": "breakpointId", "type": "string", "description": "Id of the created breakpoint for further manipulations." },
    1287                     { "name": "locations", "type": "array", "items": { "$ref" : "Location"}, "description": "List of the locations this breakpoint resolved into." }
     1287                    { "name": "locations", "optional": true, "type": "array", "items": { "$ref" : "Location"}, "description": "List of the locations this breakpoint resolved into." }
    12881288                ],
    12891289                "description": "Sets JavaScript breakpoint at a given location specified by URL. This breakpoint will survive page reload."
  • trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp

    r82847 r83435  
    216216static PassRefPtr<InspectorObject> buildObjectForResourceResponse(const ResourceResponse& response)
    217217{
     218    if (response.isNull())
     219        return 0;
     220
    218221    RefPtr<InspectorObject> responseObject = InspectorObject::create();
    219     if (response.isNull())
    220         return responseObject;
    221 
    222222    responseObject->setNumber("status", response.resourceLoadInfo() ? response.resourceLoadInfo()->httpStatusCode : response.httpStatusCode());
    223223    responseObject->setString("statusText", response.resourceLoadInfo() ? response.resourceLoadInfo()->httpStatusText : response.httpStatusText());
     
    271271    resourceObject->setString("type", cachedResourceTypeString(cachedResource));
    272272    resourceObject->setNumber("bodySize", cachedResource.encodedSize());
    273     resourceObject->setObject("response", buildObjectForResourceResponse(cachedResource.response()));
     273    RefPtr<InspectorObject> resourceResponse = buildObjectForResourceResponse(cachedResource.response());
     274    if (resourceResponse)
     275        resourceObject->setObject("response", resourceResponse);
    274276    return resourceObject;
    275277}
  • trunk/Source/WebCore/inspector/front-end/NetworkManager.js

    r82111 r83435  
    8686    _updateResourceWithResponse: function(resource, response)
    8787    {
    88         if (!("status" in response))
     88        if (!response)
    8989            return;
    9090
  • trunk/Source/WebCore/inspector/generate-inspector-idl

    r82847 r83435  
    131131            if ("parameters" in event):
    132132                for in_param in event["parameters"]:
    133                     params.append("out %s %s" % (param_type(in_param), in_param["name"]))
     133                    if ("optional" in in_param):
     134                        optional = " [optional]"
     135                    else:
     136                        optional = ""
     137                    params.append("out%s %s %s" % (optional, param_type(in_param), in_param["name"]))
    134138            output_file.write("\n        [event] void %s(%s);" % (event["name"], ", ".join(params)))
    135139    output_file.write("\n    };")
Note: See TracChangeset for help on using the changeset viewer.