page_info_helper.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
1e002631101d3bafbc90ed8589ffc615f04dc245bDavid Blaikie// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek// Use of this source code is governed by a BSD-style license that can be
3fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek// found in the LICENSE file.
4fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek
5fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "chrome/browser/ui/views/location_bar/page_info_helper.h"
6fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek
7fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "chrome/browser/search/search.h"
8fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "chrome/browser/ui/omnibox/omnibox_view.h"
9fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
10bc9e5582467e70ec38b9fc5d3605152e86e2a5f8Richard Smith#include "content/public/browser/navigation_controller.h"
11fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "content/public/browser/navigation_entry.h"
12fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "content/public/browser/web_contents.h"
13fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek#include "ui/views/view.h"
14fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek
15fad7f85553da052559077f28c6937a8dd704b28dManuel Klimekusing content::NavigationController;
16fad7f85553da052559077f28c6937a8dd704b28dManuel Klimekusing content::NavigationEntry;
17fad7f85553da052559077f28c6937a8dd704b28dManuel Klimekusing content::WebContents;
18fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek
19fad7f85553da052559077f28c6937a8dd704b28dManuel KlimekPageInfoHelper::PageInfoHelper(const views::View* owner,
20fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek                               LocationBarView* location_bar)
21fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek    : owner_(owner),
22fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek      location_bar_(location_bar) {
23fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek}
24fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek
25fad7f85553da052559077f28c6937a8dd704b28dManuel Klimekvoid PageInfoHelper::ProcessEvent(const ui::LocatedEvent& event) {
26fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek  if (!owner_->HitTestPoint(event.location()))
27fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek    return;
28fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek
29fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek  WebContents* tab = location_bar_->GetWebContents();
3052ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper  if (!tab)
3152ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper    return;
3252ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper  const NavigationController& controller = tab->GetController();
3352ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper  // Important to use GetVisibleEntry to match what's showing in the omnibox.
3452ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper  NavigationEntry* nav_entry = controller.GetVisibleEntry();
3552ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper  DCHECK(nav_entry);
3652ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper  location_bar_->delegate()->ShowWebsiteSettings(
3752ec0c0357ce970ca52a27c1086626450f0967e7Daniel Jasper      tab, nav_entry->GetURL(), nav_entry->GetSSL());
38fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek}
39fad7f85553da052559077f28c6937a8dd704b28dManuel Klimek