Commit 41d89ed0 authored by Johann's avatar Johann Committed by Commit Bot

DeviceOrientation: use LocalFrame references

LocalFrame is guaranteed to not be null. Add an extra layer
enforcing this by passing references.

Bug: 850619
Change-Id: I5a0c4d1f22dfb04bd8066af58d9f61fdc6149c83
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2217912
Commit-Queue: Johann Koenig <johannkoenig@google.com>
Reviewed-by: default avatarNate Chapin <japhet@chromium.org>
Reviewed-by: default avatarReilly Grant <reillyg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#773141}
parent 4a31cefd
......@@ -65,7 +65,7 @@ void DeviceMotionController::DidAddEventListener(
{mojom::blink::FeaturePolicyFeature::kAccelerometer,
mojom::blink::FeaturePolicyFeature::kGyroscope})) {
DeviceOrientationController::LogToConsolePolicyFeaturesDisabled(
GetWindow().GetFrame(), EventTypeName());
*GetWindow().GetFrame(), EventTypeName());
return;
}
}
......@@ -81,11 +81,8 @@ bool DeviceMotionController::HasLastData() {
void DeviceMotionController::RegisterWithDispatcher() {
if (!motion_event_pump_) {
LocalFrame* frame = GetWindow().GetFrame();
if (!frame)
return;
scoped_refptr<base::SingleThreadTaskRunner> task_runner =
frame->GetTaskRunner(TaskType::kSensor);
GetWindow().GetTaskRunner(TaskType::kSensor);
motion_event_pump_ =
MakeGarbageCollected<DeviceMotionEventPump>(task_runner);
}
......
......@@ -47,7 +47,7 @@ void DeviceMotionEventPump::SetController(PlatformEventController* controller) {
DCHECK(!controller_);
controller_ = controller;
StartListening(controller_->GetWindow().GetFrame());
StartListening(*controller_->GetWindow().GetFrame());
}
void DeviceMotionEventPump::RemoveController() {
......@@ -68,18 +68,13 @@ void DeviceMotionEventPump::Trace(Visitor* visitor) const {
DeviceSensorEventPump::Trace(visitor);
}
void DeviceMotionEventPump::StartListening(LocalFrame* frame) {
// TODO(crbug.com/850619): ensure a valid frame is passed
if (!frame)
return;
void DeviceMotionEventPump::StartListening(LocalFrame& frame) {
Start(frame);
}
void DeviceMotionEventPump::SendStartMessage(LocalFrame* frame) {
void DeviceMotionEventPump::SendStartMessage(LocalFrame& frame) {
if (!sensor_provider_) {
DCHECK(frame);
frame->GetBrowserInterfaceBroker().GetInterface(
frame.GetBrowserInterfaceBroker().GetInterface(
sensor_provider_.BindNewPipeAndPassReceiver());
sensor_provider_.set_disconnect_handler(
WTF::Bind(&DeviceSensorEventPump::HandleSensorProviderError,
......
......@@ -34,7 +34,7 @@ class MODULES_EXPORT DeviceMotionEventPump
void Trace(Visitor*) const override;
// DeviceSensorEventPump:
void SendStartMessage(LocalFrame* frame) override;
void SendStartMessage(LocalFrame& frame) override;
void SendStopMessage() override;
protected:
......@@ -48,7 +48,7 @@ class MODULES_EXPORT DeviceMotionEventPump
private:
friend class DeviceMotionEventPumpTest;
void StartListening(LocalFrame*);
void StartListening(LocalFrame&);
void StopListening();
void NotifyController();
......
......@@ -65,7 +65,7 @@ void DeviceOrientationAbsoluteController::DidAddEventListener(
{mojom::blink::FeaturePolicyFeature::kAccelerometer,
mojom::blink::FeaturePolicyFeature::kGyroscope,
mojom::blink::FeaturePolicyFeature::kMagnetometer})) {
LogToConsolePolicyFeaturesDisabled(GetWindow().GetFrame(),
LogToConsolePolicyFeaturesDisabled(*GetWindow().GetFrame(),
EventTypeName());
return;
}
......
......@@ -74,7 +74,7 @@ void DeviceOrientationController::DidAddEventListener(
if (!CheckPolicyFeatures(
{mojom::blink::FeaturePolicyFeature::kAccelerometer,
mojom::blink::FeaturePolicyFeature::kGyroscope})) {
LogToConsolePolicyFeaturesDisabled(GetWindow().GetFrame(),
LogToConsolePolicyFeaturesDisabled(*GetWindow().GetFrame(),
EventTypeName());
return;
}
......@@ -152,10 +152,8 @@ void DeviceOrientationController::RegisterWithOrientationEventPump(
// static
void DeviceOrientationController::LogToConsolePolicyFeaturesDisabled(
LocalFrame* frame,
LocalFrame& frame,
const AtomicString& event_name) {
if (!frame)
return;
const String& message = String::Format(
"The %s events are blocked by feature policy. "
"See "
......@@ -165,7 +163,7 @@ void DeviceOrientationController::LogToConsolePolicyFeaturesDisabled(
auto* console_message = MakeGarbageCollected<ConsoleMessage>(
mojom::ConsoleMessageSource::kJavaScript,
mojom::ConsoleMessageLevel::kWarning, std::move(message));
frame->Console().AddMessage(console_message);
frame.Console().AddMessage(console_message);
}
} // namespace blink
......@@ -39,7 +39,7 @@ class MODULES_EXPORT DeviceOrientationController
void Trace(Visitor*) const override;
static void LogToConsolePolicyFeaturesDisabled(
LocalFrame*,
LocalFrame&,
const AtomicString& event_name);
protected:
......
......@@ -61,11 +61,10 @@ DeviceOrientationEventPump::~DeviceOrientationEventPump() = default;
void DeviceOrientationEventPump::SetController(
PlatformEventController* controller) {
DCHECK(controller);
DCHECK(controller->GetWindow().GetFrame());
DCHECK(!controller_);
controller_ = controller;
Start(controller_->GetWindow().GetFrame());
Start(*controller_->GetWindow().GetFrame());
}
void DeviceOrientationEventPump::RemoveController() {
......@@ -86,11 +85,9 @@ void DeviceOrientationEventPump::Trace(Visitor* visitor) const {
visitor->Trace(controller_);
}
void DeviceOrientationEventPump::SendStartMessage(LocalFrame* frame) {
void DeviceOrientationEventPump::SendStartMessage(LocalFrame& frame) {
if (!sensor_provider_) {
DCHECK(frame);
frame->GetBrowserInterfaceBroker().GetInterface(
frame.GetBrowserInterfaceBroker().GetInterface(
sensor_provider_.BindNewPipeAndPassReceiver());
sensor_provider_.set_disconnect_handler(
WTF::Bind(&DeviceSensorEventPump::HandleSensorProviderError,
......
......@@ -40,7 +40,7 @@ class MODULES_EXPORT DeviceOrientationEventPump
void Trace(Visitor*) const override;
// DeviceSensorEventPump:
void SendStartMessage(LocalFrame* frame) override;
void SendStartMessage(LocalFrame& frame) override;
void SendStopMessage() override;
protected:
......
......@@ -6,7 +6,7 @@
namespace blink {
void DeviceSensorEventPump::Start(LocalFrame* frame) {
void DeviceSensorEventPump::Start(LocalFrame& frame) {
DVLOG(2) << "requested start";
if (state_ != PumpState::STOPPED)
......
......@@ -45,11 +45,11 @@ class MODULES_EXPORT DeviceSensorEventPump : public GarbageCollectedMixin {
virtual ~DeviceSensorEventPump();
// Manage PumpState and call SendStartMessage.
void Start(LocalFrame* frame);
void Start(LocalFrame& frame);
// This method is expected to send an IPC to the browser process to let it
// know that it should start observing.
virtual void SendStartMessage(LocalFrame*) = 0;
virtual void SendStartMessage(LocalFrame&) = 0;
// Manage PumpState and call SendStopMessage.
void Stop();
......
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