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