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

Side by Side Diff: chrome/browser/tab_contents.cc

Issue 7388: Remove throttling code from the Browser process and... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 2 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 (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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/tab_contents.h" 5 #include "chrome/browser/tab_contents.h"
6 6
7 #include "chrome/browser/cert_store.h" 7 #include "chrome/browser/cert_store.h"
8 #include "chrome/browser/navigation_entry.h" 8 #include "chrome/browser/navigation_entry.h"
9 #include "chrome/browser/views/download_shelf_view.h" 9 #include "chrome/browser/views/download_shelf_view.h"
10 #include "chrome/browser/views/download_started_animation.h" 10 #include "chrome/browser/views/download_started_animation.h"
11 #include "chrome/browser/web_contents.h" 11 #include "chrome/browser/web_contents.h"
12 #include "chrome/browser/tab_contents_delegate.h" 12 #include "chrome/browser/tab_contents_delegate.h"
13 #include "chrome/common/l10n_util.h" 13 #include "chrome/common/l10n_util.h"
14 #include "chrome/common/pref_names.h" 14 #include "chrome/common/pref_names.h"
15 #include "chrome/common/pref_service.h" 15 #include "chrome/common/pref_service.h"
16 #include "chrome/views/hwnd_view_container.h" 16 #include "chrome/views/hwnd_view_container.h"
17 #include "chrome/views/native_scroll_bar.h" 17 #include "chrome/views/native_scroll_bar.h"
18 #include "chrome/views/root_view.h" 18 #include "chrome/views/root_view.h"
19 #include "chrome/views/view.h" 19 #include "chrome/views/view.h"
20 #include "chrome/views/view_storage.h" 20 #include "chrome/views/view_storage.h"
21 21
22 #include "generated_resources.h" 22 #include "generated_resources.h"
23 23
24 static size_t kMaxNumberOfConstrainedPopups = 20;
25
26 namespace { 24 namespace {
27 25
28 BOOL CALLBACK InvalidateWindow(HWND hwnd, LPARAM lparam) { 26 BOOL CALLBACK InvalidateWindow(HWND hwnd, LPARAM lparam) {
29 // Note: erase is required to properly paint some widgets borders. This can be 27 // Note: erase is required to properly paint some widgets borders. This can be
30 // seen with textfields. 28 // seen with textfields.
31 InvalidateRect(hwnd, NULL, TRUE); 29 InvalidateRect(hwnd, NULL, TRUE);
32 return TRUE; 30 return TRUE;
33 } 31 }
34 32
35 } // namespace 33 } // namespace
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 return; 275 return;
278 276
279 if ((disposition == NEW_POPUP) && !user_gesture) { 277 if ((disposition == NEW_POPUP) && !user_gesture) {
280 // Unrequested popups from normal pages are constrained. 278 // Unrequested popups from normal pages are constrained.
281 TabContents* popup_owner = this; 279 TabContents* popup_owner = this;
282 TabContents* our_owner = delegate_->GetConstrainingContents(this); 280 TabContents* our_owner = delegate_->GetConstrainingContents(this);
283 if (our_owner) 281 if (our_owner)
284 popup_owner = our_owner; 282 popup_owner = our_owner;
285 popup_owner->AddConstrainedPopup(new_contents, initial_pos); 283 popup_owner->AddConstrainedPopup(new_contents, initial_pos);
286 } else { 284 } else {
285 new_contents->DisassociateFromPopupCount();
286
287 delegate_->AddNewContents(this, new_contents, disposition, initial_pos, 287 delegate_->AddNewContents(this, new_contents, disposition, initial_pos,
288 user_gesture); 288 user_gesture);
289 } 289 }
290 } 290 }
291 291
292 void TabContents::AddConstrainedPopup(TabContents* new_contents, 292 void TabContents::AddConstrainedPopup(TabContents* new_contents,
293 const gfx::Rect& initial_pos) { 293 const gfx::Rect& initial_pos) {
294 if (child_windows_.size() > kMaxNumberOfConstrainedPopups) {
295 new_contents->CloseContents();
296 return;
297 }
298
299 ConstrainedWindow* window = 294 ConstrainedWindow* window =
300 ConstrainedWindow::CreateConstrainedPopup( 295 ConstrainedWindow::CreateConstrainedPopup(
301 this, initial_pos, new_contents); 296 this, initial_pos, new_contents);
302 child_windows_.push_back(window); 297 child_windows_.push_back(window);
303 298
304 CRect client_rect; 299 CRect client_rect;
305 GetClientRect(GetContainerHWND(), &client_rect); 300 GetClientRect(GetContainerHWND(), &client_rect);
306 gfx::Size new_size(client_rect.Width(), client_rect.Height()); 301 gfx::Size new_size(client_rect.Width(), client_rect.Height());
307 RepositionSupressedPopupsToFit(new_size); 302 RepositionSupressedPopupsToFit(new_size);
308 } 303 }
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 } 488 }
494 } 489 }
495 490
496 void TabContents::DetachContents(ConstrainedWindow* window, 491 void TabContents::DetachContents(ConstrainedWindow* window,
497 TabContents* contents, 492 TabContents* contents,
498 const gfx::Rect& contents_bounds, 493 const gfx::Rect& contents_bounds,
499 const gfx::Point& mouse_pt, 494 const gfx::Point& mouse_pt,
500 int frame_component) { 495 int frame_component) {
501 WillClose(window); 496 WillClose(window);
502 if (delegate_) { 497 if (delegate_) {
498 contents->DisassociateFromPopupCount();
503 delegate_->StartDraggingDetachedContents( 499 delegate_->StartDraggingDetachedContents(
504 this, contents, contents_bounds, mouse_pt, frame_component); 500 this, contents, contents_bounds, mouse_pt, frame_component);
505 } 501 }
506 } 502 }
507 503
508 void TabContents::DidMoveOrResize(ConstrainedWindow* window) { 504 void TabContents::DidMoveOrResize(ConstrainedWindow* window) {
509 UpdateWindow(GetContainerHWND()); 505 UpdateWindow(GetContainerHWND());
510 } 506 }
511 507
512 // static 508 // static
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 for (int i = window_count - 1; i >= 0; --i) { 549 for (int i = window_count - 1; i >= 0; --i) {
554 ConstrainedWindow* window = child_windows_.at(i); 550 ConstrainedWindow* window = child_windows_.at(i);
555 if (window->IsSuppressedConstrainedWindow()) 551 if (window->IsSuppressedConstrainedWindow())
556 window->RepositionConstrainedWindowTo(anchor_position); 552 window->RepositionConstrainedWindowTo(anchor_position);
557 } 553 }
558 } 554 }
559 555
560 void TabContents::ReleaseDownloadShelfView() { 556 void TabContents::ReleaseDownloadShelfView() {
561 download_shelf_view_.release(); 557 download_shelf_view_.release();
562 } 558 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents.h ('k') | chrome/browser/views/constrained_window_impl_interactive_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698