| Index: tools/gn/function_toolchain.cc | 
| diff --git a/tools/gn/function_toolchain.cc b/tools/gn/function_toolchain.cc | 
| index 05c764bfbdf65ab5524c8c15ae48221b7a2d63dc..baac8ee7dfd57b995efad544eda5b5c88c2eb643 100644 | 
| --- a/tools/gn/function_toolchain.cc | 
| +++ b/tools/gn/function_toolchain.cc | 
| @@ -531,6 +531,7 @@ Tool types | 
| Other tools: | 
| "stamp": Tool for creating stamp files | 
| "copy": Tool to copy files. | 
| +      "action": Defaults for actions | 
|  | 
| Platform specific tools: | 
| "copy_bundle_data": [iOS, OS X] Tool to copy files in a bundle. | 
| @@ -539,7 +540,7 @@ Tool types | 
| Tool variables | 
|  | 
| command  [string with substitutions] | 
| -        Valid for: all tools (required) | 
| +        Valid for: all tools except "action" (required) | 
|  | 
| The command to run. | 
|  | 
| @@ -639,6 +640,7 @@ Tool variables | 
| ] | 
|  | 
| pool [label, optional] | 
| +        Valid for: all tools (optional) | 
|  | 
| Label of the pool to use for the tool. Pools are used to limit the | 
| number of tasks that can execute concurrently during the build. | 
| @@ -709,13 +711,13 @@ Tool variables | 
| restat = true | 
|  | 
| rspfile  [string with substitutions] | 
| -        Valid for: all tools (optional) | 
| +        Valid for: all tools except "action" (optional) | 
|  | 
| Name of the response file. If empty, no response file will be | 
| used. See "rspfile_content". | 
|  | 
| rspfile_content  [string with substitutions] | 
| -        Valid for: all tools (required when "rspfile" is specified) | 
| +        Valid for: all tools except "action" (required when "rspfile" is used) | 
|  | 
| The contents to be written to the response file. This may include all | 
| or part of the command to send to the tool which allows you to get | 
| @@ -1051,12 +1053,12 @@ Value RunTool(Scope* scope, | 
| return Value(); | 
| } | 
|  | 
| -  if (tool_type != Toolchain::TYPE_COPY && | 
| -      tool_type != Toolchain::TYPE_STAMP && | 
| +  if (tool_type != Toolchain::TYPE_COPY && tool_type != Toolchain::TYPE_STAMP && | 
| tool_type != Toolchain::TYPE_COPY_BUNDLE_DATA && | 
| -      tool_type != Toolchain::TYPE_COMPILE_XCASSETS) { | 
| +      tool_type != Toolchain::TYPE_COMPILE_XCASSETS && | 
| +      tool_type != Toolchain::TYPE_ACTION) { | 
| // All tools should have outputs, except the copy, stamp, copy_bundle_data | 
| -    // and compile_xcassets tools that generate their outputs internally. | 
| +    // compile_xcassets and action tools that generate their outputs internally. | 
| if (!ReadPatternList(&block_scope, "outputs", subst_output_validator, | 
| tool.get(), &Tool::set_outputs, err) || | 
| !ValidateOutputs(tool.get(), err)) | 
|  |