Commit 0cb18019 authored by Raphael Kubo da Costa's avatar Raphael Kubo da Costa Committed by Commit Bot

wake lock: Remove WakeLockEvent and WakeLockEventInit.

This implements https://github.com/w3c/wake-lock/pull/242.

WakeLockEvent just duplicates functionality that is available in Event
itself, so just emit Events instead.

ev.lock can be accessed via ev.target, which comes from Event itself.

Bug: 1015320
Change-Id: Iadb4d48629520605bdb4332bb02a62d022fab16e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1865347
Commit-Queue: Reilly Grant <reillyg@chromium.org>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
Cr-Commit-Position: refs/heads/master@{#706975}
parent dadbf2ba
...@@ -69,7 +69,6 @@ generate_event_interfaces("modules_bindings_generated_event_interfaces") { ...@@ -69,7 +69,6 @@ generate_event_interfaces("modules_bindings_generated_event_interfaces") {
"//third_party/blink/renderer/modules/speech/speech_synthesis_event.idl", "//third_party/blink/renderer/modules/speech/speech_synthesis_event.idl",
"//third_party/blink/renderer/modules/storage/storage_event.idl", "//third_party/blink/renderer/modules/storage/storage_event.idl",
"//third_party/blink/renderer/modules/vr/vr_display_event.idl", "//third_party/blink/renderer/modules/vr/vr_display_event.idl",
"//third_party/blink/renderer/modules/wake_lock/wake_lock_event.idl",
"//third_party/blink/renderer/modules/webaudio/audio_processing_event.idl", "//third_party/blink/renderer/modules/webaudio/audio_processing_event.idl",
"//third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.idl", "//third_party/blink/renderer/modules/webaudio/offline_audio_completion_event.idl",
"//third_party/blink/renderer/modules/webgl/webgl_context_event.idl", "//third_party/blink/renderer/modules/webgl/webgl_context_event.idl",
......
...@@ -354,7 +354,6 @@ modules_idl_files = ...@@ -354,7 +354,6 @@ modules_idl_files =
"vr/vr_pose.idl", "vr/vr_pose.idl",
"vr/vr_stage_parameters.idl", "vr/vr_stage_parameters.idl",
"wake_lock/wake_lock.idl", "wake_lock/wake_lock.idl",
"wake_lock/wake_lock_event.idl",
"wake_lock/wake_lock_sentinel.idl", "wake_lock/wake_lock_sentinel.idl",
"webaudio/analyser_node.idl", "webaudio/analyser_node.idl",
"webaudio/audio_buffer.idl", "webaudio/audio_buffer.idl",
...@@ -803,7 +802,6 @@ modules_dictionary_idl_files = ...@@ -803,7 +802,6 @@ modules_dictionary_idl_files =
"storage/storage_event_init.idl", "storage/storage_event_init.idl",
"vr/vr_display_event_init.idl", "vr/vr_display_event_init.idl",
"vr/vr_layer_init.idl", "vr/vr_layer_init.idl",
"wake_lock/wake_lock_event_init.idl",
"webaudio/analyser_options.idl", "webaudio/analyser_options.idl",
"webaudio/audio_buffer_options.idl", "webaudio/audio_buffer_options.idl",
"webaudio/audio_buffer_source_options.idl", "webaudio/audio_buffer_source_options.idl",
......
...@@ -10,8 +10,6 @@ blink_modules_sources("wake_lock") { ...@@ -10,8 +10,6 @@ blink_modules_sources("wake_lock") {
"navigator_wake_lock.h", "navigator_wake_lock.h",
"wake_lock.cc", "wake_lock.cc",
"wake_lock.h", "wake_lock.h",
"wake_lock_event.cc",
"wake_lock_event.h",
"wake_lock_sentinel.cc", "wake_lock_sentinel.cc",
"wake_lock_sentinel.h", "wake_lock_sentinel.h",
"wake_lock_state_record.cc", "wake_lock_state_record.cc",
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_event.h"
#include "base/logging.h"
#include "third_party/blink/renderer/modules/event_interface_modules_names.h"
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_event_init.h"
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
namespace blink {
// static
WakeLockEvent* WakeLockEvent::Create(const AtomicString& type,
const WakeLockEventInit* initializer) {
DCHECK(initializer->hasLock());
return MakeGarbageCollected<WakeLockEvent>(type, initializer);
}
WakeLockEvent::WakeLockEvent(const AtomicString& type,
const WakeLockEventInit* initializer)
: Event(type, initializer), lock_(initializer->lock()) {
DCHECK_NE(nullptr, lock_);
}
WakeLockEvent::WakeLockEvent(const AtomicString& type, WakeLockSentinel* lock)
: Event(type, Bubbles::kNo, Cancelable::kNo), lock_(lock) {}
WakeLockEvent::~WakeLockEvent() = default;
WakeLockSentinel* WakeLockEvent::lock() const {
return lock_;
}
const AtomicString& WakeLockEvent::InterfaceName() const {
return event_interface_names::kWakeLockEvent;
}
void WakeLockEvent::Trace(blink::Visitor* visitor) {
visitor->Trace(lock_);
Event::Trace(visitor);
}
} // namespace blink
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_EVENT_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_EVENT_H_
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/platform/bindings/script_wrappable.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"
namespace blink {
class WakeLockEventInit;
class WakeLockSentinel;
class WakeLockEvent final : public Event {
DEFINE_WRAPPERTYPEINFO();
public:
static WakeLockEvent* Create(const AtomicString& type,
const WakeLockEventInit* initializer);
WakeLockEvent(const AtomicString& type, const WakeLockEventInit* initializer);
WakeLockEvent(const AtomicString& type, WakeLockSentinel* lock);
~WakeLockEvent() override;
// Web-exposed APIs.
WakeLockSentinel* lock() const;
// Event overrides.
const AtomicString& InterfaceName() const override;
void Trace(blink::Visitor* visitor) override;
private:
const Member<WakeLockSentinel> lock_;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_WAKE_LOCK_WAKE_LOCK_EVENT_H_
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[
SecureContext,
Exposed=(DedicatedWorker,Window),
Constructor(DOMString type, WakeLockEventInit init),
RuntimeEnabled=WakeLock
] interface WakeLockEvent : Event {
readonly attribute WakeLockSentinel lock;
};
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
dictionary WakeLockEventInit : EventInit {
required WakeLockSentinel lock;
};
...@@ -5,10 +5,9 @@ ...@@ -5,10 +5,9 @@
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h" #include "third_party/blink/renderer/modules/wake_lock/wake_lock_sentinel.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/modules/event_target_modules_names.h" #include "third_party/blink/renderer/modules/event_target_modules_names.h"
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_event.h"
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_event_init.h"
#include "third_party/blink/renderer/modules/wake_lock/wake_lock_state_record.h" #include "third_party/blink/renderer/modules/wake_lock/wake_lock_state_record.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h"
...@@ -69,8 +68,7 @@ void WakeLockSentinel::DoRelease() { ...@@ -69,8 +68,7 @@ void WakeLockSentinel::DoRelease() {
manager_->UnregisterSentinel(this); manager_->UnregisterSentinel(this);
manager_.Clear(); manager_.Clear();
DispatchEvent( DispatchEvent(*Event::Create(event_type_names::kRelease));
*MakeGarbageCollected<WakeLockEvent>(event_type_names::kRelease, this));
} }
} // namespace blink } // namespace blink
...@@ -1518,10 +1518,6 @@ Starting worker: resources/global-interface-listing-worker.js ...@@ -1518,10 +1518,6 @@ Starting worker: resources/global-interface-listing-worker.js
[Worker] attribute @@toStringTag [Worker] attribute @@toStringTag
[Worker] method constructor [Worker] method constructor
[Worker] method request [Worker] method request
[Worker] interface WakeLockEvent : Event
[Worker] attribute @@toStringTag
[Worker] getter lock
[Worker] method constructor
[Worker] interface WakeLockSentinel : EventTarget [Worker] interface WakeLockSentinel : EventTarget
[Worker] attribute @@toStringTag [Worker] attribute @@toStringTag
[Worker] getter onrelease [Worker] getter onrelease
......
...@@ -8464,10 +8464,6 @@ interface WakeLock ...@@ -8464,10 +8464,6 @@ interface WakeLock
attribute @@toStringTag attribute @@toStringTag
method constructor method constructor
method request method request
interface WakeLockEvent : Event
attribute @@toStringTag
getter lock
method constructor
interface WakeLockSentinel : EventTarget interface WakeLockSentinel : EventTarget
attribute @@toStringTag attribute @@toStringTag
getter onrelease getter onrelease
......
<!DOCTYPE html>
<link rel="help" href="https://w3c.github.io/wake-lock/#the-onrelease-attribute">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
// TODO(https://crbug.com/1015327): Move this to WPT once we can change
// permissions via testdriver.js.
async_test(async t => {
window.testRunner.setPermission('wake-lock-screen', 'granted', location.origin, location.origin);
const lock = await navigator.wakeLock.request("screen");
lock.onrelease = t.step_func_done((ev) => {
assert_class_string(ev, "Event", "release() must fire an Event object");
assert_equals(ev.target, lock, "The event's target must be the lock that was acquired");
assert_true(ev.isTrusted);
assert_false(ev.bubbles);
assert_false(ev.cancelable);
});
await lock.release();
}, "Test onreleased event's basic properties");
</script>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment