summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-11 03:27:09 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-11 03:27:09 +0000
commitef2bf421b04de3134cd7c02aac40a5565ef24dd9 (patch)
tree5bf90cca0bd015c23e843614ebf2e9f99cb8cd99 /webkit
parent280e9b5d4b2fb0fe14824e526521710a658bce56 (diff)
downloadchromium_src-ef2bf421b04de3134cd7c02aac40a5565ef24dd9.zip
chromium_src-ef2bf421b04de3134cd7c02aac40a5565ef24dd9.tar.gz
chromium_src-ef2bf421b04de3134cd7c02aac40a5565ef24dd9.tar.bz2
Stop refcounting URLRequestContext.
While doing so, fix a few issues with the code like ordering of URLRequestContext to ensure correct destruction order. Also fix const correctness in some places. BUG=58859 TEST=none TBR=willchan Review URL: https://chromiumcodereview.appspot.com/10299002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136497 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/appcache/appcache_update_job_unittest.cc10
-rw-r--r--webkit/fileapi/file_system_operation_write_unittest.cc73
-rw-r--r--webkit/tools/test_shell/simple_resource_loader_bridge.cc4
-rw-r--r--webkit/tools/test_shell/simple_socket_stream_bridge.cc7
-rw-r--r--webkit/tools/test_shell/test_shell_request_context.h6
5 files changed, 43 insertions, 57 deletions
diff --git a/webkit/appcache/appcache_update_job_unittest.cc b/webkit/appcache/appcache_update_job_unittest.cc
index 604eaf1..123a563 100644
--- a/webkit/appcache/appcache_update_job_unittest.cc
+++ b/webkit/appcache/appcache_update_job_unittest.cc
@@ -536,8 +536,8 @@ class IOThread : public base::Thread {
Stop();
}
- const scoped_refptr<net::URLRequestContext>& request_context() {
- return request_context_;
+ net::URLRequestContext* request_context() {
+ return request_context_.get();
}
void SetNewJobFactory(net::URLRequestJobFactory* job_factory) {
@@ -550,18 +550,18 @@ class IOThread : public base::Thread {
job_factory_.reset(new net::URLRequestJobFactory);
job_factory_->SetProtocolHandler("http", new MockHttpServerJobFactory);
job_factory_->SetProtocolHandler("https", new MockHttpServerJobFactory);
- request_context_ = new TestURLRequestContext();
+ request_context_.reset(new TestURLRequestContext());
request_context_->set_job_factory(job_factory_.get());
}
virtual void CleanUp() {
- request_context_ = NULL;
+ request_context_.reset();
job_factory_.reset();
}
private:
scoped_ptr<net::URLRequestJobFactory> job_factory_;
- scoped_refptr<net::URLRequestContext> request_context_;
+ scoped_ptr<net::URLRequestContext> request_context_;
};
class AppCacheUpdateJobTest : public testing::Test,
diff --git a/webkit/fileapi/file_system_operation_write_unittest.cc b/webkit/fileapi/file_system_operation_write_unittest.cc
index 5ba14c5..2af53ec 100644
--- a/webkit/fileapi/file_system_operation_write_unittest.cc
+++ b/webkit/fileapi/file_system_operation_write_unittest.cc
@@ -154,13 +154,12 @@ class TestURLRequestContext : public net::URLRequestContext {
TestURLRequestContext()
: blob_storage_controller_(new webkit_blob::BlobStorageController) {}
+ virtual ~TestURLRequestContext() {}
+
webkit_blob::BlobStorageController* blob_storage_controller() const {
return blob_storage_controller_.get();
}
- protected:
- virtual ~TestURLRequestContext() {}
-
private:
scoped_ptr<webkit_blob::BlobStorageController> blob_storage_controller_;
};
@@ -211,16 +210,15 @@ TEST_F(FileSystemOperationWriteTest, TestWriteSuccess) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("Hello, world!\n");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
- operation()->Write(url_request_context, URLForPath(virtual_path_), blob_url,
+ operation()->Write(&url_request_context, URLForPath(virtual_path_), blob_url,
0, RecordWriteCallback());
MessageLoop::current()->Run();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
EXPECT_EQ(14, bytes_written());
EXPECT_EQ(base::PLATFORM_FILE_OK, status());
@@ -232,16 +230,15 @@ TEST_F(FileSystemOperationWriteTest, TestWriteZero) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
- operation()->Write(url_request_context, URLForPath(virtual_path_),
+ operation()->Write(&url_request_context, URLForPath(virtual_path_),
blob_url, 0, RecordWriteCallback());
MessageLoop::current()->Run();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
EXPECT_EQ(0, bytes_written());
EXPECT_EQ(base::PLATFORM_FILE_OK, status());
@@ -249,10 +246,9 @@ TEST_F(FileSystemOperationWriteTest, TestWriteZero) {
}
TEST_F(FileSystemOperationWriteTest, TestWriteInvalidBlobUrl) {
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
+ TestURLRequestContext url_request_context;
- operation()->Write(url_request_context, URLForPath(virtual_path_),
+ operation()->Write(&url_request_context, URLForPath(virtual_path_),
GURL("blob:invalid"), 0, RecordWriteCallback());
MessageLoop::current()->Run();
@@ -266,17 +262,16 @@ TEST_F(FileSystemOperationWriteTest, TestWriteInvalidFile) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("It\'ll not be written.");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
- operation()->Write(url_request_context,
+ operation()->Write(&url_request_context,
URLForPath(FilePath(FILE_PATH_LITERAL("nonexist"))),
blob_url, 0, RecordWriteCallback());
MessageLoop::current()->Run();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
EXPECT_EQ(0, bytes_written());
EXPECT_EQ(base::PLATFORM_FILE_ERROR_NOT_FOUND, status());
@@ -294,16 +289,15 @@ TEST_F(FileSystemOperationWriteTest, TestWriteDir) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("It\'ll not be written, too.");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
- operation()->Write(url_request_context, URLForPath(virtual_subdir_path),
+ operation()->Write(&url_request_context, URLForPath(virtual_subdir_path),
blob_url, 0, RecordWriteCallback());
MessageLoop::current()->Run();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
EXPECT_EQ(0, bytes_written());
EXPECT_EQ(base::PLATFORM_FILE_ERROR_ACCESS_DENIED, status());
@@ -315,17 +309,16 @@ TEST_F(FileSystemOperationWriteTest, TestWriteFailureByQuota) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("Hello, world!\n");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
quota_manager_->set_quota(10);
- operation()->Write(url_request_context, URLForPath(virtual_path_), blob_url,
+ operation()->Write(&url_request_context, URLForPath(virtual_path_), blob_url,
0, RecordWriteCallback());
MessageLoop::current()->Run();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
EXPECT_EQ(10, bytes_written());
EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, status());
@@ -337,13 +330,12 @@ TEST_F(FileSystemOperationWriteTest, TestImmediateCancelSuccessfulWrite) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("Hello, world!\n");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
FileSystemOperationInterface* write_operation = operation();
- write_operation->Write(url_request_context, URLForPath(virtual_path_),
+ write_operation->Write(&url_request_context, URLForPath(virtual_path_),
blob_url, 0, RecordWriteCallback());
write_operation->Cancel(RecordCancelCallback());
// We use RunAllPendings() instead of Run() here, because we won't dispatch
@@ -351,7 +343,7 @@ TEST_F(FileSystemOperationWriteTest, TestImmediateCancelSuccessfulWrite) {
// to run another write cycle.
MessageLoop::current()->RunAllPending();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
// Issued Cancel() before receiving any response from Write(),
// so nothing should have happen.
@@ -366,13 +358,12 @@ TEST_F(FileSystemOperationWriteTest, TestImmediateCancelFailingWrite) {
scoped_refptr<webkit_blob::BlobData> blob_data(new webkit_blob::BlobData());
blob_data->AppendData("It\'ll not be written.");
- scoped_refptr<TestURLRequestContext> url_request_context(
- new TestURLRequestContext());
- url_request_context->blob_storage_controller()->AddFinishedBlob(
+ TestURLRequestContext url_request_context;
+ url_request_context.blob_storage_controller()->AddFinishedBlob(
blob_url, blob_data);
FileSystemOperationInterface* write_operation = operation();
- write_operation->Write(url_request_context,
+ write_operation->Write(&url_request_context,
URLForPath(FilePath(FILE_PATH_LITERAL("nonexist"))),
blob_url, 0, RecordWriteCallback());
write_operation->Cancel(RecordCancelCallback());
@@ -381,7 +372,7 @@ TEST_F(FileSystemOperationWriteTest, TestImmediateCancelFailingWrite) {
// to run another write cycle.
MessageLoop::current()->RunAllPending();
- url_request_context->blob_storage_controller()->RemoveBlob(blob_url);
+ url_request_context.blob_storage_controller()->RemoveBlob(blob_url);
// Issued Cancel() before receiving any response from Write(),
// so nothing should have happen.
diff --git a/webkit/tools/test_shell/simple_resource_loader_bridge.cc b/webkit/tools/test_shell/simple_resource_loader_bridge.cc
index 074580d..450cbee 100644
--- a/webkit/tools/test_shell/simple_resource_loader_bridge.cc
+++ b/webkit/tools/test_shell/simple_resource_loader_bridge.cc
@@ -217,8 +217,6 @@ class IOThread : public base::Thread {
g_request_context = new TestShellRequestContext();
}
- g_request_context->AddRef();
-
g_network_delegate = new TestShellNetworkDelegate();
g_request_context->set_network_delegate(g_network_delegate);
@@ -241,7 +239,7 @@ class IOThread : public base::Thread {
if (g_request_context) {
g_request_context->set_network_delegate(NULL);
- g_request_context->Release();
+ delete g_request_context;
g_request_context = NULL;
}
diff --git a/webkit/tools/test_shell/simple_socket_stream_bridge.cc b/webkit/tools/test_shell/simple_socket_stream_bridge.cc
index 0d52ea2..05c9e74d 100644
--- a/webkit/tools/test_shell/simple_socket_stream_bridge.cc
+++ b/webkit/tools/test_shell/simple_socket_stream_bridge.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 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.
@@ -223,14 +223,11 @@ void WebSocketStreamHandleBridgeImpl::DoOnClose() {
void SimpleSocketStreamBridge::InitializeOnIOThread(
net::URLRequestContext* request_context) {
g_io_thread = MessageLoop::current();
- if ((g_request_context = request_context))
- g_request_context->AddRef();
+ g_request_context = request_context;
}
void SimpleSocketStreamBridge::Cleanup() {
g_io_thread = NULL;
- if (g_request_context)
- g_request_context->Release();
g_request_context = NULL;
}
diff --git a/webkit/tools/test_shell/test_shell_request_context.h b/webkit/tools/test_shell/test_shell_request_context.h
index 0eb29cf..946248f 100644
--- a/webkit/tools/test_shell/test_shell_request_context.h
+++ b/webkit/tools/test_shell/test_shell_request_context.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 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.
@@ -32,6 +32,8 @@ class TestShellRequestContext : public net::URLRequestContext {
net::HttpCache::Mode cache_mode,
bool no_proxy);
+ virtual ~TestShellRequestContext();
+
virtual const std::string& GetUserAgent(const GURL& url) const OVERRIDE;
webkit_blob::BlobStorageController* blob_storage_controller() const {
@@ -43,8 +45,6 @@ class TestShellRequestContext : public net::URLRequestContext {
}
private:
- virtual ~TestShellRequestContext();
-
void Init(const FilePath& cache_path, net::HttpCache::Mode cache_mode,
bool no_proxy);