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() {
auto* local_frame_client = Client();
if (!local_frame_client)
return nullptr;
frame_resource_coordinator_.reset(FrameResourceCoordinator::Create(
local_frame_client->GetInterfaceProvider()));
frame_resource_coordinator_ = FrameResourceCoordinator::Create(
local_frame_client->GetInterfaceProvider());
}
return frame_resource_coordinator_.get();
}
......
......@@ -4,39 +4,35 @@
#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"
namespace blink {
// static
FrameResourceCoordinator* FrameResourceCoordinator::Create(
std::unique_ptr<FrameResourceCoordinator> FrameResourceCoordinator::Create(
service_manager::InterfaceProvider* interface_provider) {
return new FrameResourceCoordinator(interface_provider);
return base::WrapUnique(new FrameResourceCoordinator(interface_provider));
}
FrameResourceCoordinator::FrameResourceCoordinator(
service_manager::InterfaceProvider* interface_provider) {
interface_provider->GetInterface(mojo::MakeRequest(&service_));
DCHECK(service_);
}
FrameResourceCoordinator::~FrameResourceCoordinator() = default;
void FrameResourceCoordinator::SetNetworkAlmostIdle(bool idle) {
if (!service_)
return;
service_->SetNetworkAlmostIdle(idle);
}
void FrameResourceCoordinator::SetLifecycleState(
resource_coordinator::mojom::LifecycleState state) {
if (!service_)
return;
service_->SetLifecycleState(state);
}
void FrameResourceCoordinator::OnNonPersistentNotificationCreated() {
if (!service_)
return;
service_->OnNonPersistentNotificationCreated();
}
......
......@@ -19,7 +19,8 @@ class PLATFORM_EXPORT FrameResourceCoordinator final
WTF_MAKE_NONCOPYABLE(FrameResourceCoordinator);
public:
static FrameResourceCoordinator* Create(service_manager::InterfaceProvider*);
static std::unique_ptr<FrameResourceCoordinator> Create(
service_manager::InterfaceProvider*);
~FrameResourceCoordinator();
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