summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-15 06:25:17 +0000
committerhashimoto@chromium.org <hashimoto@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-15 06:25:17 +0000
commit2b67216b16aa4610b7b65835b0b2ae0b462c0eed (patch)
tree550007ecc4fff13fbd0d0c18bba17f388be02cd0 /content
parentca1d8f72d5a3ba5ab084ce43d8bd0d437363e725 (diff)
downloadchromium_src-2b67216b16aa4610b7b65835b0b2ae0b462c0eed.zip
chromium_src-2b67216b16aa4610b7b65835b0b2ae0b462c0eed.tar.gz
chromium_src-2b67216b16aa4610b7b65835b0b2ae0b462c0eed.tar.bz2
Make content::PowerSaveBlocker public
BUG=152207 Review URL: https://chromiumcodereview.appspot.com/11784016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@176806 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/download/download_browsertest.cc6
-rw-r--r--content/browser/download/download_file_factory.cc4
-rw-r--r--content/browser/download/download_file_impl.cc4
-rw-r--r--content/browser/download/download_file_unittest.cc2
-rw-r--r--content/browser/download/drag_download_file_browsertest.cc2
-rw-r--r--content/browser/power_save_blocker_android.cc12
-rw-r--r--content/browser/power_save_blocker_chromeos.cc12
-rw-r--r--content/browser/power_save_blocker_impl.cc18
-rw-r--r--content/browser/power_save_blocker_impl.h38
-rw-r--r--content/browser/power_save_blocker_linux.cc30
-rw-r--r--content/browser/power_save_blocker_mac.cc16
-rw-r--r--content/browser/power_save_blocker_win.cc20
-rw-r--r--content/browser/renderer_host/render_view_host_impl.cc10
-rw-r--r--content/content_browser.gypi4
-rw-r--r--content/public/browser/power_save_blocker.h (renamed from content/browser/power_save_blocker.h)32
-rw-r--r--content/public/test/test_file_error_injector.cc6
16 files changed, 129 insertions, 87 deletions
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc
index c139027..faa7da2 100644
--- a/content/browser/download/download_browsertest.cc
+++ b/content/browser/download/download_browsertest.cc
@@ -13,8 +13,8 @@
#include "content/browser/download/download_file_impl.h"
#include "content/browser/download/download_item_impl.h"
#include "content/browser/download/download_manager_impl.h"
-#include "content/browser/power_save_blocker.h"
#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/public/browser/power_save_blocker.h"
#include "content/public/common/content_switches.h"
#include "content/public/test/download_test_observer.h"
#include "content/public/test/test_utils.h"
@@ -207,7 +207,7 @@ DownloadFile* DownloadFileWithDelayFactory::CreateFile(
const net::BoundNetLog& bound_net_log,
base::WeakPtr<DownloadDestinationObserver> observer) {
scoped_ptr<PowerSaveBlocker> psb(
- new PowerSaveBlocker(
+ PowerSaveBlocker::Create(
PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
"Download in progress"));
return new DownloadFileWithDelay(
@@ -306,7 +306,7 @@ class CountingDownloadFileFactory : public DownloadFileFactory {
const net::BoundNetLog& bound_net_log,
base::WeakPtr<DownloadDestinationObserver> observer) OVERRIDE {
scoped_ptr<PowerSaveBlocker> psb(
- new PowerSaveBlocker(
+ PowerSaveBlocker::Create(
PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
"Download in progress"));
return new CountingDownloadFile(
diff --git a/content/browser/download/download_file_factory.cc b/content/browser/download/download_file_factory.cc
index 4e164b3..aff2ade 100644
--- a/content/browser/download/download_file_factory.cc
+++ b/content/browser/download/download_file_factory.cc
@@ -5,7 +5,7 @@
#include "content/browser/download/download_file_factory.h"
#include "content/browser/download/download_file_impl.h"
-#include "content/browser/power_save_blocker.h"
+#include "content/public/browser/power_save_blocker.h"
namespace content {
@@ -21,7 +21,7 @@ DownloadFile* DownloadFileFactory::CreateFile(
const net::BoundNetLog& bound_net_log,
base::WeakPtr<DownloadDestinationObserver> observer) {
scoped_ptr<PowerSaveBlocker> psb(
- new PowerSaveBlocker(
+ PowerSaveBlocker::Create(
PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
"Download in progress"));
return new DownloadFileImpl(
diff --git a/content/browser/download/download_file_impl.cc b/content/browser/download/download_file_impl.cc
index c7c94ef..0498e1c 100644
--- a/content/browser/download/download_file_impl.cc
+++ b/content/browser/download/download_file_impl.cc
@@ -14,10 +14,10 @@
#include "content/browser/download/download_create_info.h"
#include "content/browser/download/download_interrupt_reasons_impl.h"
#include "content/browser/download/download_net_log_parameters.h"
-#include "content/browser/power_save_blocker.h"
+#include "content/browser/download/download_stats.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/download_destination_observer.h"
-#include "content/browser/download/download_stats.h"
+#include "content/public/browser/power_save_blocker.h"
#include "net/base/io_buffer.h"
namespace content {
diff --git a/content/browser/download/download_file_unittest.cc b/content/browser/download/download_file_unittest.cc
index 5708906..99165f3 100644
--- a/content/browser/download/download_file_unittest.cc
+++ b/content/browser/download/download_file_unittest.cc
@@ -11,10 +11,10 @@
#include "content/browser/download/download_create_info.h"
#include "content/browser/download/download_file_impl.h"
#include "content/browser/download/download_request_handle.h"
-#include "content/browser/power_save_blocker.h"
#include "content/public/browser/download_destination_observer.h"
#include "content/public/browser/download_interrupt_reasons.h"
#include "content/public/browser/download_manager.h"
+#include "content/public/browser/power_save_blocker.h"
#include "content/public/test/mock_download_manager.h"
#include "net/base/file_stream.h"
#include "net/base/mock_file_stream.h"
diff --git a/content/browser/download/drag_download_file_browsertest.cc b/content/browser/download/drag_download_file_browsertest.cc
index b7f8c69..58e9014 100644
--- a/content/browser/download/drag_download_file_browsertest.cc
+++ b/content/browser/download/drag_download_file_browsertest.cc
@@ -11,9 +11,9 @@
#include "content/browser/download/download_manager_impl.h"
#include "content/browser/download/drag_download_file.h"
#include "content/browser/download/drag_download_util.h"
-#include "content/browser/power_save_blocker.h"
#include "content/browser/web_contents/web_contents_impl.h"
#include "content/public/browser/content_browser_client.h"
+#include "content/public/browser/power_save_blocker.h"
#include "content/public/common/content_client.h"
#include "content/public/test/download_test_observer.h"
#include "content/public/test/test_utils.h"
diff --git a/content/browser/power_save_blocker_android.cc b/content/browser/power_save_blocker_android.cc
index 2de5ef0..c349fe5 100644
--- a/content/browser/power_save_blocker_android.cc
+++ b/content/browser/power_save_blocker_android.cc
@@ -2,27 +2,27 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/power_save_blocker.h"
+#include "content/browser/power_save_blocker_impl.h"
#include "base/logging.h"
namespace content {
-class PowerSaveBlocker::Delegate
- : public base::RefCounted<PowerSaveBlocker::Delegate> {
+class PowerSaveBlockerImpl::Delegate
+ : public base::RefCounted<PowerSaveBlockerImpl::Delegate> {
private:
friend class base::RefCounted<Delegate>;
~Delegate() {}
};
-PowerSaveBlocker::PowerSaveBlocker(PowerSaveBlockerType type,
- const std::string& reason) {
+PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type,
+ const std::string& reason) {
// TODO(wangxianzhu): Implement it.
// This may be called on any thread.
NOTIMPLEMENTED();
}
-PowerSaveBlocker::~PowerSaveBlocker() {
+PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
}
} // namespace content
diff --git a/content/browser/power_save_blocker_chromeos.cc b/content/browser/power_save_blocker_chromeos.cc
index de9d07b..7895477 100644
--- a/content/browser/power_save_blocker_chromeos.cc
+++ b/content/browser/power_save_blocker_chromeos.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/power_save_blocker.h"
+#include "content/browser/power_save_blocker_impl.h"
#include "base/basictypes.h"
#include "base/bind.h"
@@ -13,8 +13,8 @@
namespace content {
-class PowerSaveBlocker::Delegate
- : public base::RefCountedThreadSafe<PowerSaveBlocker::Delegate> {
+class PowerSaveBlockerImpl::Delegate
+ : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> {
public:
Delegate(PowerSaveBlockerType type) : type_(type) {}
@@ -54,14 +54,14 @@ class PowerSaveBlocker::Delegate
DISALLOW_COPY_AND_ASSIGN(Delegate);
};
-PowerSaveBlocker::PowerSaveBlocker(PowerSaveBlockerType type,
- const std::string& reason)
+PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type,
+ const std::string& reason)
: delegate_(new Delegate(type)) {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(&Delegate::ApplyBlock, delegate_));
}
-PowerSaveBlocker::~PowerSaveBlocker() {
+PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
base::Bind(&Delegate::RemoveBlock, delegate_));
}
diff --git a/content/browser/power_save_blocker_impl.cc b/content/browser/power_save_blocker_impl.cc
new file mode 100644
index 0000000..01007ad
--- /dev/null
+++ b/content/browser/power_save_blocker_impl.cc
@@ -0,0 +1,18 @@
+// Copyright (c) 2013 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/power_save_blocker_impl.h"
+
+namespace content {
+
+PowerSaveBlocker::~PowerSaveBlocker() {}
+
+// static
+scoped_ptr<PowerSaveBlocker> PowerSaveBlocker::Create(
+ PowerSaveBlockerType type,
+ const std::string& reason) {
+ return scoped_ptr<PowerSaveBlocker>(new PowerSaveBlockerImpl(type, reason));
+}
+
+} // namespace content
diff --git a/content/browser/power_save_blocker_impl.h b/content/browser/power_save_blocker_impl.h
new file mode 100644
index 0000000..fd0e63a
--- /dev/null
+++ b/content/browser/power_save_blocker_impl.h
@@ -0,0 +1,38 @@
+// Copyright (c) 2013 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_POWER_SAVE_BLOCKER_IMPL_H_
+#define CONTENT_BROWSER_POWER_SAVE_BLOCKER_IMPL_H_
+
+#include "base/memory/ref_counted.h"
+#include "content/public/browser/power_save_blocker.h"
+
+namespace content {
+
+class PowerSaveBlockerImpl : public PowerSaveBlocker {
+ public:
+ PowerSaveBlockerImpl(PowerSaveBlockerType type, const std::string& reason);
+ virtual ~PowerSaveBlockerImpl();
+
+ private:
+ class Delegate;
+
+ // Implementations of this class may need a second object with different
+ // lifetime than the RAII container, or additional storage. This member is
+ // here for that purpose. If not used, just define the class as an empty
+ // RefCounted (or RefCountedThreadSafe) like so to make it compile:
+ // class PowerSaveBlocker::Delegate
+ // : public base::RefCounted<PowerSaveBlocker::Delegate> {
+ // private:
+ // friend class base::RefCounted<Delegate>;
+ // ~Delegate() {}
+ // };
+ scoped_refptr<Delegate> delegate_;
+
+ DISALLOW_COPY_AND_ASSIGN(PowerSaveBlockerImpl);
+};
+
+} // namespace content
+
+#endif // CONTENT_BROWSER_POWER_SAVE_BLOCKER_IMPL_H_
diff --git a/content/browser/power_save_blocker_linux.cc b/content/browser/power_save_blocker_linux.cc
index 2ebf7be..e6c7791 100644
--- a/content/browser/power_save_blocker_linux.cc
+++ b/content/browser/power_save_blocker_linux.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/power_save_blocker.h"
+#include "content/browser/power_save_blocker_impl.h"
#include <X11/Xlib.h>
#include <X11/extensions/dpms.h>
@@ -63,12 +63,12 @@ const char kFreeDesktopAPIInterfaceName[] =
const char kFreeDesktopAPIObjectPath[] =
"/org/freedesktop/PowerManagement/Inhibit";
-} // anonymous namespace
+} // namespace
namespace content {
-class PowerSaveBlocker::Delegate
- : public base::RefCountedThreadSafe<PowerSaveBlocker::Delegate> {
+class PowerSaveBlockerImpl::Delegate
+ : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> {
public:
// Picks an appropriate D-Bus API to use based on the desktop environment.
Delegate(PowerSaveBlockerType type, const std::string& reason);
@@ -128,8 +128,8 @@ class PowerSaveBlocker::Delegate
DISALLOW_COPY_AND_ASSIGN(Delegate);
};
-PowerSaveBlocker::Delegate::Delegate(PowerSaveBlockerType type,
- const std::string& reason)
+PowerSaveBlockerImpl::Delegate::Delegate(PowerSaveBlockerType type,
+ const std::string& reason)
: type_(type),
reason_(reason),
api_(NO_API),
@@ -139,7 +139,7 @@ PowerSaveBlocker::Delegate::Delegate(PowerSaveBlockerType type,
// object yet. We'll do it later in ApplyBlock(), on the FILE thread.
}
-void PowerSaveBlocker::Delegate::Init() {
+void PowerSaveBlockerImpl::Delegate::Init() {
base::AutoLock lock(lock_);
DCHECK(!enqueue_apply_);
enqueue_apply_ = true;
@@ -147,7 +147,7 @@ void PowerSaveBlocker::Delegate::Init() {
base::Bind(&Delegate::InitOnUIThread, this));
}
-void PowerSaveBlocker::Delegate::CleanUp() {
+void PowerSaveBlockerImpl::Delegate::CleanUp() {
base::AutoLock lock(lock_);
if (enqueue_apply_) {
// If a call to ApplyBlock() has not yet been enqueued because we are still
@@ -160,7 +160,7 @@ void PowerSaveBlocker::Delegate::CleanUp() {
}
}
-void PowerSaveBlocker::Delegate::InitOnUIThread() {
+void PowerSaveBlockerImpl::Delegate::InitOnUIThread() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
base::AutoLock lock(lock_);
api_ = SelectAPI();
@@ -174,7 +174,7 @@ void PowerSaveBlocker::Delegate::InitOnUIThread() {
enqueue_apply_ = false;
}
-void PowerSaveBlocker::Delegate::ApplyBlock(DBusAPI api) {
+void PowerSaveBlockerImpl::Delegate::ApplyBlock(DBusAPI api) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
DCHECK(!bus_.get()); // ApplyBlock() should only be called once.
@@ -254,7 +254,7 @@ void PowerSaveBlocker::Delegate::ApplyBlock(DBusAPI api) {
}
}
-void PowerSaveBlocker::Delegate::RemoveBlock(DBusAPI api) {
+void PowerSaveBlockerImpl::Delegate::RemoveBlock(DBusAPI api) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
DCHECK(bus_.get()); // RemoveBlock() should only be called once.
@@ -296,7 +296,7 @@ void PowerSaveBlocker::Delegate::RemoveBlock(DBusAPI api) {
}
// static
-bool PowerSaveBlocker::Delegate::DPMSEnabled() {
+bool PowerSaveBlockerImpl::Delegate::DPMSEnabled() {
Display* display = base::MessagePumpForUI::GetDefaultXDisplay();
BOOL enabled = false;
int dummy;
@@ -308,7 +308,7 @@ bool PowerSaveBlocker::Delegate::DPMSEnabled() {
}
// static
-DBusAPI PowerSaveBlocker::Delegate::SelectAPI() {
+DBusAPI PowerSaveBlockerImpl::Delegate::SelectAPI() {
scoped_ptr<base::Environment> env(base::Environment::Create());
switch (base::nix::GetDesktopEnvironment(env.get())) {
case base::nix::DESKTOP_ENVIRONMENT_GNOME:
@@ -329,13 +329,13 @@ DBusAPI PowerSaveBlocker::Delegate::SelectAPI() {
return NO_API;
}
-PowerSaveBlocker::PowerSaveBlocker(
+PowerSaveBlockerImpl::PowerSaveBlockerImpl(
PowerSaveBlockerType type, const std::string& reason)
: delegate_(new Delegate(type, reason)) {
delegate_->Init();
}
-PowerSaveBlocker::~PowerSaveBlocker() {
+PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
delegate_->CleanUp();
}
diff --git a/content/browser/power_save_blocker_mac.cc b/content/browser/power_save_blocker_mac.cc
index 0f63de0..b5d47c0 100644
--- a/content/browser/power_save_blocker_mac.cc
+++ b/content/browser/power_save_blocker_mac.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/power_save_blocker.h"
+#include "content/browser/power_save_blocker_impl.h"
#include <IOKit/pwr_mgt/IOPMLib.h>
@@ -36,8 +36,8 @@ base::LazyInstance<base::Thread, PowerSaveBlockerLazyInstanceTraits>
} // namespace
-class PowerSaveBlocker::Delegate
- : public base::RefCountedThreadSafe<PowerSaveBlocker::Delegate> {
+class PowerSaveBlockerImpl::Delegate
+ : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> {
public:
Delegate(PowerSaveBlockerType type, const std::string& reason)
: type_(type), reason_(reason), assertion_(kIOPMNullAssertionID) {}
@@ -54,7 +54,7 @@ class PowerSaveBlocker::Delegate
IOPMAssertionID assertion_;
};
-void PowerSaveBlocker::Delegate::ApplyBlock() {
+void PowerSaveBlockerImpl::Delegate::ApplyBlock() {
DCHECK_EQ(base::PlatformThread::CurrentId(),
g_power_thread.Pointer()->thread_id());
@@ -84,7 +84,7 @@ void PowerSaveBlocker::Delegate::ApplyBlock() {
}
}
-void PowerSaveBlocker::Delegate::RemoveBlock() {
+void PowerSaveBlockerImpl::Delegate::RemoveBlock() {
DCHECK_EQ(base::PlatformThread::CurrentId(),
g_power_thread.Pointer()->thread_id());
@@ -95,15 +95,15 @@ void PowerSaveBlocker::Delegate::RemoveBlock() {
}
}
-PowerSaveBlocker::PowerSaveBlocker(PowerSaveBlockerType type,
- const std::string& reason)
+PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type,
+ const std::string& reason)
: delegate_(new Delegate(type, reason)) {
g_power_thread.Pointer()->message_loop()->PostTask(
FROM_HERE,
base::Bind(&Delegate::ApplyBlock, delegate_));
}
-PowerSaveBlocker::~PowerSaveBlocker() {
+PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
g_power_thread.Pointer()->message_loop()->PostTask(
FROM_HERE,
base::Bind(&Delegate::RemoveBlock, delegate_));
diff --git a/content/browser/power_save_blocker_win.cc b/content/browser/power_save_blocker_win.cc
index ab3e408..e2dcda4 100644
--- a/content/browser/power_save_blocker_win.cc
+++ b/content/browser/power_save_blocker_win.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/browser/power_save_blocker.h"
+#include "content/browser/power_save_blocker_impl.h"
#include <windows.h>
@@ -105,10 +105,10 @@ void ApplySimpleBlock(PowerSaveBlocker::PowerSaveBlockerType type,
SetThreadExecutionState(flags);
}
-} // namespace.
+} // namespace
-class PowerSaveBlocker::Delegate
- : public base::RefCountedThreadSafe<PowerSaveBlocker::Delegate> {
+class PowerSaveBlockerImpl::Delegate
+ : public base::RefCountedThreadSafe<PowerSaveBlockerImpl::Delegate> {
public:
Delegate(PowerSaveBlockerType type, const std::string& reason)
: type_(type), reason_(reason) {}
@@ -131,7 +131,7 @@ class PowerSaveBlocker::Delegate
DISALLOW_COPY_AND_ASSIGN(Delegate);
};
-void PowerSaveBlocker::Delegate::ApplyBlock() {
+void PowerSaveBlockerImpl::Delegate::ApplyBlock() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (base::win::GetVersion() < base::win::VERSION_WIN7)
return ApplySimpleBlock(type_, 1);
@@ -139,7 +139,7 @@ void PowerSaveBlocker::Delegate::ApplyBlock() {
handle_.Set(CreatePowerRequest(RequestType(), reason_));
}
-void PowerSaveBlocker::Delegate::RemoveBlock() {
+void PowerSaveBlockerImpl::Delegate::RemoveBlock() {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
if (base::win::GetVersion() < base::win::VERSION_WIN7)
return ApplySimpleBlock(type_, -1);
@@ -147,7 +147,7 @@ void PowerSaveBlocker::Delegate::RemoveBlock() {
DeletePowerRequest(RequestType(), handle_.Take());
}
-POWER_REQUEST_TYPE PowerSaveBlocker::Delegate::RequestType() {
+POWER_REQUEST_TYPE PowerSaveBlockerImpl::Delegate::RequestType() {
if (type_ == kPowerSaveBlockPreventDisplaySleep)
return PowerRequestDisplayRequired;
@@ -157,15 +157,15 @@ POWER_REQUEST_TYPE PowerSaveBlocker::Delegate::RequestType() {
return PowerRequestExecutionRequired;
}
-PowerSaveBlocker::PowerSaveBlocker(PowerSaveBlockerType type,
- const std::string& reason)
+PowerSaveBlockerImpl::PowerSaveBlockerImpl(PowerSaveBlockerType type,
+ const std::string& reason)
: delegate_(new Delegate(type, reason)) {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(&Delegate::ApplyBlock, delegate_));
}
-PowerSaveBlocker::~PowerSaveBlocker() {
+PowerSaveBlockerImpl::~PowerSaveBlockerImpl() {
BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE,
base::Bind(&Delegate::RemoveBlock, delegate_));
diff --git a/content/browser/renderer_host/render_view_host_impl.cc b/content/browser/renderer_host/render_view_host_impl.cc
index 2b7b65c..4ef76db 100644
--- a/content/browser/renderer_host/render_view_host_impl.cc
+++ b/content/browser/renderer_host/render_view_host_impl.cc
@@ -27,7 +27,6 @@
#include "content/browser/dom_storage/session_storage_namespace_impl.h"
#include "content/browser/gpu/gpu_surface_tracker.h"
#include "content/browser/host_zoom_map_impl.h"
-#include "content/browser/power_save_blocker.h"
#include "content/browser/renderer_host/dip_util.h"
#include "content/browser/renderer_host/render_process_host_impl.h"
#include "content/browser/renderer_host/render_view_host_delegate.h"
@@ -51,6 +50,7 @@
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/notification_types.h"
+#include "content/public/browser/power_save_blocker.h"
#include "content/public/browser/render_view_host_observer.h"
#include "content/public/browser/user_metrics.h"
#include "content/public/common/bindings_policy.h"
@@ -1969,19 +1969,19 @@ void RenderViewHostImpl::OnMediaNotification(int64 player_cookie,
bool has_audio,
bool is_playing) {
if (is_playing) {
- PowerSaveBlocker* blocker = NULL;
+ scoped_ptr<PowerSaveBlocker> blocker;
if (has_video) {
- blocker = new PowerSaveBlocker(
+ blocker = PowerSaveBlocker::Create(
PowerSaveBlocker::kPowerSaveBlockPreventDisplaySleep,
"Playing video");
} else if (has_audio) {
- blocker = new PowerSaveBlocker(
+ blocker = PowerSaveBlocker::Create(
PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
"Playing audio");
}
if (blocker)
- power_save_blockers_[player_cookie] = blocker;
+ power_save_blockers_[player_cookie] = blocker.release();
} else {
delete power_save_blockers_[player_cookie];
power_save_blockers_.erase(player_cookie);
diff --git a/content/content_browser.gypi b/content/content_browser.gypi
index 49eb9ab..e93a2a2 100644
--- a/content/content_browser.gypi
+++ b/content/content_browser.gypi
@@ -116,6 +116,7 @@
'public/browser/plugin_data_remover.h',
'public/browser/plugin_service_filter.h',
'public/browser/plugin_service.h',
+ 'public/browser/power_save_blocker.h',
'public/browser/profiler_controller.h',
'public/browser/profiler_subscriber.h',
'public/browser/quota_permission_context.h',
@@ -555,9 +556,10 @@
'browser/plugin_process_host_mac.cc',
'browser/plugin_service_impl.cc',
'browser/plugin_service_impl.h',
- 'browser/power_save_blocker.h',
'browser/power_save_blocker_android.cc',
'browser/power_save_blocker_chromeos.cc',
+ 'browser/power_save_blocker_impl.cc',
+ 'browser/power_save_blocker_impl.h',
'browser/power_save_blocker_linux.cc',
'browser/power_save_blocker_mac.cc',
'browser/power_save_blocker_win.cc',
diff --git a/content/browser/power_save_blocker.h b/content/public/browser/power_save_blocker.h
index 53e5418..fe9f966 100644
--- a/content/browser/power_save_blocker.h
+++ b/content/public/browser/power_save_blocker.h
@@ -2,14 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CONTENT_BROWSER_POWER_SAVE_BLOCKER_H_
-#define CONTENT_BROWSER_POWER_SAVE_BLOCKER_H_
+#ifndef CONTENT_PUBLIC_BROWSER_POWER_SAVE_BLOCKER_H_
+#define CONTENT_PUBLIC_BROWSER_POWER_SAVE_BLOCKER_H_
#include <string>
-#include <vector>
#include "base/basictypes.h"
-#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
#include "content/common/content_export.h"
namespace content {
@@ -33,30 +32,15 @@ class CONTENT_EXPORT PowerSaveBlocker {
kPowerSaveBlockPreventDisplaySleep,
};
+ virtual ~PowerSaveBlocker() = 0;
+
// Pass in the type of power save blocking desired. If multiple types of
// blocking are desired, instantiate one PowerSaveBlocker for each type.
// |reason| may be provided to the underlying system APIs on some platforms.
- PowerSaveBlocker(PowerSaveBlockerType type, const std::string& reason);
- ~PowerSaveBlocker();
-
- private:
- class Delegate;
-
- // Implementations of this class may need a second object with different
- // lifetime than the RAII container, or additional storage. This member is
- // here for that purpose. If not used, just define the class as an empty
- // RefCounted (or RefCountedThreadSafe) like so to make it compile:
- // class PowerSaveBlocker::Delegate
- // : public base::RefCounted<PowerSaveBlocker::Delegate> {
- // private:
- // friend class base::RefCounted<Delegate>;
- // ~Delegate() {}
- // };
- scoped_refptr<Delegate> delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(PowerSaveBlocker);
+ static scoped_ptr<PowerSaveBlocker> Create(PowerSaveBlockerType type,
+ const std::string& reason);
};
} // namespace content
-#endif // CONTENT_BROWSER_POWER_SAVE_BLOCKER_H_
+#endif // CONTENT_PUBLIC_BROWSER_POWER_SAVE_BLOCKER_H_
diff --git a/content/public/test/test_file_error_injector.cc b/content/public/test/test_file_error_injector.cc
index 71e6a76..14aba11 100644
--- a/content/public/test/test_file_error_injector.cc
+++ b/content/public/test/test_file_error_injector.cc
@@ -8,13 +8,13 @@
#include "base/compiler_specific.h"
#include "base/logging.h"
-#include "content/browser/download/download_file_impl.h"
#include "content/browser/download/download_file_factory.h"
+#include "content/browser/download/download_file_impl.h"
#include "content/browser/download/download_interrupt_reasons_impl.h"
#include "content/browser/download/download_manager_impl.h"
#include "content/browser/loader/resource_dispatcher_host_impl.h"
-#include "content/browser/power_save_blocker.h"
#include "content/public/browser/browser_thread.h"
+#include "content/public/browser/power_save_blocker.h"
#include "googleurl/src/gurl.h"
namespace content {
@@ -276,7 +276,7 @@ DownloadFile* DownloadFileWithErrorsFactory::CreateFile(
}
scoped_ptr<PowerSaveBlocker> psb(
- new PowerSaveBlocker(
+ PowerSaveBlocker::Create(
PowerSaveBlocker::kPowerSaveBlockPreventAppSuspension,
"Download in progress"));