Changeset 106749 in webkit


Ignore:
Timestamp:
Feb 4, 2012 4:18:17 PM (12 years ago)
Author:
mitz@apple.com
Message:

<rdar://problem/10772406> WKPreferences instances cannot be copied
https://bugs.webkit.org/show_bug.cgi?id=77816

Reviewed by Sam Weinig.

Source/WebKit2:

Test added in TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesCreateCopy): Added.

  • UIProcess/API/C/WKPreferencesPrivate.h:
  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::WebPreferences): Added this constructor that copies the
WebPreferencesStore of the given WebPreferences.

  • UIProcess/WebPreferences.h:

(WebKit::WebPreferences::create): Added this create function that takes a WebPreferences
instance and creates a new instance with a copy of the given instance’s store.

Tools:

  • TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:

(TestWebKitAPI::TEST):

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r106723 r106749  
     12012-02-04  Dan Bernstein  <mitz@apple.com>
     2
     3        <rdar://problem/10772406> WKPreferences instances cannot be copied
     4        https://bugs.webkit.org/show_bug.cgi?id=77816
     5
     6        Reviewed by Sam Weinig.
     7
     8        Test added in TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp.
     9
     10        * UIProcess/API/C/WKPreferences.cpp:
     11        (WKPreferencesCreateCopy): Added.
     12        * UIProcess/API/C/WKPreferencesPrivate.h:
     13        * UIProcess/WebPreferences.cpp:
     14        (WebKit::WebPreferences::WebPreferences): Added this constructor that copies the
     15        WebPreferencesStore of the given WebPreferences.
     16        * UIProcess/WebPreferences.h:
     17        (WebKit::WebPreferences::create): Added this create function that takes a WebPreferences
     18        instance and creates a new instance with a copy of the given instance’s store.
     19
    1202012-02-03  Anders Carlsson  <andersca@apple.com>
    221
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp

    r106005 r106749  
    5353}
    5454
     55WKPreferencesRef WKPreferencesCreateCopy(WKPreferencesRef preferencesRef)
     56{
     57    RefPtr<WebPreferences> preferences = WebPreferences::create(*toImpl(preferencesRef));
     58    return toAPI(preferences.release().leakRef());
     59}
     60
    5561void WKPreferencesSetJavaScriptEnabled(WKPreferencesRef preferencesRef, bool javaScriptEnabled)
    5662{
  • trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h

    r106005 r106749  
    5252};
    5353typedef enum WKEditableLinkBehavior WKEditableLinkBehavior;
     54
     55// Creates a copy with no identifier.
     56WK_EXPORT WKPreferencesRef WKPreferencesCreateCopy(WKPreferencesRef);
    5457
    5558// Defaults to kWKFontSmoothingLevelWindows on Windows, kWKFontSmoothingLevelMedium on other platforms.
  • trunk/Source/WebKit2/UIProcess/WebPreferences.cpp

    r95901 r106749  
    3838WebPreferences::WebPreferences(const String& identifier)
    3939    : m_identifier(identifier)
     40{
     41    platformInitializeStore();
     42}
     43
     44WebPreferences::WebPreferences(const WebPreferences& other)
     45    : m_store(other.m_store)
    4046{
    4147    platformInitializeStore();
  • trunk/Source/WebKit2/UIProcess/WebPreferences.h

    r106005 r106749  
    5555    }
    5656
     57    static PassRefPtr<WebPreferences> create(const WebPreferences& other)
     58    {
     59        return adoptRef(new WebPreferences(other));
     60    }
     61
    5762    virtual ~WebPreferences();
    5863
     
    7681    WebPreferences();
    7782    WebPreferences(const String& identifier);
     83    WebPreferences(const WebPreferences&);
    7884
    7985    void platformInitializeStore();
  • trunk/Tools/ChangeLog

    r106739 r106749  
     12012-02-04  Dan Bernstein  <mitz@apple.com>
     2
     3        <rdar://problem/10772406> WKPreferences instances cannot be copied
     4        https://bugs.webkit.org/show_bug.cgi?id=77816
     5
     6        Reviewed by Sam Weinig.
     7
     8        * TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:
     9        (TestWebKitAPI::TEST):
     10
    1112012-02-04  Adam Barth  <abarth@webkit.org>
    212
  • trunk/Tools/TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp

    r95188 r106749  
    9898}
    9999
     100TEST(WebKit2, WKPreferencesCopying)
     101{
     102    WKRetainPtr<WKStringRef> identifier(AdoptWK, WKStringCreateWithUTF8CString("identifier"));
     103
     104    WKRetainPtr<WKPreferencesRef> preferences(AdoptWK, WKPreferencesCreateWithIdentifier(identifier.get()));
     105    WKPreferencesSetDefaultFontSize(preferences.get(), 36);
     106
     107    WKRetainPtr<WKPreferencesRef> copy(AdoptWK, WKPreferencesCreateCopy(preferences.get()));
     108
     109    WKPreferencesSetDefaultFontSize(preferences.get(), 24);
     110    EXPECT_EQ(24u, WKPreferencesGetDefaultFontSize(preferences.get()));
     111    EXPECT_EQ(36u, WKPreferencesGetDefaultFontSize(copy.get()));
     112}
     113
    100114} // namespace TestWebKitAPI
Note: See TracChangeset for help on using the changeset viewer.