Changeset 235910 in webkit


Ignore:
Timestamp:
Sep 11, 2018 12:30:46 PM (6 years ago)
Author:
mmaxfield@apple.com
Message:

Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts
https://bugs.webkit.org/show_bug.cgi?id=188008

Reviewed by Alex Christensen.

Source/WebKit:

This patch is a follow-up to https://bugs.webkit.org/show_bug.cgi?id=180307.
Variable fonts have CFDictionaries with non-string keys. We need to support that in our IPC code.

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::encode):
(IPC::decode):

LayoutTests:

  • fast/text/variations/ipc2-expected.txt: Added.
  • fast/text/variations/ipc2.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r235897 r235910  
     12018-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts
     4        https://bugs.webkit.org/show_bug.cgi?id=188008
     5
     6        Reviewed by Alex Christensen.
     7
     8        * fast/text/variations/ipc2-expected.txt: Added.
     9        * fast/text/variations/ipc2.html: Added.
     10
    1112018-09-11  Woodrow Wang  <woodrow_wang@apple.com>
    212
  • trunk/Source/WebKit/ChangeLog

    r235909 r235910  
     12018-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts
     4        https://bugs.webkit.org/show_bug.cgi?id=188008
     5
     6        Reviewed by Alex Christensen.
     7
     8        This patch is a follow-up to https://bugs.webkit.org/show_bug.cgi?id=180307.
     9        Variable fonts have CFDictionaries with non-string keys. We need to support that in our IPC code.
     10
     11        * Shared/cf/ArgumentCodersCF.cpp:
     12        (IPC::encode):
     13        (IPC::decode):
     14
    1152018-09-11  Adrian Perez de Castro  <aperez@igalia.com>
    216
  • trunk/Source/WebKit/Shared/cf/ArgumentCodersCF.cpp

    r235006 r235910  
    428428    for (CFIndex i = 0; i < size; ++i) {
    429429        ASSERT(keys[i]);
    430         ASSERT(CFGetTypeID(keys[i]) == CFStringGetTypeID());
    431430        ASSERT(values[i]);
    432431
     
    435434            continue;
    436435
    437         encode(encoder, static_cast<CFStringRef>(keys[i]));
     436        encode(encoder, keys[i]);
    438437        encode(encoder, values[i]);
    439438    }
     
    457456    for (uint64_t i = 0; i < size; ++i) {
    458457        // Try to decode the key name.
    459         RetainPtr<CFStringRef> key;
     458        RetainPtr<CFTypeRef> key;
    460459        if (!decode(decoder, key))
    461460            return false;
Note: See TracChangeset for help on using the changeset viewer.