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