Changeset 290301 in webkit


Ignore:
Timestamp:
Feb 22, 2022 5:35:13 AM (5 months ago)
Author:
commit-queue@webkit.org
Message:

Permission API: handle non-fully active documents
https://bugs.webkit.org/show_bug.cgi?id=236952

LayoutTests/imported/w3c:

Web Platform Test
https://github.com/web-platform-tests/wpt/pull/32921

Patch by Marcos Caceres <Marcos Caceres> on 2022-02-22
Reviewed by Youenn Fablet.

  • web-platform-tests/permissions/non-fully-active.https-expected.txt: Added.
  • web-platform-tests/permissions/non-fully-active.https.html: Added.
  • web-platform-tests/permissions/resources/empty.html: Added.

Source/WebCore:

Spec change:
https://github.com/w3c/permissions/pull/365

Patch by Marcos Caceres <Marcos Caceres> on 2022-02-22
Reviewed by Youenn Fablet.

Test: imported/w3c/web-platform-tests/permissions/non-fully-active.https.html

  • Modules/permissions/PermissionStatus.cpp:

(WebCore::PermissionStatus::stateChanged):

  • Modules/permissions/Permissions.cpp:

(WebCore::Permissions::query):

Location:
trunk
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/imported/w3c/ChangeLog

    r290300 r290301  
     12022-02-22  Marcos Caceres  <marcos@marcosc.com>
     2
     3        Permission API: handle non-fully active documents
     4        https://bugs.webkit.org/show_bug.cgi?id=236952
     5
     6        Web Platform Test
     7        https://github.com/web-platform-tests/wpt/pull/32921
     8
     9        Reviewed by Youenn Fablet.
     10
     11        * web-platform-tests/permissions/non-fully-active.https-expected.txt: Added.
     12        * web-platform-tests/permissions/non-fully-active.https.html: Added.
     13        * web-platform-tests/permissions/resources/empty.html: Added.
     14
    1152022-02-22  Asumu Takikawa  <asumu@igalia.com>
    216
  • trunk/Source/WebCore/ChangeLog

    r290300 r290301  
     12022-02-22  Marcos Caceres  <marcos@marcosc.com>
     2
     3        Permission API: handle non-fully active documents
     4        https://bugs.webkit.org/show_bug.cgi?id=236952
     5
     6        Spec change:
     7        https://github.com/w3c/permissions/pull/365
     8
     9        Reviewed by Youenn Fablet.
     10
     11        Test: imported/w3c/web-platform-tests/permissions/non-fully-active.https.html
     12
     13        * Modules/permissions/PermissionStatus.cpp:
     14        (WebCore::PermissionStatus::stateChanged):
     15        * Modules/permissions/Permissions.cpp:
     16        (WebCore::Permissions::query):
     17
    1182022-02-22  Asumu Takikawa  <asumu@igalia.com>
    219
  • trunk/Source/WebCore/Modules/permissions/PermissionStatus.cpp

    r284080 r290301  
    7070        return;
    7171
     72    if (auto* document = dynamicDowncast<Document>(scriptExecutionContext()); !document->isFullyActive())
     73        return;
     74
    7275    m_state = newState;
    7376    queueTaskToDispatchEvent(*this, TaskSource::Permission, Event::create(eventNames().changeEvent, Event::CanBubble::No, Event::IsCancelable::No));
  • trunk/Source/WebCore/Modules/permissions/Permissions.cpp

    r289612 r290301  
    8585
    8686    auto context = m_navigator ? m_navigator->scriptExecutionContext() : nullptr;
     87
    8788    if (!context || !context->globalObject()) {
    8889        promise.reject(Exception { InvalidStateError, "The context is invalid"_s });
     90        return;
     91    }
     92
     93    if (auto* document = dynamicDowncast<Document>(context); !document->isFullyActive()) {
     94        promise.reject(Exception { InvalidStateError, "The document is not fully active"_s });
    8995        return;
    9096    }
Note: See TracChangeset for help on using the changeset viewer.