Matching against full URL in network view filter, but only if the filter
is itself a (partial) URL.

Bug: 1104188
Change-Id: I236d51183e008d4b59fc28384732746f45d1d2f8
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3157955
Reviewed-by: Simon Zünd <[email protected]>
Commit-Queue: Danil Somsikov <[email protected]>
diff --git a/front_end/panels/network/NetworkLogView.ts b/front_end/panels/network/NetworkLogView.ts
index 9b5be43..8f6651e 100644
--- a/front_end/panels/network/NetworkLogView.ts
+++ b/front_end/panels/network/NetworkLogView.ts
@@ -1717,6 +1717,15 @@
     return true;
   }
 
+  private isValidUrl(url: string): boolean {
+    try {
+      new URL(url);
+      return true;
+    } catch (e) {
+      return false;
+    }
+  }
+
   private parseFilterQuery(query: string, invert: boolean): void {
     // A query string can have multiple filters, some of them regular
     // expressions, some not. Each one of those filters can be negated with a
@@ -1734,6 +1743,8 @@
             NetworkLogView.requestPathFilter.bind(null, new RegExp(defaultText, 'i'));
       } else if (descriptor.regex) {
         filter = NetworkLogView.requestPathFilter.bind(null, (regex as RegExp));
+      } else if (this.isValidUrl(text)) {
+        filter = NetworkLogView.requestUrlFilter.bind(null, text);
       } else {
         filter = NetworkLogView.requestPathFilter.bind(
             null, new RegExp(Platform.StringUtilities.escapeForRegExp(text), 'i'));