Commit 75c86c30 authored by Francois Doray's avatar Francois Doray Committed by Commit Bot

RC: Assume that service is created in renderer-side FrameResourceCoordinator.

mojo::MakeRequest never fails to create to initialize the InterfacePtr
and it is ok to start using the InterfacePtr before initialization is
complete.
https://cs.chromium.org/chromium/src/mojo/public/cpp/bindings/interface_request.h?l=96-99&rcl=2985a2476a50ee04dbd78b6a0c3228c5f96a2559

Change-Id: Ie5ec84cdcf8896cf646a58aca4ceab8db82eb428
Reviewed-on: https://chromium-review.googlesource.com/1249811Reviewed-by: default avatarDaniel Cheng <dcheng@chromium.org>
Reviewed-by: default avatarSigurður Ásgeirsson <siggi@chromium.org>
Commit-Queue: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595212}
parent fd2f311d
...@@ -1214,8 +1214,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() { ...@@ -1214,8 +1214,8 @@ FrameResourceCoordinator* LocalFrame::GetFrameResourceCoordinator() {
auto* local_frame_client = Client(); auto* local_frame_client = Client();
if (!local_frame_client) if (!local_frame_client)
return nullptr; return nullptr;
frame_resource_coordinator_.reset(FrameResourceCoordinator::Create( frame_resource_coordinator_ = FrameResourceCoordinator::Create(
local_frame_client->GetInterfaceProvider())); local_frame_client->GetInterfaceProvider());
} }
return frame_resource_coordinator_.get(); return frame_resource_coordinator_.get();
} }
......
...@@ -4,39 +4,35 @@ ...@@ -4,39 +4,35 @@
#include "third_party/blink/renderer/platform/instrumentation/resource_coordinator/frame_resource_coordinator.h" #include "third_party/blink/renderer/platform/instrumentation/resource_coordinator/frame_resource_coordinator.h"
#include "base/memory/ptr_util.h"
#include "services/service_manager/public/cpp/interface_provider.h" #include "services/service_manager/public/cpp/interface_provider.h"
namespace blink { namespace blink {
// static // static
FrameResourceCoordinator* FrameResourceCoordinator::Create( std::unique_ptr<FrameResourceCoordinator> FrameResourceCoordinator::Create(
service_manager::InterfaceProvider* interface_provider) { service_manager::InterfaceProvider* interface_provider) {
return new FrameResourceCoordinator(interface_provider); return base::WrapUnique(new FrameResourceCoordinator(interface_provider));
} }
FrameResourceCoordinator::FrameResourceCoordinator( FrameResourceCoordinator::FrameResourceCoordinator(
service_manager::InterfaceProvider* interface_provider) { service_manager::InterfaceProvider* interface_provider) {
interface_provider->GetInterface(mojo::MakeRequest(&service_)); interface_provider->GetInterface(mojo::MakeRequest(&service_));
DCHECK(service_);
} }
FrameResourceCoordinator::~FrameResourceCoordinator() = default; FrameResourceCoordinator::~FrameResourceCoordinator() = default;
void FrameResourceCoordinator::SetNetworkAlmostIdle(bool idle) { void FrameResourceCoordinator::SetNetworkAlmostIdle(bool idle) {
if (!service_)
return;
service_->SetNetworkAlmostIdle(idle); service_->SetNetworkAlmostIdle(idle);
} }
void FrameResourceCoordinator::SetLifecycleState( void FrameResourceCoordinator::SetLifecycleState(
resource_coordinator::mojom::LifecycleState state) { resource_coordinator::mojom::LifecycleState state) {
if (!service_)
return;
service_->SetLifecycleState(state); service_->SetLifecycleState(state);
} }
void FrameResourceCoordinator::OnNonPersistentNotificationCreated() { void FrameResourceCoordinator::OnNonPersistentNotificationCreated() {
if (!service_)
return;
service_->OnNonPersistentNotificationCreated(); service_->OnNonPersistentNotificationCreated();
} }
......
...@@ -19,7 +19,8 @@ class PLATFORM_EXPORT FrameResourceCoordinator final ...@@ -19,7 +19,8 @@ class PLATFORM_EXPORT FrameResourceCoordinator final
WTF_MAKE_NONCOPYABLE(FrameResourceCoordinator); WTF_MAKE_NONCOPYABLE(FrameResourceCoordinator);
public: public:
static FrameResourceCoordinator* Create(service_manager::InterfaceProvider*); static std::unique_ptr<FrameResourceCoordinator> Create(
service_manager::InterfaceProvider*);
~FrameResourceCoordinator(); ~FrameResourceCoordinator();
void SetNetworkAlmostIdle(bool); void SetNetworkAlmostIdle(bool);
......
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