page_info_helper.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/ui/views/location_bar/page_info_helper.h" 6 7#include "chrome/browser/ui/omnibox/omnibox_view.h" 8#include "chrome/browser/ui/tab_contents/tab_contents.h" 9#include "chrome/browser/ui/views/location_bar/location_bar_view.h" 10#include "content/public/browser/navigation_controller.h" 11#include "content/public/browser/navigation_entry.h" 12#include "content/public/browser/web_contents.h" 13#include "ui/views/view.h" 14 15using content::NavigationController; 16using content::NavigationEntry; 17using content::WebContents; 18 19PageInfoHelper::PageInfoHelper(const views::View* owner, 20 LocationBarView* location_bar) 21 : owner_(owner), 22 location_bar_(location_bar) { 23} 24 25void PageInfoHelper::ProcessEvent(const ui::LocatedEvent& event) { 26 if (!owner_->HitTestPoint(event.location())) 27 return; 28 29 // Do not show page info if the user has been editing the location 30 // bar, or the location bar is at the NTP. 31 if (location_bar_->GetLocationEntry()->IsEditingOrEmpty()) 32 return; 33 34 WebContents* tab = location_bar_->GetTabContents()->web_contents(); 35 const NavigationController& controller = tab->GetController(); 36 NavigationEntry* nav_entry = controller.GetActiveEntry(); 37 if (!nav_entry) { 38 NOTREACHED(); 39 return; 40 } 41 42 location_bar_->delegate()->ShowPageInfo( 43 tab, nav_entry->GetURL(), nav_entry->GetSSL(), true); 44} 45