Commit 4f950783 authored by pfeldman's avatar pfeldman Committed by Commit bot

DevTools: remove usage and quota getter from the protocol handler.

Review URL: https://codereview.chromium.org/977553003

Cr-Commit-Position: refs/heads/master@{#319026}
parent 4c04a16b
...@@ -96,20 +96,6 @@ class DevToolsProtocolTest : public ContentBrowserTest, ...@@ -96,20 +96,6 @@ class DevToolsProtocolTest : public ContentBrowserTest,
} }
}; };
IN_PROC_BROWSER_TEST_F(DevToolsProtocolTest, QueryUsageAndQuota) {
scoped_ptr<base::DictionaryValue> params(new base::DictionaryValue);
params->SetString("securityOrigin", "http://example.com");
SendCommand("Page.queryUsageAndQuota", params.Pass());
EXPECT_TRUE(HasValue("quota.persistent"));
EXPECT_TRUE(HasValue("quota.temporary"));
EXPECT_TRUE(HasListItem("usage.temporary", "id", "appcache"));
EXPECT_TRUE(HasListItem("usage.temporary", "id", "database"));
EXPECT_TRUE(HasListItem("usage.temporary", "id", "indexeddatabase"));
EXPECT_TRUE(HasListItem("usage.temporary", "id", "filesystem"));
EXPECT_TRUE(HasListItem("usage.persistent", "id", "filesystem"));
}
class CaptureScreenshotTest : public DevToolsProtocolTest { class CaptureScreenshotTest : public DevToolsProtocolTest {
private: private:
#if !defined(OS_ANDROID) #if !defined(OS_ANDROID)
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include "base/threading/worker_pool.h" #include "base/threading/worker_pool.h"
#include "content/browser/devtools/protocol/color_picker.h" #include "content/browser/devtools/protocol/color_picker.h"
#include "content/browser/devtools/protocol/frame_recorder.h" #include "content/browser/devtools/protocol/frame_recorder.h"
#include "content/browser/devtools/protocol/usage_and_quota_query.h"
#include "content/browser/geolocation/geolocation_service_context.h" #include "content/browser/geolocation/geolocation_service_context.h"
#include "content/browser/renderer_host/render_view_host_impl.h" #include "content/browser/renderer_host/render_view_host_impl.h"
#include "content/browser/renderer_host/render_widget_host_view_base.h" #include "content/browser/renderer_host/render_widget_host_view_base.h"
...@@ -27,7 +26,6 @@ ...@@ -27,7 +26,6 @@
#include "content/public/browser/web_contents_delegate.h" #include "content/public/browser/web_contents_delegate.h"
#include "content/public/common/referrer.h" #include "content/public/common/referrer.h"
#include "content/public/common/url_constants.h" #include "content/public/common/url_constants.h"
#include "storage/browser/quota/quota_manager.h"
#include "third_party/WebKit/public/platform/WebScreenInfo.h" #include "third_party/WebKit/public/platform/WebScreenInfo.h"
#include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkBitmap.h"
#include "ui/base/page_transition_types.h" #include "ui/base/page_transition_types.h"
...@@ -65,24 +63,6 @@ ui::GestureProviderConfigType TouchEmulationConfigurationToType( ...@@ -65,24 +63,6 @@ ui::GestureProviderConfigType TouchEmulationConfigurationToType(
return result; return result;
} }
void QueryUsageAndQuotaCompletedOnIOThread(
const UsageAndQuotaQuery::Callback& callback,
scoped_refptr<QueryUsageAndQuotaResponse> response) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(callback, response));
}
void QueryUsageAndQuotaOnIOThread(
scoped_refptr<storage::QuotaManager> quota_manager,
const GURL& security_origin,
const UsageAndQuotaQuery::Callback& callback) {
new UsageAndQuotaQuery(
quota_manager,
security_origin,
base::Bind(&QueryUsageAndQuotaCompletedOnIOThread,
callback));
}
std::string EncodeScreencastFrame(const SkBitmap& bitmap, std::string EncodeScreencastFrame(const SkBitmap& bitmap,
const std::string& format, const std::string& format,
int quality) { int quality) {
...@@ -449,21 +429,6 @@ Response PageHandler::HandleJavaScriptDialog(bool accept, ...@@ -449,21 +429,6 @@ Response PageHandler::HandleJavaScriptDialog(bool accept,
Response PageHandler::QueryUsageAndQuota(DevToolsCommandId command_id, Response PageHandler::QueryUsageAndQuota(DevToolsCommandId command_id,
const std::string& security_origin) { const std::string& security_origin) {
if (!host_)
return Response::InternalError("Could not connect to view");
scoped_refptr<storage::QuotaManager> quota_manager =
host_->GetProcess()->GetStoragePartition()->GetQuotaManager();
BrowserThread::PostTask(
BrowserThread::IO,
FROM_HERE,
base::Bind(&QueryUsageAndQuotaOnIOThread,
quota_manager,
GURL(security_origin),
base::Bind(&PageHandler::QueryUsageAndQuotaCompleted,
weak_factory_.GetWeakPtr(),
command_id)));
return Response::OK(); return Response::OK();
} }
...@@ -634,12 +599,6 @@ void PageHandler::OnFramesRecorded( ...@@ -634,12 +599,6 @@ void PageHandler::OnFramesRecorded(
client_->SendStopRecordingFramesResponse(command_id, response_data); client_->SendStopRecordingFramesResponse(command_id, response_data);
} }
void PageHandler::QueryUsageAndQuotaCompleted(
DevToolsCommandId command_id,
scoped_refptr<QueryUsageAndQuotaResponse> response_data) {
client_->SendQueryUsageAndQuotaResponse(command_id, response_data);
}
} // namespace page } // namespace page
} // namespace devtools } // namespace devtools
} // namespace content } // namespace content
...@@ -109,10 +109,6 @@ class PageHandler { ...@@ -109,10 +109,6 @@ class PageHandler {
DevToolsCommandId command_id, DevToolsCommandId command_id,
scoped_refptr<StopRecordingFramesResponse> response_data); scoped_refptr<StopRecordingFramesResponse> response_data);
void QueryUsageAndQuotaCompleted(
DevToolsCommandId command_id,
scoped_refptr<QueryUsageAndQuotaResponse> response);
bool enabled_; bool enabled_;
bool touch_emulation_enabled_; bool touch_emulation_enabled_;
std::string touch_emulation_configuration_; std::string touch_emulation_configuration_;
......
// Copyright 2014 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.
#include "content/browser/devtools/protocol/usage_and_quota_query.h"
#include "net/base/net_util.h"
namespace content {
namespace devtools {
namespace page {
UsageAndQuotaQuery::UsageAndQuotaQuery(
scoped_refptr<storage::QuotaManager> quota_manager,
const GURL& security_origin,
const Callback& callback)
: quota_manager_(quota_manager),
security_origin_(security_origin),
callback_(callback),
temporary_quota_(0.0),
persistent_quota_(0.0) {
AddRef();
quota_manager->GetUsageAndQuotaForWebApps(
security_origin,
storage::kStorageTypeTemporary,
base::Bind(&UsageAndQuotaQuery::DidGetTemporaryQuota, this));
quota_manager->GetPersistentHostQuota(
net::GetHostOrSpecFromURL(security_origin),
base::Bind(&UsageAndQuotaQuery::DidGetPersistentQuota, this));
GetHostUsage(&temporary_usage_, storage::kStorageTypeTemporary);
GetHostUsage(&persistent_usage_, storage::kStorageTypePersistent);
GetHostUsage(&syncable_usage_, storage::kStorageTypeSyncable);
Release();
}
UsageAndQuotaQuery::~UsageAndQuotaQuery() {
callback_.Run(QueryUsageAndQuotaResponse::Create()
->set_quota(Quota::Create()->set_temporary(temporary_quota_)
->set_persistent(persistent_quota_))
->set_usage(Usage::Create()->set_temporary(temporary_usage_)
->set_persistent(persistent_usage_)
->set_syncable(syncable_usage_)));
}
void UsageAndQuotaQuery::DidGetTemporaryQuota(storage::QuotaStatusCode status,
int64 used_bytes,
int64 quota_in_bytes) {
if (status == storage::kQuotaStatusOk)
temporary_quota_ = quota_in_bytes;
}
void UsageAndQuotaQuery::DidGetPersistentQuota(storage::QuotaStatusCode status,
int64 value) {
if (status == storage::kQuotaStatusOk)
persistent_quota_ = value;
}
void UsageAndQuotaQuery::GetHostUsage(UsageItems* list,
storage::StorageType storage_type) {
GetUsageForClient(list, storage_type, storage::QuotaClient::kFileSystem,
usage_item::kIdFilesystem);
GetUsageForClient(list, storage_type, storage::QuotaClient::kDatabase,
usage_item::kIdDatabase);
GetUsageForClient(list, storage_type, storage::QuotaClient::kAppcache,
usage_item::kIdAppcache);
GetUsageForClient(list, storage_type, storage::QuotaClient::kIndexedDatabase,
usage_item::kIdIndexeddatabase);
}
void UsageAndQuotaQuery::GetUsageForClient(UsageItems* list,
storage::StorageType storage_type,
storage::QuotaClient::ID client_id,
const std::string& client_name) {
if (!quota_manager_->IsTrackingHostUsage(storage_type, client_id))
return;
quota_manager_->GetHostUsage(
net::GetHostOrSpecFromURL(security_origin_),
storage_type,
client_id,
base::Bind(&UsageAndQuotaQuery::DidGetUsageForClient,
this, list, client_name));
}
void UsageAndQuotaQuery::DidGetUsageForClient(UsageItems* list,
const std::string& client_name,
int64 value) {
list->push_back(UsageItem::Create()->set_id(client_name)->set_value(value));
}
} // namespace page
} // namespace devtools
} // namespace content
// Copyright 2014 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.
#ifndef CONTENT_BROWSER_DEVTOOLS_PROTOCOL_USAGE_AND_QUOTA_QUERY_H_
#define CONTENT_BROWSER_DEVTOOLS_PROTOCOL_USAGE_AND_QUOTA_QUERY_H_
#include "content/browser/devtools/protocol/devtools_protocol_handler.h"
#include "storage/browser/quota/quota_manager.h"
namespace content {
namespace devtools {
namespace page {
// This class can only be used on IO thread.
class UsageAndQuotaQuery : public base::RefCounted<UsageAndQuotaQuery> {
public:
using Callback =
base::Callback<void(scoped_refptr<QueryUsageAndQuotaResponse>)>;
UsageAndQuotaQuery(scoped_refptr<storage::QuotaManager> quota_manager,
const GURL& security_origin,
const Callback& callback);
private:
friend class base::RefCounted<UsageAndQuotaQuery>;
using UsageItems = std::vector<scoped_refptr<UsageItem>>;
virtual ~UsageAndQuotaQuery();
void DidGetTemporaryQuota(storage::QuotaStatusCode status,
int64 used_bytes,
int64 quota_in_bytes);
void DidGetPersistentQuota(storage::QuotaStatusCode status, int64 value);
void GetHostUsage(UsageItems* list, storage::StorageType storage_type);
void GetUsageForClient(UsageItems* list,
storage::StorageType storage_type,
storage::QuotaClient::ID client_id,
const std::string& client_name);
void DidGetUsageForClient(UsageItems* list,
const std::string& client_name,
int64 value);
scoped_refptr<storage::QuotaManager> quota_manager_;
GURL security_origin_;
Callback callback_;
double temporary_quota_;
double persistent_quota_;
UsageItems temporary_usage_;
UsageItems persistent_usage_;
UsageItems syncable_usage_;
};
} // namespace page
} // namespace devtools
} // namespace content
#endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_USAGE_AND_QUOTA_QUERY_H_
...@@ -529,8 +529,6 @@ ...@@ -529,8 +529,6 @@
'browser/devtools/protocol/tethering_handler.h', 'browser/devtools/protocol/tethering_handler.h',
'browser/devtools/protocol/tracing_handler.cc', 'browser/devtools/protocol/tracing_handler.cc',
'browser/devtools/protocol/tracing_handler.h', 'browser/devtools/protocol/tracing_handler.h',
'browser/devtools/protocol/usage_and_quota_query.cc',
'browser/devtools/protocol/usage_and_quota_query.h',
'browser/devtools/protocol/worker_handler.cc', 'browser/devtools/protocol/worker_handler.cc',
'browser/devtools/protocol/worker_handler.h', 'browser/devtools/protocol/worker_handler.h',
'browser/devtools/render_frame_devtools_agent_host.cc', 'browser/devtools/render_frame_devtools_agent_host.cc',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment