Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(815)

Unified Diff: content/browser/presentation/presentation_service_impl.cc

Issue 1102683002: Revert of [Presentation API] Implement ondefaultsessionstart in PSImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/presentation/presentation_service_impl.cc
diff --git a/content/browser/presentation/presentation_service_impl.cc b/content/browser/presentation/presentation_service_impl.cc
index e22e9149eb2e86ce40775bb7405deac5c7bfea83..2d6769e0f102397ace4313ab131c28f4e247d1b9 100644
--- a/content/browser/presentation/presentation_service_impl.cc
+++ b/content/browser/presentation/presentation_service_impl.cc
@@ -23,24 +23,23 @@
WebContents* web_contents,
PresentationServiceDelegate* delegate)
: WebContentsObserver(web_contents),
+ render_frame_host_(render_frame_host),
delegate_(delegate),
is_start_session_pending_(false),
next_request_session_id_(0),
weak_factory_(this) {
- DCHECK(render_frame_host);
+ DCHECK(render_frame_host_);
DCHECK(web_contents);
-
- render_process_id_ = render_frame_host->GetProcess()->GetID();
- render_frame_id_ = render_frame_host->GetRoutingID();
DVLOG(2) << "PresentationServiceImpl: "
- << render_process_id_ << ", " << render_frame_id_;
+ << render_frame_host_->GetProcess()->GetID() << ", "
+ << render_frame_host_->GetRoutingID();
if (delegate_)
- delegate_->AddObserver(render_process_id_, render_frame_id_, this);
+ delegate_->AddObserver(this);
}
PresentationServiceImpl::~PresentationServiceImpl() {
if (delegate_)
- delegate_->RemoveObserver(render_process_id_, render_frame_id_);
+ delegate_->RemoveObserver(this);
FlushNewSessionCallbacks();
}
@@ -84,7 +83,9 @@
linked_ptr<ScreenAvailabilityContext> context(
new ScreenAvailabilityContext(presentation_url));
if (!delegate_->AddScreenAvailabilityListener(
- render_process_id_, render_frame_id_, context.get())) {
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID(),
+ context.get())) {
DVLOG(1) << "AddScreenAvailabilityListener failed. Ignoring request.";
return nullptr;
}
@@ -124,7 +125,9 @@
return;
delegate_->RemoveScreenAvailabilityListener(
- render_process_id_, render_frame_id_, it->second.get());
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID(),
+ it->second.get());
// Resolve the context's pending callbacks before removing it.
it->second->OnScreenAvailabilityChanged(false);
availability_contexts_.erase(it);
@@ -132,9 +135,7 @@
void PresentationServiceImpl::ListenForDefaultSessionStart(
const DefaultSessionMojoCallback& callback) {
- if (!default_session_start_context_.get())
- default_session_start_context_.reset(new DefaultSessionStartContext);
- default_session_start_context_->AddCallback(callback);
+ NOTIMPLEMENTED();
}
void PresentationServiceImpl::StartSession(
@@ -168,8 +169,8 @@
int request_session_id = RegisterNewSessionCallback(callback);
delegate_->JoinSession(
- render_process_id_,
- render_frame_id_,
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID(),
presentation_url,
presentation_id,
base::Bind(&PresentationServiceImpl::OnStartOrJoinSessionSucceeded,
@@ -213,8 +214,8 @@
int request_session_id = RegisterNewSessionCallback(callback);
is_start_session_pending_ = true;
delegate_->StartSession(
- render_process_id_,
- render_frame_id_,
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID(),
presentation_url,
presentation_id,
base::Bind(&PresentationServiceImpl::OnStartOrJoinSessionSucceeded,
@@ -265,8 +266,8 @@
const std::string& default_presentation_id) {
DCHECK(delegate_);
delegate_->SetDefaultPresentationUrl(
- render_process_id_,
- render_frame_id_,
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID(),
default_presentation_url,
default_presentation_id);
default_presentation_url_ = default_presentation_url;
@@ -306,8 +307,8 @@
// Remove listener for old default presentation URL.
delegate_->RemoveScreenAvailabilityListener(
- render_process_id_,
- render_frame_id_,
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID(),
old_it->second.get());
availability_contexts_.erase(old_it);
DoSetDefaultPresentationUrl(new_default_url, default_presentation_id);
@@ -322,15 +323,6 @@
void PresentationServiceImpl::ListenForSessionStateChange(
const SessionStateCallback& callback) {
NOTIMPLEMENTED();
-}
-
-bool PresentationServiceImpl::FrameMatches(
- content::RenderFrameHost* render_frame_host) const {
- if (!render_frame_host)
- return false;
-
- return render_frame_host->GetProcess()->GetID() == render_process_id_ &&
- render_frame_host->GetRoutingID() == render_frame_id_;
}
void PresentationServiceImpl::DidNavigateAnyFrame(
@@ -338,7 +330,7 @@
const content::LoadCommittedDetails& details,
const content::FrameNavigateParams& params) {
DVLOG(2) << "PresentationServiceImpl::DidNavigateAnyFrame";
- if (!FrameMatches(render_frame_host))
+ if (render_frame_host_ != render_frame_host)
return;
std::string prev_url_host = details.previous_url.host();
@@ -363,26 +355,29 @@
void PresentationServiceImpl::RenderFrameDeleted(
content::RenderFrameHost* render_frame_host) {
DVLOG(2) << "PresentationServiceImpl::RenderFrameDeleted";
- if (!FrameMatches(render_frame_host))
- return;
-
- // RenderFrameDeleted means the associated RFH is going to be deleted soon.
+ if (render_frame_host_ != render_frame_host)
+ return;
+
+ // RenderFrameDeleted means |render_frame_host_| is going to be deleted soon.
// This object should also be deleted.
Reset();
+ render_frame_host_ = nullptr;
delete this;
}
void PresentationServiceImpl::Reset() {
DVLOG(2) << "PresentationServiceImpl::Reset";
- if (delegate_)
- delegate_->Reset(render_process_id_, render_frame_id_);
+ if (delegate_) {
+ delegate_->Reset(
+ render_frame_host_->GetProcess()->GetID(),
+ render_frame_host_->GetRoutingID());
+ }
default_presentation_url_.clear();
default_presentation_id_.clear();
availability_contexts_.clear();
queued_start_session_requests_.clear();
FlushNewSessionCallbacks();
- default_session_start_context_.reset();
}
// static
@@ -398,12 +393,6 @@
DVLOG(2) << "PresentationServiceImpl::OnDelegateDestroyed";
delegate_ = nullptr;
Reset();
-}
-
-void PresentationServiceImpl::OnDefaultPresentationStarted(
- const PresentationSessionInfo& session) {
- if (default_session_start_context_.get())
- default_session_start_context_->set_session(session);
}
PresentationServiceImpl::ScreenAvailabilityContext::ScreenAvailabilityContext(
@@ -489,46 +478,5 @@
return callback;
}
-PresentationServiceImpl::DefaultSessionStartContext
-::DefaultSessionStartContext() {
-}
-
-PresentationServiceImpl::DefaultSessionStartContext
-::~DefaultSessionStartContext() {
- Reset();
-}
-
-void PresentationServiceImpl::DefaultSessionStartContext::AddCallback(
- const DefaultSessionMojoCallback& callback) {
- if (session_.get()) {
- DCHECK(callbacks_.empty());
- callback.Run(presentation::PresentationSessionInfo::From(*session_));
- session_.reset();
- } else {
- callbacks_.push_back(new DefaultSessionMojoCallback(callback));
- }
-}
-
-void PresentationServiceImpl::DefaultSessionStartContext::set_session(
- const PresentationSessionInfo& session) {
- if (callbacks_.empty()) {
- session_.reset(new PresentationSessionInfo(session));
- } else {
- DCHECK(!session_.get());
- ScopedVector<DefaultSessionMojoCallback> callbacks;
- callbacks.swap(callbacks_);
- for (const auto& callback : callbacks)
- callback->Run(presentation::PresentationSessionInfo::From(session));
- }
-}
-
-void PresentationServiceImpl::DefaultSessionStartContext::Reset() {
- ScopedVector<DefaultSessionMojoCallback> callbacks;
- callbacks.swap(callbacks_);
- for (const auto& callback : callbacks)
- callback->Run(presentation::PresentationSessionInfoPtr());
- session_.reset();
-}
-
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698