Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: chrome/browser/ui/views/frame/browser_view.cc

Issue 294903014: [DevTools] Add toolbox web contents to show in undocked mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/frame/browser_view.h" 5 #include "chrome/browser/ui/views/frame/browser_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 last_focused_view_storage_id_( 388 last_focused_view_storage_id_(
389 views::ViewStorage::GetInstance()->CreateStorageID()), 389 views::ViewStorage::GetInstance()->CreateStorageID()),
390 frame_(NULL), 390 frame_(NULL),
391 top_container_(NULL), 391 top_container_(NULL),
392 tabstrip_(NULL), 392 tabstrip_(NULL),
393 toolbar_(NULL), 393 toolbar_(NULL),
394 find_bar_host_view_(NULL), 394 find_bar_host_view_(NULL),
395 infobar_container_(NULL), 395 infobar_container_(NULL),
396 contents_web_view_(NULL), 396 contents_web_view_(NULL),
397 contents_container_(NULL), 397 contents_container_(NULL),
398 devtools_window_(NULL),
399 initialized_(false), 398 initialized_(false),
400 in_process_fullscreen_(false), 399 in_process_fullscreen_(false),
401 #if defined(OS_WIN) 400 #if defined(OS_WIN)
402 hung_window_detector_(&hung_plugin_action_), 401 hung_window_detector_(&hung_plugin_action_),
403 ticker_(0), 402 ticker_(0),
404 #endif 403 #endif
405 force_location_bar_focus_(false), 404 force_location_bar_focus_(false),
406 #if defined(OS_CHROMEOS) 405 #if defined(OS_CHROMEOS)
407 scroll_end_effect_controller_(ScrollEndEffectController::Create()), 406 scroll_end_effect_controller_(ScrollEndEffectController::Create()),
408 #endif 407 #endif
(...skipping 1683 matching lines...) Expand 10 before | Expand all | Expand 10 after
2092 2091
2093 bool BrowserView::MaybeShowInfoBar(WebContents* contents) { 2092 bool BrowserView::MaybeShowInfoBar(WebContents* contents) {
2094 // TODO(beng): Remove this function once the interface between 2093 // TODO(beng): Remove this function once the interface between
2095 // InfoBarContainer, DownloadShelfView and WebContents and this 2094 // InfoBarContainer, DownloadShelfView and WebContents and this
2096 // view is sorted out. 2095 // view is sorted out.
2097 return true; 2096 return true;
2098 } 2097 }
2099 2098
2100 void BrowserView::UpdateDevToolsForContents( 2099 void BrowserView::UpdateDevToolsForContents(
2101 WebContents* web_contents, bool update_devtools_web_contents) { 2100 WebContents* web_contents, bool update_devtools_web_contents) {
2102 DevToolsWindow* new_devtools_window = web_contents ? 2101 DevToolsContentsResizingStrategy strategy;
2103 DevToolsWindow::GetDockedInstanceForInspectedTab(web_contents) : NULL; 2102 WebContents* devtools = DevToolsWindow::GetInTabWebContents(
2103 web_contents, &strategy);
2104 2104
2105 // Replace devtools WebContents. 2105 if (!devtools_web_view_->web_contents() && devtools &&
2106 WebContents* new_contents = new_devtools_window ?
2107 new_devtools_window->web_contents() : NULL;
2108 if (devtools_web_view_->web_contents() != new_contents &&
2109 update_devtools_web_contents) {
2110 devtools_web_view_->SetWebContents(new_contents);
2111 }
2112
2113 if (!devtools_window_ && new_devtools_window &&
2114 !devtools_focus_tracker_.get()) { 2106 !devtools_focus_tracker_.get()) {
2115 // Install devtools focus tracker when dev tools window is shown for the 2107 // Install devtools focus tracker when dev tools window is shown for the
2116 // first time. 2108 // first time.
2117 devtools_focus_tracker_.reset( 2109 devtools_focus_tracker_.reset(
2118 new views::ExternalFocusTracker(devtools_web_view_, 2110 new views::ExternalFocusTracker(devtools_web_view_,
2119 GetFocusManager())); 2111 GetFocusManager()));
2120 } 2112 }
2121 2113
2122 // Restore focus to the last focused view when hiding devtools window. 2114 // Restore focus to the last focused view when hiding devtools window.
2123 if (devtools_window_ && !new_devtools_window && 2115 if (devtools_web_view_->web_contents() && !devtools &&
2124 devtools_focus_tracker_.get()) { 2116 devtools_focus_tracker_.get()) {
2125 devtools_focus_tracker_->FocusLastFocusedExternalView(); 2117 devtools_focus_tracker_->FocusLastFocusedExternalView();
2126 devtools_focus_tracker_.reset(); 2118 devtools_focus_tracker_.reset();
2127 } 2119 }
2128 2120
2129 devtools_window_ = new_devtools_window; 2121 // Replace devtools WebContents.
2130 if (devtools_window_) { 2122 if (devtools_web_view_->web_contents() != devtools &&
2131 devtools_web_view_->SetPreferredSize(devtools_window_->GetMinimumSize()); 2123 update_devtools_web_contents) {
2124 devtools_web_view_->SetWebContents(devtools);
2125 }
2126
2127 if (devtools) {
2132 devtools_web_view_->SetVisible(true); 2128 devtools_web_view_->SetVisible(true);
2133 GetContentsLayoutManager()->SetContentsResizingStrategy( 2129 GetContentsLayoutManager()->SetContentsResizingStrategy(strategy);
2134 devtools_window_->GetContentsResizingStrategy());
2135 } else { 2130 } else {
2136 devtools_web_view_->SetVisible(false); 2131 devtools_web_view_->SetVisible(false);
2137 GetContentsLayoutManager()->SetContentsResizingStrategy( 2132 GetContentsLayoutManager()->SetContentsResizingStrategy(
2138 DevToolsContentsResizingStrategy()); 2133 DevToolsContentsResizingStrategy());
2139 } 2134 }
2140 contents_container_->Layout(); 2135 contents_container_->Layout();
2141 } 2136 }
2142 2137
2143 void BrowserView::UpdateUIForContents(WebContents* contents) { 2138 void BrowserView::UpdateUIForContents(WebContents* contents) {
2144 bool needs_layout = MaybeShowBookmarkBar(contents); 2139 bool needs_layout = MaybeShowBookmarkBar(contents);
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
2492 } 2487 }
2493 2488
2494 void BrowserView::DoCutCopyPaste(void (WebContents::*method)(), 2489 void BrowserView::DoCutCopyPaste(void (WebContents::*method)(),
2495 int command_id) { 2490 int command_id) {
2496 WebContents* contents = browser_->tab_strip_model()->GetActiveWebContents(); 2491 WebContents* contents = browser_->tab_strip_model()->GetActiveWebContents();
2497 if (!contents) 2492 if (!contents)
2498 return; 2493 return;
2499 if (DoCutCopyPasteForWebContents(contents, method)) 2494 if (DoCutCopyPasteForWebContents(contents, method))
2500 return; 2495 return;
2501 2496
2502 DevToolsWindow* devtools_window = 2497 WebContents* devtools = DevToolsWindow::GetInTabWebContents(contents, NULL);
2503 DevToolsWindow::GetDockedInstanceForInspectedTab(contents); 2498 if (devtools && DoCutCopyPasteForWebContents(devtools, method))
2504 if (devtools_window &&
2505 DoCutCopyPasteForWebContents(devtools_window->web_contents(), method)) {
2506 return; 2499 return;
2507 }
2508 2500
2509 views::FocusManager* focus_manager = GetFocusManager(); 2501 views::FocusManager* focus_manager = GetFocusManager();
2510 views::View* focused = focus_manager->GetFocusedView(); 2502 views::View* focused = focus_manager->GetFocusedView();
2511 if (focused && 2503 if (focused &&
2512 (!strcmp(focused->GetClassName(), views::Textfield::kViewClassName) || 2504 (!strcmp(focused->GetClassName(), views::Textfield::kViewClassName) ||
2513 !strcmp(focused->GetClassName(), OmniboxViewViews::kViewClassName))) { 2505 !strcmp(focused->GetClassName(), OmniboxViewViews::kViewClassName))) {
2514 views::Textfield* textfield = static_cast<views::Textfield*>(focused); 2506 views::Textfield* textfield = static_cast<views::Textfield*>(focused);
2515 textfield->ExecuteCommand(command_id); 2507 textfield->ExecuteCommand(command_id);
2516 } 2508 }
2517 } 2509 }
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2555 !GetLocationBar()->GetOmniboxView()->model()->popup_model()->IsOpen()) { 2547 !GetLocationBar()->GetOmniboxView()->model()->popup_model()->IsOpen()) {
2556 gfx::Point icon_bottom( 2548 gfx::Point icon_bottom(
2557 toolbar_->location_bar()->GetLocationBarAnchorPoint()); 2549 toolbar_->location_bar()->GetLocationBarAnchorPoint());
2558 ConvertPointToTarget(toolbar_->location_bar(), this, &icon_bottom); 2550 ConvertPointToTarget(toolbar_->location_bar(), this, &icon_bottom);
2559 gfx::Point infobar_top(0, infobar_container_->GetVerticalOverlap(NULL)); 2551 gfx::Point infobar_top(0, infobar_container_->GetVerticalOverlap(NULL));
2560 ConvertPointToTarget(infobar_container_, this, &infobar_top); 2552 ConvertPointToTarget(infobar_container_, this, &infobar_top);
2561 top_arrow_height = infobar_top.y() - icon_bottom.y(); 2553 top_arrow_height = infobar_top.y() - icon_bottom.y();
2562 } 2554 }
2563 return top_arrow_height; 2555 return top_arrow_height;
2564 } 2556 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698