Revert "FrameHost::SubresourceResponseStarted: s/ url / origin_of_final_url /."

This CL reverts r716451 (also minimally/partially reverting r724034 as
required).  The revert is needed because r716451 caused every blob load
(blobs see no certificate errors) to call RevokeUserAllowExceptions.

Bug: 1049625, 973885
Tbr: Nasko Oskov <[email protected]>
Tbr: Charlie Harrison <[email protected]>
Tbr: Alex Ilin <[email protected]>
No-Tree-Checks: true
Change-Id: Ie592ae6bc79820eea2230244f0abd890e279be4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2047355
Commit-Queue: John Budorick <[email protected]>
Reviewed-by: Alex Moshchuk <[email protected]>
Cr-Commit-Position: refs/heads/master@{#740011}
diff --git a/content/browser/frame_host/render_frame_host_delegate.h b/content/browser/frame_host/render_frame_host_delegate.h
index 5d07589..125045d 100644
--- a/content/browser/frame_host/render_frame_host_delegate.h
+++ b/content/browser/frame_host/render_frame_host_delegate.h
@@ -433,9 +433,8 @@
   virtual bool IsBeingDestroyed();
 
   // Notifies that the render frame started loading a subresource.
-  virtual void SubresourceResponseStarted(
-      const url::Origin& origin_of_final_response_url,
-      net::CertStatus cert_status) {}
+  virtual void SubresourceResponseStarted(const GURL& url,
+                                          net::CertStatus cert_status) {}
 
   // Notifies that the render finished loading a subresource for the frame
   // associated with |render_frame_host|.
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 4f756d8..d06304b 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -4824,10 +4824,9 @@
 }
 
 void RenderFrameHostImpl::SubresourceResponseStarted(
-    const url::Origin& origin_of_final_response_url,
+    const GURL& url,
     net::CertStatus cert_status) {
-  delegate_->SubresourceResponseStarted(origin_of_final_response_url,
-                                        cert_status);
+  delegate_->SubresourceResponseStarted(url, cert_status);
 }
 
 void RenderFrameHostImpl::ResourceLoadComplete(
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 9a0c14dc..74ec2d1 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -1627,9 +1627,8 @@
       mojo::PendingAssociatedRemote<mojom::NavigationClient> navigation_client,
       mojo::PendingRemote<blink::mojom::NavigationInitiator>
           navigation_initiator) override;
-  void SubresourceResponseStarted(
-      const url::Origin& origin_of_final_response_url,
-      net::CertStatus cert_status) override;
+  void SubresourceResponseStarted(const GURL& url,
+                                  net::CertStatus cert_status) override;
   void ResourceLoadComplete(
       blink::mojom::ResourceLoadInfoPtr resource_load_info) override;
   void DidChangeName(const std::string& name,
diff --git a/content/browser/ssl/ssl_manager.cc b/content/browser/ssl/ssl_manager.cc
index e68ce312..3195a33 100644
--- a/content/browser/ssl/ssl_manager.cc
+++ b/content/browser/ssl/ssl_manager.cc
@@ -312,19 +312,16 @@
   OnCertErrorInternal(std::move(handler));
 }
 
-void SSLManager::DidStartResourceResponse(
-    const url::Origin& origin_of_final_response_url,
-    bool has_certificate_errors) {
-  const std::string& scheme = origin_of_final_response_url.scheme();
-  const std::string& host = origin_of_final_response_url.host();
-
-  if (!GURL::SchemeIsCryptographic(scheme) || has_certificate_errors)
+void SSLManager::DidStartResourceResponse(const GURL& url,
+                                          bool has_certificate_errors) {
+  if (!url.SchemeIsCryptographic() || has_certificate_errors)
     return;
 
   // If the scheme is https: or wss and the cert did not have any errors, revoke
   // any previous decisions that have occurred.
-  if (!ssl_host_state_delegate_ || !ssl_host_state_delegate_->HasAllowException(
-                                       host, controller_->GetWebContents())) {
+  if (!ssl_host_state_delegate_ ||
+      !ssl_host_state_delegate_->HasAllowException(
+          url.host(), controller_->GetWebContents())) {
     return;
   }
 
@@ -332,7 +329,7 @@
   // clear out any exceptions that were made by the user for bad
   // certificates. This intentionally does not apply to cached resources
   // (see https://crbug.com/634553 for an explanation).
-  ssl_host_state_delegate_->RevokeUserAllowExceptions(host);
+  ssl_host_state_delegate_->RevokeUserAllowExceptions(url.host());
 }
 
 void SSLManager::OnCertErrorInternal(std::unique_ptr<SSLErrorHandler> handler) {
diff --git a/content/browser/ssl/ssl_manager.h b/content/browser/ssl/ssl_manager.h
index 669dc03a..fdf7eac 100644
--- a/content/browser/ssl/ssl_manager.h
+++ b/content/browser/ssl/ssl_manager.h
@@ -64,8 +64,7 @@
   NavigationControllerImpl* controller() { return controller_; }
 
   void DidCommitProvisionalLoad(const LoadCommittedDetails& details);
-  void DidStartResourceResponse(const url::Origin& origin_of_final_response_url,
-                                bool has_certificate_errors);
+  void DidStartResourceResponse(const GURL& url, bool has_certificate_errors);
 
   // The following methods are called when a page includes insecure
   // content. These methods update the SSLStatus on the NavigationEntry
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 975a63c..2ffa3da7 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4476,7 +4476,7 @@
   if (navigation_handle->IsInMainFrame() &&
       navigation_handle->GetNetErrorCode() == net::OK) {
     controller_.ssl_manager()->DidStartResourceResponse(
-        url::Origin::Create(navigation_handle->GetURL()),
+        navigation_handle->GetURL(),
         navigation_handle->GetSSLInfo().has_value()
             ? net::IsCertStatusError(
                   navigation_handle->GetSSLInfo()->cert_status)
@@ -4830,11 +4830,9 @@
   // AddNewContents method call.
 }
 
-void WebContentsImpl::SubresourceResponseStarted(
-    const url::Origin& origin_of_final_response_url,
-    net::CertStatus cert_status) {
-  controller_.ssl_manager()->DidStartResourceResponse(
-      origin_of_final_response_url, cert_status);
+void WebContentsImpl::SubresourceResponseStarted(const GURL& url,
+                                                 net::CertStatus cert_status) {
+  controller_.ssl_manager()->DidStartResourceResponse(url, cert_status);
   SetNotWaitingForResponse();
 }
 
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 63ad3ce..cd039f4 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -647,9 +647,8 @@
   base::android::ScopedJavaLocalRef<jobject> GetJavaRenderFrameHostDelegate()
       override;
 #endif
-  void SubresourceResponseStarted(
-      const url::Origin& origin_of_final_response_url,
-      net::CertStatus cert_status) override;
+  void SubresourceResponseStarted(const GURL& url,
+                                  net::CertStatus cert_status) override;
   void ResourceLoadComplete(
       RenderFrameHost* render_frame_host,
       const GlobalRequestID& request_id,
diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc
index 62cb386..1a9e325 100644
--- a/content/browser/web_contents/web_contents_impl_browsertest.cc
+++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
@@ -834,8 +834,7 @@
   ASSERT_EQ(2U, observer.resource_load_infos().size());
   const blink::mojom::ResourceLoadInfoPtr& page_load_info =
       observer.resource_load_infos()[0];
-  EXPECT_EQ(url::Origin::Create(page_destination_url),
-            page_load_info->origin_of_final_url);
+  EXPECT_EQ(page_destination_url, page_load_info->final_url);
   EXPECT_EQ(page_original_url, page_load_info->original_url);
 
   GURL image_destination_url(embedded_test_server()->GetURL("/blank.jpg"));
@@ -843,8 +842,7 @@
       embedded_test_server()->GetURL("/server-redirect?blank.jpg"));
   const blink::mojom::ResourceLoadInfoPtr& image_load_info =
       observer.resource_load_infos()[1];
-  EXPECT_EQ(url::Origin::Create(image_destination_url),
-            image_load_info->origin_of_final_url);
+  EXPECT_EQ(image_destination_url, image_load_info->final_url);
   EXPECT_EQ(image_original_url, image_load_info->original_url);
 }
 
@@ -921,8 +919,7 @@
       NavigateToURL(shell(), start_url, target_url /* expected_commit_url */));
 
   ASSERT_EQ(1U, observer.resource_load_infos().size());
-  EXPECT_EQ(url::Origin::Create(target_url),
-            observer.resource_load_infos()[0]->origin_of_final_url);
+  EXPECT_EQ(target_url, observer.resource_load_infos()[0]->final_url);
 
   ASSERT_EQ(2U, observer.resource_load_infos()[0]->redirect_info_chain.size());
   EXPECT_EQ(url::Origin::Create(intermediate_url),
@@ -955,8 +952,7 @@
   EXPECT_TRUE(NavigateToURL(shell(), url));
   ASSERT_EQ(2U, observer.resource_load_infos().size());
   EXPECT_EQ(url, observer.resource_load_infos()[0]->original_url);
-  EXPECT_EQ(url::Origin::Create(url),
-            observer.resource_load_infos()[0]->origin_of_final_url);
+  EXPECT_EQ(url, observer.resource_load_infos()[0]->final_url);
   EXPECT_TRUE(observer.resource_is_associated_with_main_frame()[0]);
   EXPECT_TRUE(observer.resource_is_associated_with_main_frame()[1]);
   observer.Reset();
@@ -966,10 +962,9 @@
   EXPECT_TRUE(NavigateToURL(shell(), data_url));
   ASSERT_EQ(3U, observer.resource_load_infos().size());
   EXPECT_EQ(data_url, observer.resource_load_infos()[0]->original_url);
-  EXPECT_TRUE(observer.resource_load_infos()[0]->origin_of_final_url.opaque());
+  EXPECT_EQ(data_url, observer.resource_load_infos()[0]->final_url);
   EXPECT_EQ(url, observer.resource_load_infos()[1]->original_url);
-  EXPECT_EQ(url::Origin::Create(url),
-            observer.resource_load_infos()[1]->origin_of_final_url);
+  EXPECT_EQ(url, observer.resource_load_infos()[1]->final_url);
   EXPECT_TRUE(observer.resource_is_associated_with_main_frame()[0]);
   EXPECT_FALSE(observer.resource_is_associated_with_main_frame()[1]);
   EXPECT_FALSE(observer.resource_is_associated_with_main_frame()[2]);