// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ui/user_manager.h"

#include "components/guest_view/browser/guest_view_manager.h"

namespace {

bool AddToSet(std::set<content::WebContents*>* content_set,
              content::WebContents* web_contents) {
  content_set->insert(web_contents);
  return false;
}

}  // namespace

UserManagerProfileDialog::BaseDialogDelegate::BaseDialogDelegate()
    : guest_web_contents_(nullptr) {}

bool UserManagerProfileDialog::BaseDialogDelegate::HandleContextMenu(
    const content::ContextMenuParams& params) {
  // Ignores context menu.
  return true;
}

void UserManagerProfileDialog::BaseDialogDelegate::LoadingStateChanged(
    content::WebContents* source,
    bool to_different_document) {
  if (source->IsLoading() || guest_web_contents_)
    return;

  // Try to find the embedded WebView and manage its WebContents. The WebView
  // may not be found in the initial page load since it loads asynchronously.
  std::set<content::WebContents*> content_set;
  guest_view::GuestViewManager* manager =
      guest_view::GuestViewManager::FromBrowserContext(
          source->GetBrowserContext());
  if (manager)
    manager->ForEachGuest(source, base::Bind(&AddToSet, &content_set));
  DCHECK_LE(content_set.size(), 1U);
  if (!content_set.empty()) {
    guest_web_contents_ = *content_set.begin();
    guest_web_contents_->SetDelegate(this);
  }
}
