Changeset 232056 in webkit


Ignore:
Timestamp:
May 22, 2018 12:46:02 AM (6 years ago)
Author:
Carlos Garcia Campos
Message:

Crash when loading a SVG image
https://bugs.webkit.org/show_bug.cgi?id=185819

Reviewed by Brent Fulgham.

This is happening in WebLoaderStrategy::scheduleLoad() when getting the value of
FrameLoaderClient::pageID(). SVGImage uses the empty clients for the loader, and
EmptyFrameLoaderClient::pageID() returns std::nullopt. The same happens with the frameID. This changed in
r225934, when pageID() and frameID() were changed to return std::optional, EmptyFrameLoaderClient was updated to
return std::nullopt instead of 0.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad): Use value_or(0) instead of value() to get pageID and frameID from
FrameLoaderClient.

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r232052 r232056  
     12018-05-22  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        Crash when loading a SVG image
     4        https://bugs.webkit.org/show_bug.cgi?id=185819
     5
     6        Reviewed by Brent Fulgham.
     7
     8        This is happening in WebLoaderStrategy::scheduleLoad() when getting the value of
     9        FrameLoaderClient::pageID(). SVGImage uses the empty clients for the loader, and
     10        EmptyFrameLoaderClient::pageID() returns std::nullopt. The same happens with the frameID. This changed in
     11        r225934, when pageID() and frameID() were changed to return std::optional, EmptyFrameLoaderClient was updated to
     12        return std::nullopt instead of 0.
     13
     14        * WebProcess/Network/WebLoaderStrategy.cpp:
     15        (WebKit::WebLoaderStrategy::scheduleLoad): Use value_or(0) instead of value() to get pageID and frameID from
     16        FrameLoaderClient.
     17
    1182018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
    219
  • trunk/Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp

    r231692 r232056  
    157157
    158158    WebResourceLoader::TrackingParameters trackingParameters;
    159     trackingParameters.pageID = frameLoaderClient.pageID().value();
    160     trackingParameters.frameID = frameLoaderClient.frameID().value();
     159    trackingParameters.pageID = frameLoaderClient.pageID().value_or(0);
     160    trackingParameters.frameID = frameLoaderClient.frameID().value_or(0);
    161161    trackingParameters.resourceID = identifier;
    162162    auto sessionID = frameLoaderClient.sessionID();
Note: See TracChangeset for help on using the changeset viewer.