// Licensed to the Software Freedom Conservancy (SFC) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The SFC licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

package org.openqa.selenium.logging.profiler;

import org.openqa.selenium.json.Json;

import java.util.TreeMap;

public class HttpProfilerLogEntry extends ProfilerLogEntry {

  public HttpProfilerLogEntry(String commandName, boolean isStart) {
    super(EventType.HTTP_COMMAND, constructMessage(EventType.HTTP_COMMAND, commandName, isStart));
  }

  private static String constructMessage(EventType eventType, String commandName, boolean isStart) {
    TreeMap<Object, Object> map = new TreeMap<>();
    map.put("event", eventType.toString());
    map.put("command", commandName);
    map.put("startorend", isStart ? "start" : "end");
    return new Json().toJson(map);
  }

}

@@ -848,74 +848,8 @@
 r;%0A%0A
-import org.openqa.selenium.json.Json;%0A%0Aimport java.util.TreeMap;%0A%0A
 publ
@@ -1188,75 +1188,228 @@
     
-TreeMap%3CObject, Object%3E map = new TreeMap%3C%3E();%0A    map.put(%22event%22,
+// We're going to make the assumption that command name is a simple string which doesn't need%0A    // escaping.%0A    return String.format(%0A        %22%7B%5C%22event%5C%22: %5C%22%25s%5C%22, %5C%22command%5C%22: %5C%22%25s%5C%22, %5C%22startorend%5C%22: %5C%22%25s%5C%22%7D%22,%0A       
  eve
@@ -1429,33 +1429,17 @@
 ng()
-);
+,
 %0A    
-map.put(%22command%22,
+   
  com
@@ -1450,36 +1450,17 @@
 Name
-);
+,
 %0A    
-map.put(%22startorend%22,
+   
  isS
@@ -1490,44 +1490,8 @@
 ;%0A  
-  return new Json().toJson(map);%0A  %7D%0A
+%7D
 %0A%7D%0A

Break dependency on profiler to the json package