Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(333)

Unified Diff: Source/WebCore/platform/mac/SharedTimerMac.mm

Issue 13713003: Remove all of WebCore/platform/mac which is not mentioned in WebCore.gypi. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Added back a couple needed headers Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/WebCore/platform/mac/SearchPopupMenuMac.mm ('k') | Source/WebCore/platform/mac/SoftLinking.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/WebCore/platform/mac/SharedTimerMac.mm
diff --git a/Source/WebCore/platform/mac/SharedTimerMac.mm b/Source/WebCore/platform/mac/SharedTimerMac.mm
deleted file mode 100644
index 644c7ceaf2e4a97a33a4a89c0473fcbaccd1ed1d..0000000000000000000000000000000000000000
--- a/Source/WebCore/platform/mac/SharedTimerMac.mm
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Copyright (C) 2006, 2010 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "config.h"
-#import "SharedTimer.h"
-
-#import <IOKit/IOMessage.h>
-#import <IOKit/pwr_mgt/IOPMLib.h>
-#import <wtf/Assertions.h>
-#import <wtf/Noncopyable.h>
-#import <wtf/PassOwnPtr.h>
-#import <wtf/UnusedParam.h>
-
-#include <stdio.h>
-
-// On Snow Leopard and newer we'll ask IOKit to deliver notifications on a queue.
-#if !PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED == 1050
-#define IOKIT_WITHOUT_LIBDISPATCH 1
-#endif
-
-namespace WebCore {
-
-static CFRunLoopTimerRef sharedTimer;
-static void (*sharedTimerFiredFunction)();
-static void timerFired(CFRunLoopTimerRef, void*);
-
-#if !defined(IOKIT_WITHOUT_LIBDISPATCH) && !PLATFORM(IOS) && __MAC_OS_X_VERSION_MAX_ALLOWED == 1060
-extern "C" void IONotificationPortSetDispatchQueue(IONotificationPortRef notify, dispatch_queue_t queue);
-#endif
-
-class PowerObserver {
- WTF_MAKE_NONCOPYABLE(PowerObserver);
-
-public:
- static PassOwnPtr<PowerObserver> create()
- {
- return adoptPtr(new PowerObserver);
- }
- ~PowerObserver();
-
-private:
- PowerObserver();
-
- static void didReceiveSystemPowerNotification(void* context, io_service_t, uint32_t messageType, void* messageArgument);
- void didReceiveSystemPowerNotification(io_service_t, uint32_t messageType, void* messageArgument);
-
- void restartSharedTimer();
-
- io_connect_t m_powerConnection;
- IONotificationPortRef m_notificationPort;
- io_object_t m_notifierReference;
-#ifdef IOKIT_WITHOUT_LIBDISPATCH
- CFRunLoopSourceRef m_runLoopSource;
-#else
- dispatch_queue_t m_dispatchQueue;
-#endif
-};
-
-PowerObserver::PowerObserver()
- : m_powerConnection(0)
- , m_notificationPort(0)
- , m_notifierReference(0)
-#ifdef IOKIT_WITHOUT_LIBDISPATCH
- , m_runLoopSource(0)
-#else
- , m_dispatchQueue(dispatch_queue_create("com.apple.WebKit.PowerObserver", 0))
-#endif
-{
- m_powerConnection = IORegisterForSystemPower(this, &m_notificationPort, didReceiveSystemPowerNotification, &m_notifierReference);
- if (!m_powerConnection)
- return;
-
-#ifdef IOKIT_WITHOUT_LIBDISPATCH
- m_runLoopSource = IONotificationPortGetRunLoopSource(m_notificationPort);
- CFRunLoopAddSource(CFRunLoopGetMain(), m_runLoopSource, kCFRunLoopCommonModes);
-#else
- IONotificationPortSetDispatchQueue(m_notificationPort, m_dispatchQueue);
-#endif
-}
-
-PowerObserver::~PowerObserver()
-{
- if (!m_powerConnection)
- return;
-
-#ifdef IOKIT_WITHOUT_LIBDISPATCH
- CFRunLoopRemoveSource(CFRunLoopGetMain(), m_runLoopSource, kCFRunLoopCommonModes);
-#else
- dispatch_release(m_dispatchQueue);
-#endif
-
- IODeregisterForSystemPower(&m_notifierReference);
- IOServiceClose(m_powerConnection);
- IONotificationPortDestroy(m_notificationPort);
-}
-
-void PowerObserver::didReceiveSystemPowerNotification(void* context, io_service_t service, uint32_t messageType, void* messageArgument)
-{
- static_cast<PowerObserver*>(context)->didReceiveSystemPowerNotification(service, messageType, messageArgument);
-}
-
-void PowerObserver::didReceiveSystemPowerNotification(io_service_t, uint32_t messageType, void* messageArgument)
-{
- IOAllowPowerChange(m_powerConnection, reinterpret_cast<long>(messageArgument));
-
- // We only care about the "wake from sleep" message.
- if (messageType != kIOMessageSystemWillPowerOn)
- return;
-
-#ifdef IOKIT_WITHOUT_LIBDISPATCH
- restartSharedTimer();
-#else
- // We need to restart the timer on the main thread.
- CFRunLoopPerformBlock(CFRunLoopGetMain(), kCFRunLoopCommonModes, ^() {
- restartSharedTimer();
- });
-#endif
-}
-
-void PowerObserver::restartSharedTimer()
-{
- ASSERT(CFRunLoopGetCurrent() == CFRunLoopGetMain());
-
- if (!sharedTimer)
- return;
-
- stopSharedTimer();
- timerFired(0, 0);
-}
-
-static PowerObserver* PowerObserver;
-
-void setSharedTimerFiredFunction(void (*f)())
-{
- ASSERT(!sharedTimerFiredFunction || sharedTimerFiredFunction == f);
-
- sharedTimerFiredFunction = f;
-}
-
-static void timerFired(CFRunLoopTimerRef, void*)
-{
- NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- sharedTimerFiredFunction();
- [pool drain];
-}
-
-void setSharedTimerFireInterval(double interval)
-{
- ASSERT(sharedTimerFiredFunction);
-
- if (sharedTimer) {
- CFRunLoopTimerInvalidate(sharedTimer);
- CFRelease(sharedTimer);
- }
-
- CFAbsoluteTime fireDate = CFAbsoluteTimeGetCurrent() + interval;
- sharedTimer = CFRunLoopTimerCreate(0, fireDate, 0, 0, 0, timerFired, 0);
- CFRunLoopAddTimer(CFRunLoopGetCurrent(), sharedTimer, kCFRunLoopCommonModes);
-
- if (!PowerObserver)
- PowerObserver = PowerObserver::create().leakPtr();
-}
-
-void stopSharedTimer()
-{
- if (sharedTimer) {
- CFRunLoopTimerInvalidate(sharedTimer);
- CFRelease(sharedTimer);
- sharedTimer = 0;
- }
-}
-
-} // namespace WebCore
« no previous file with comments | « Source/WebCore/platform/mac/SearchPopupMenuMac.mm ('k') | Source/WebCore/platform/mac/SoftLinking.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698