diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:41 -0800 |
commit | 648161bb0edfc3d43db63caed5cc5213bc6cb78f (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /WebKit/cf | |
parent | a65af38181ac7d34544586bdb5cd004de93897ad (diff) | |
download | external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.zip external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.gz external_webkit-648161bb0edfc3d43db63caed5cc5213bc6cb78f.tar.bz2 |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'WebKit/cf')
-rw-r--r-- | WebKit/cf/ChangeLog | 21 | ||||
-rw-r--r-- | WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp | 147 |
2 files changed, 0 insertions, 168 deletions
diff --git a/WebKit/cf/ChangeLog b/WebKit/cf/ChangeLog deleted file mode 100644 index 3e06358..0000000 --- a/WebKit/cf/ChangeLog +++ /dev/null @@ -1,21 +0,0 @@ -2008-10-24 Adam Roben <aroben@apple.com> - - Windows build fix - - * WebCoreSupport/WebInspectorClientCF.cpp: Define WTF_PLATFORM_CF - manually. Normally this gets defined on Windows by including config.h, - but Mac has no config.h for WebKit, so we can't do that here. - -2008-10-24 Timothy Hatcher <timothy@apple.com> - - Implement new InspectorClient methods to work with Settings. - - https://bugs.webkit.org/show_bug.cgi?id=21856 - - Reviewed by Darin Adler. - - * WebCoreSupport/WebInspectorClientCF.cpp: Added. - (createKeyForPreferences): Helper to make the preference key. - (WebInspectorClient::populateSetting): Read the preference value from CFPreferences. - (WebInspectorClient::storeSetting): Write the setting value to CFPreferences. - (WebInspectorClient::removeSetting): Remove the preference from CFPreferences. diff --git a/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp b/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp deleted file mode 100644 index a4cb934..0000000 --- a/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 2008 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 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 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. - */ - -// FIXME: On Windows, we require all WebKit source files to include config.h -// before including any other files. Failing to include config.h will leave -// WTF_PLATFORM_CF undefined, causing build failures in this file. But Mac -// doesn't have a config.h for WebKit, so we can't include the Windows one -// here. For now we can just define WTF_PLATFORM_CF manually, but we need a -// better long-term solution. -#ifndef WTF_PLATFORM_CF -#define WTF_PLATFORM_CF 1 -#endif - -#include "WebInspectorClient.h" - -#include <CoreFoundation/CoreFoundation.h> - -#include <WebCore/PlatformString.h> - -#include <wtf/RetainPtr.h> -#include <wtf/Vector.h> - -using namespace WebCore; - -static inline CFStringRef createKeyForPreferences(const String& key) -{ - RetainPtr<CFStringRef> keyCFString(AdoptCF, key.createCFString()); - return CFStringCreateWithFormat(0, 0, CFSTR("WebKit Web Inspector Setting - %@"), keyCFString.get()); -} - -void WebInspectorClient::populateSetting(const String& key, InspectorController::Setting& setting) -{ - RetainPtr<CFStringRef> preferencesKey(AdoptCF, createKeyForPreferences(key)); - RetainPtr<CFPropertyListRef> value(AdoptCF, CFPreferencesCopyAppValue(preferencesKey.get(), kCFPreferencesCurrentApplication)); - - if (!value) - return; - - CFTypeID type = CFGetTypeID(value.get()); - if (type == CFStringGetTypeID()) - setting.set(static_cast<String>(static_cast<CFStringRef>(value.get()))); - else if (type == CFBooleanGetTypeID()) - setting.set(static_cast<bool>(CFBooleanGetValue(static_cast<CFBooleanRef>(value.get())))); - else if (type == CFNumberGetTypeID()) { - CFNumberRef number = static_cast<CFNumberRef>(value.get()); - if (CFNumberIsFloatType(number)) { - double doubleNumber = 0.0; - CFNumberGetValue(static_cast<CFNumberRef>(value.get()), kCFNumberDoubleType, &doubleNumber); - setting.set(doubleNumber); - } else { - long longNumber = 0; - CFNumberGetValue(static_cast<CFNumberRef>(value.get()), kCFNumberLongType, &longNumber); - setting.set(longNumber); - } - } else if (type == CFArrayGetTypeID()) { - Vector<String> strings; - - CFArrayRef array = static_cast<CFArrayRef>(value.get()); - unsigned length = CFArrayGetCount(array); - for (unsigned i = 0; i < length; ++i) { - CFStringRef string = static_cast<CFStringRef>(CFArrayGetValueAtIndex(array, i)); - if (CFGetTypeID(string) == CFStringGetTypeID()) - strings.append(static_cast<String>(static_cast<CFStringRef>(string))); - } - - setting.set(strings); - } else - ASSERT_NOT_REACHED(); -} - -void WebInspectorClient::storeSetting(const String& key, const InspectorController::Setting& setting) -{ - RetainPtr<CFPropertyListRef> objectToStore; - - switch (setting.type()) { - default: - case InspectorController::Setting::NoType: - ASSERT_NOT_REACHED(); - break; - case InspectorController::Setting::StringType: - objectToStore.adoptCF(setting.string().createCFString()); - break; - case InspectorController::Setting::BooleanType: - objectToStore = (setting.booleanValue() ? kCFBooleanTrue : kCFBooleanFalse); - break; - - case InspectorController::Setting::DoubleType: { - double value = setting.doubleValue(); - objectToStore.adoptCF(CFNumberCreate(0, kCFNumberDoubleType, &value)); - break; - } - - case InspectorController::Setting::IntegerType: { - long value = setting.integerValue(); - objectToStore.adoptCF(CFNumberCreate(0, kCFNumberLongType, &value)); - break; - } - - case InspectorController::Setting::StringVectorType: { - const Vector<String>& strings = setting.stringVector(); - const unsigned length = strings.size(); - - RetainPtr<CFMutableArrayRef> array(AdoptCF, CFArrayCreateMutable(0, length, &kCFTypeArrayCallBacks)); - - for (unsigned i = 0; i < length; ++i) { - RetainPtr<CFStringRef> string(AdoptCF, strings[i].createCFString()); - CFArraySetValueAtIndex(array.get(), i, string.get()); - } - - objectToStore = array; - break; - } - } - - ASSERT(objectToStore); - - RetainPtr<CFStringRef> preferencesKey(AdoptCF, createKeyForPreferences(key)); - CFPreferencesSetAppValue(preferencesKey.get(), objectToStore.get(), kCFPreferencesCurrentApplication); -} - -void WebInspectorClient::removeSetting(const String& key) -{ - RetainPtr<CFStringRef> preferencesKey(AdoptCF, createKeyForPreferences(key)); - CFPreferencesSetAppValue(preferencesKey.get(), 0, kCFPreferencesCurrentApplication); -} |