172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/ui/views/location_bar/click_handler.h"
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
721d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen#include "chrome/browser/ui/views/location_bar/location_bar_view.h"
9dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/tab_contents/navigation_controller.h"
10dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/tab_contents/tab_contents.h"
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "views/view.h"
12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochClickHandler::ClickHandler(const views::View* owner,
14dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                           LocationBarView* location_bar)
15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    : owner_(owner),
16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch      location_bar_(location_bar) {
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid ClickHandler::OnMouseReleased(const views::MouseEvent& event) {
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  if (!owner_->HitTest(event.location()))
21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    return;
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // Do not show page info if the user has been editing the location
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  // bar, or the location bar is at the NTP.
25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (location_bar_->location_entry()->IsEditingOrEmpty())
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    return;
27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
28201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  TabContents* tab = location_bar_->GetTabContentsWrapper()->tab_contents();
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  NavigationEntry* nav_entry = tab->controller().GetActiveEntry();
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  if (!nav_entry) {
31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    NOTREACHED();
32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch    return;
33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  tab->ShowPageInfo(nav_entry->url(), nav_entry->ssl(), true);
35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}
36