From e5cd7b5d0e5574b4af8e7d34e0a3f07c4033c05e Mon Sep 17 00:00:00 2001 From: "asanka@chromium.org" Date: Wed, 13 Apr 2011 15:35:20 +0000 Subject: Suppress login prompting for favicons. Depends on WebKit patch to add new TargetType. https://bugs.webkit.org/show_bug.cgi?id=57659 BUG=11961 TEST=browser_tests --gtest_filter=LoginPromptBrowserTest.NoLoginPromptForFavicon Review URL: http://codereview.chromium.org/6728038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81423 0039d316-1c4b-4281-b951-d872f2087c98 --- webkit/glue/alt_error_page_resource_fetcher.cc | 5 +++-- webkit/glue/image_resource_fetcher.cc | 9 ++++++--- webkit/glue/image_resource_fetcher.h | 3 ++- webkit/glue/resource_fetcher.cc | 14 +++++++++----- webkit/glue/resource_fetcher.h | 15 +++++++++++---- webkit/glue/resource_fetcher_unittest.cc | 17 +++++++++++------ webkit/glue/resource_type.h | 3 ++- webkit/glue/weburlloader_impl.cc | 2 ++ 8 files changed, 46 insertions(+), 22 deletions(-) (limited to 'webkit') diff --git a/webkit/glue/alt_error_page_resource_fetcher.cc b/webkit/glue/alt_error_page_resource_fetcher.cc index 4e1867d..da95e47 100644 --- a/webkit/glue/alt_error_page_resource_fetcher.cc +++ b/webkit/glue/alt_error_page_resource_fetcher.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -9,6 +9,7 @@ using WebKit::WebFrame; using WebKit::WebURLError; +using WebKit::WebURLRequest; using WebKit::WebURLResponse; namespace webkit_glue { @@ -26,7 +27,7 @@ AltErrorPageResourceFetcher::AltErrorPageResourceFetcher( callback_(callback), original_error_(original_error) { fetcher_.reset(new ResourceFetcherWithTimeout( - url, frame, kDownloadTimeoutSec, + url, frame, WebURLRequest::TargetIsMainFrame, kDownloadTimeoutSec, NewCallback(this, &AltErrorPageResourceFetcher::OnURLFetchComplete))); } diff --git a/webkit/glue/image_resource_fetcher.cc b/webkit/glue/image_resource_fetcher.cc index 65d80bd..6a37a34 100644 --- a/webkit/glue/image_resource_fetcher.cc +++ b/webkit/glue/image_resource_fetcher.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -11,6 +11,8 @@ #include "third_party/skia/include/core/SkBitmap.h" using WebKit::WebFrame; +using WebKit::WebURLRequest; +using WebKit::WebURLResponse; namespace webkit_glue { @@ -19,13 +21,14 @@ ImageResourceFetcher::ImageResourceFetcher( WebFrame* frame, int id, int image_size, + WebURLRequest::TargetType target_type, Callback* callback) : callback_(callback), id_(id), image_url_(image_url), image_size_(image_size) { fetcher_.reset(new ResourceFetcher( - image_url, frame, + image_url, frame, target_type, NewCallback(this, &ImageResourceFetcher::OnURLFetchComplete))); } @@ -35,7 +38,7 @@ ImageResourceFetcher::~ImageResourceFetcher() { } void ImageResourceFetcher::OnURLFetchComplete( - const WebKit::WebURLResponse& response, + const WebURLResponse& response, const std::string& data) { SkBitmap bitmap; if (!response.isNull() && response.httpStatusCode() == 200) { diff --git a/webkit/glue/image_resource_fetcher.h b/webkit/glue/image_resource_fetcher.h index 8c6f70c..ff69bdb 100644 --- a/webkit/glue/image_resource_fetcher.h +++ b/webkit/glue/image_resource_fetcher.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -24,6 +24,7 @@ class ImageResourceFetcher { WebKit::WebFrame* frame, int id, int image_size, + WebKit::WebURLRequest::TargetType target_type, Callback* callback); virtual ~ImageResourceFetcher(); diff --git a/webkit/glue/resource_fetcher.cc b/webkit/glue/resource_fetcher.cc index 2e2fc74..2b3d47f 100644 --- a/webkit/glue/resource_fetcher.cc +++ b/webkit/glue/resource_fetcher.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -23,10 +23,12 @@ using WebKit::WebURLResponse; namespace webkit_glue { ResourceFetcher::ResourceFetcher(const GURL& url, WebFrame* frame, - Callback* c) + WebURLRequest::TargetType target_type, + Callback* callback) : url_(url), + target_type_(target_type), completed_(false), - callback_(c) { + callback_(callback) { // Can't do anything without a frame. However, delegate can be NULL (so we // can do a http request and ignore the results). DCHECK(frame); @@ -47,6 +49,7 @@ void ResourceFetcher::Cancel() { void ResourceFetcher::Start(WebFrame* frame) { WebURLRequest request(url_); + request.setTargetType(target_type_); frame->dispatchWillSendRequest(request); loader_.reset(WebKit::webKitClient()->createURLLoader()); @@ -121,8 +124,9 @@ void ResourceFetcher::didFail(WebURLLoader* loader, const WebURLError& error) { // A resource fetcher with a timeout ResourceFetcherWithTimeout::ResourceFetcherWithTimeout( - const GURL& url, WebFrame* frame, int timeout_secs, Callback* c) - : ResourceFetcher(url, frame, c) { + const GURL& url, WebFrame* frame, WebURLRequest::TargetType target_type, + int timeout_secs, Callback* callback) + : ResourceFetcher(url, frame, target_type, callback) { timeout_timer_.Start(TimeDelta::FromSeconds(timeout_secs), this, &ResourceFetcherWithTimeout::TimeoutFired); } diff --git a/webkit/glue/resource_fetcher.h b/webkit/glue/resource_fetcher.h index 908658e..1fba6d7 100644 --- a/webkit/glue/resource_fetcher.h +++ b/webkit/glue/resource_fetcher.h @@ -20,6 +20,7 @@ #include "base/timer.h" #include "googleurl/src/gurl.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLLoaderClient.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLResponse.h" class GURL; @@ -27,7 +28,6 @@ class GURL; namespace WebKit { class WebFrame; class WebURLLoader; -class WebURLRequest; struct WebURLError; } @@ -43,7 +43,8 @@ class ResourceFetcher : public WebKit::WebURLLoaderClient { // We need a frame to make requests. ResourceFetcher( - const GURL& url, WebKit::WebFrame* frame, Callback* callback); + const GURL& url, WebKit::WebFrame* frame, + WebKit::WebURLRequest::TargetType target_type, Callback* callback); ~ResourceFetcher(); // Stop the request and don't call the callback. @@ -77,6 +78,9 @@ class ResourceFetcher : public WebKit::WebURLLoaderClient { // URL we're fetching GURL url_; + // Target type + WebKit::WebURLRequest::TargetType target_type_; + // A copy of the original resource response WebKit::WebURLResponse response_; @@ -104,8 +108,11 @@ class ResourceFetcher : public WebKit::WebURLLoaderClient { // A resource fetcher with a timeout class ResourceFetcherWithTimeout : public ResourceFetcher { public: - ResourceFetcherWithTimeout(const GURL& url, WebKit::WebFrame* frame, - int timeout_secs, Callback* c); + ResourceFetcherWithTimeout(const GURL& url, + WebKit::WebFrame* frame, + WebKit::WebURLRequest::TargetType target_type, + int timeout_secs, + Callback* callback); virtual ~ResourceFetcherWithTimeout(); private: diff --git a/webkit/glue/resource_fetcher_unittest.cc b/webkit/glue/resource_fetcher_unittest.cc index 965d285..2888a94 100644 --- a/webkit/glue/resource_fetcher_unittest.cc +++ b/webkit/glue/resource_fetcher_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -15,6 +15,7 @@ #include "webkit/tools/test_shell/test_shell_test.h" using WebKit::WebFrame; +using WebKit::WebURLRequest; using WebKit::WebURLResponse; using webkit_glue::ResourceFetcher; using webkit_glue::ResourceFetcherWithTimeout; @@ -102,7 +103,7 @@ TEST_F(ResourceFetcherTests, FLAKY_ResourceFetcherDownload) { GURL url(test_server_.GetURL("files/test_shell/index.html")); scoped_ptr delegate(new FetcherDelegate); scoped_ptr fetcher(new ResourceFetcher( - url, frame, delegate->NewCallback())); + url, frame, WebURLRequest::TargetIsMainFrame, delegate->NewCallback())); delegate->WaitForResponse(); @@ -114,7 +115,9 @@ TEST_F(ResourceFetcherTests, FLAKY_ResourceFetcherDownload) { // Test 404 response. url = test_server_.GetURL("files/thisfiledoesntexist.html"); delegate.reset(new FetcherDelegate); - fetcher.reset(new ResourceFetcher(url, frame, delegate->NewCallback())); + fetcher.reset(new ResourceFetcher(url, frame, + WebURLRequest::TargetIsMainFrame, + delegate->NewCallback())); delegate->WaitForResponse(); @@ -133,7 +136,7 @@ TEST_F(ResourceFetcherTests, FLAKY_ResourceFetcherDidFail) { GURL url("http://localhost:1339/doesnotexist"); scoped_ptr delegate(new FetcherDelegate); scoped_ptr fetcher(new ResourceFetcher( - url, frame, delegate->NewCallback())); + url, frame, WebURLRequest::TargetIsMainFrame, delegate->NewCallback())); delegate->WaitForResponse(); @@ -155,7 +158,8 @@ TEST_F(ResourceFetcherTests, ResourceFetcherTimeout) { GURL url(test_server_.GetURL("slow?1")); scoped_ptr delegate(new FetcherDelegate); scoped_ptr fetcher(new ResourceFetcherWithTimeout( - url, frame, 0, delegate->NewCallback())); + url, frame, WebURLRequest::TargetIsMainFrame, + 0, delegate->NewCallback())); delegate->WaitForResponse(); @@ -195,7 +199,8 @@ TEST_F(ResourceFetcherTests, ResourceFetcherDeletedInCallback) { GURL url(test_server_.GetURL("slow?1")); scoped_ptr delegate(new EvilFetcherDelegate); scoped_ptr fetcher(new ResourceFetcherWithTimeout( - url, frame, 0, delegate->NewCallback())); + url, frame, WebURLRequest::TargetIsMainFrame, + 0, delegate->NewCallback())); delegate->SetFetcher(fetcher.release()); delegate->WaitForResponse(); diff --git a/webkit/glue/resource_type.h b/webkit/glue/resource_type.h index 1de4fd2..224656a 100644 --- a/webkit/glue/resource_type.h +++ b/webkit/glue/resource_type.h @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -23,6 +23,7 @@ class ResourceType { WORKER, // the main resource of a dedicated worker. SHARED_WORKER, // the main resource of a shared worker. PREFETCH, // an explicitly requested prefetch + FAVICON, // a favicon LAST_TYPE // Place holder so we don't need to change ValidType // everytime. }; diff --git a/webkit/glue/weburlloader_impl.cc b/webkit/glue/weburlloader_impl.cc index c3d79be..bb7bf68 100644 --- a/webkit/glue/weburlloader_impl.cc +++ b/webkit/glue/weburlloader_impl.cc @@ -135,6 +135,8 @@ ResourceType::Type FromTargetType(WebURLRequest::TargetType type) { return ResourceType::SHARED_WORKER; case WebURLRequest::TargetIsPrefetch: return ResourceType::PREFETCH; + case WebURLRequest::TargetIsFavicon: + return ResourceType::FAVICON; default: NOTREACHED(); return ResourceType::SUB_RESOURCE; -- cgit v1.1