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

Side by Side Diff: chrome/browser/tab_contents/tab_contents_view_mac.mm

Issue 8587001: Have ExtensionHost use TabContents instead of RenderViewHost. Try #3. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #import <Carbon/Carbon.h> 5 #import <Carbon/Carbon.h>
6 6
7 #include "chrome/browser/tab_contents/tab_contents_view_mac.h" 7 #include "chrome/browser/tab_contents/tab_contents_view_mac.h"
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 - (void)registerDragTypes; 49 - (void)registerDragTypes;
50 - (void)setCurrentDragOperation:(NSDragOperation)operation; 50 - (void)setCurrentDragOperation:(NSDragOperation)operation;
51 - (void)startDragWithDropData:(const WebDropData&)dropData 51 - (void)startDragWithDropData:(const WebDropData&)dropData
52 dragOperationMask:(NSDragOperation)operationMask 52 dragOperationMask:(NSDragOperation)operationMask
53 image:(NSImage*)image 53 image:(NSImage*)image
54 offset:(NSPoint)offset; 54 offset:(NSPoint)offset;
55 - (void)cancelDeferredClose; 55 - (void)cancelDeferredClose;
56 - (void)clearTabContentsView; 56 - (void)clearTabContentsView;
57 - (void)closeTabAfterEvent; 57 - (void)closeTabAfterEvent;
58 - (void)viewDidBecomeFirstResponder:(NSNotification*)notification; 58 - (void)viewDidBecomeFirstResponder:(NSNotification*)notification;
59 // Notify the RenderWidgetHost that the frame was updated so it can resize
60 // its contents.
61 - (void)renderWidgetHostWasResized;
59 @end 62 @end
60 63
61 namespace tab_contents_view_mac { 64 namespace tab_contents_view_mac {
62 TabContentsView* CreateTabContentsView(TabContents* tab_contents) { 65 TabContentsView* CreateTabContentsView(TabContents* tab_contents) {
63 return new TabContentsViewMac(tab_contents); 66 return new TabContentsViewMac(tab_contents);
64 } 67 }
65 } 68 }
66 69
67 TabContentsViewMac::TabContentsViewMac(TabContents* tab_contents) 70 TabContentsViewMac::TabContentsViewMac(TabContents* tab_contents)
68 : tab_contents_(tab_contents), 71 : tab_contents_(tab_contents),
69 preferred_width_(0), 72 preferred_width_(0),
70 overlaid_view_(nil) { 73 overlaid_view_(nil) {
71 } 74 }
72 75
73 TabContentsViewMac::~TabContentsViewMac() { 76 TabContentsViewMac::~TabContentsViewMac() {
74 // This handles the case where a renderer close call was deferred 77 // This handles the case where a renderer close call was deferred
75 // while the user was operating a UI control which resulted in a 78 // while the user was operating a UI control which resulted in a
76 // close. In that case, the Cocoa view outlives the 79 // close. In that case, the Cocoa view outlives the
77 // TabContentsViewMac instance due to Cocoa retain count. 80 // TabContentsViewMac instance due to Cocoa retain count.
78 [cocoa_view_ cancelDeferredClose]; 81 [cocoa_view_ cancelDeferredClose];
79 [cocoa_view_ clearTabContentsView]; 82 [cocoa_view_ clearTabContentsView];
80 } 83 }
81 84
82 void TabContentsViewMac::CreateView(const gfx::Size& initial_size) { 85 void TabContentsViewMac::CreateView(const gfx::Size& initial_size) {
83 TabContentsViewCocoa* view = 86 TabContentsViewCocoa* view =
84 [[TabContentsViewCocoa alloc] initWithTabContentsViewMac:this]; 87 [[TabContentsViewCocoa alloc] initWithTabContentsViewMac:this];
85 [view setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
86 cocoa_view_.reset(view); 88 cocoa_view_.reset(view);
87 } 89 }
88 90
89 RenderWidgetHostView* TabContentsViewMac::CreateViewForWidget( 91 RenderWidgetHostView* TabContentsViewMac::CreateViewForWidget(
90 RenderWidgetHost* render_widget_host) { 92 RenderWidgetHost* render_widget_host) {
91 if (render_widget_host->view()) { 93 if (render_widget_host->view()) {
92 // During testing, the view will already be set up in most cases to the 94 // During testing, the view will already be set up in most cases to the
93 // test view, so we don't want to clobber it with a real one. To verify that 95 // test view, so we don't want to clobber it with a real one. To verify that
94 // this actually is happening (and somebody isn't accidentally creating the 96 // this actually is happening (and somebody isn't accidentally creating the
95 // view twice), we check for the RVH Factory, which will be set when we're 97 // view twice), we check for the RVH Factory, which will be set when we're
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 initWithContents:[self tabContents] 503 initWithContents:[self tabContents]
502 view:self 504 view:self
503 dropData:&dropData 505 dropData:&dropData
504 image:image 506 image:image
505 offset:offset 507 offset:offset
506 pasteboard:[NSPasteboard pasteboardWithName:NSDragPboard] 508 pasteboard:[NSPasteboard pasteboardWithName:NSDragPboard]
507 dragOperationMask:operationMask]); 509 dragOperationMask:operationMask]);
508 [dragSource_ startDrag]; 510 [dragSource_ startDrag];
509 } 511 }
510 512
513 - (void)setFrameWithDeferredUpdate:(NSRect)frameRect {
514 [super setFrame:frameRect];
515 [self performSelector:@selector(renderWidgetHostWasResized)
516 withObject:nil
517 afterDelay:0];
518 }
519
520 - (void)renderWidgetHostWasResized {
521 TabContents* tabContents = [self tabContents];
522 if (tabContents->render_view_host())
523 tabContents->render_view_host()->WasResized();
524 }
525
511 // NSDraggingSource methods 526 // NSDraggingSource methods
512 527
513 // Returns what kind of drag operations are available. This is a required 528 // Returns what kind of drag operations are available. This is a required
514 // method for NSDraggingSource. 529 // method for NSDraggingSource.
515 - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal { 530 - (NSDragOperation)draggingSourceOperationMaskForLocal:(BOOL)isLocal {
516 if (dragSource_.get()) 531 if (dragSource_.get())
517 return [dragSource_ draggingSourceOperationMaskForLocal:isLocal]; 532 return [dragSource_ draggingSourceOperationMaskForLocal:isLocal];
518 // No web drag source - this is the case for dragging a file from the 533 // No web drag source - this is the case for dragging a file from the
519 // downloads manager. Default to copy operation. Note: It is desirable to 534 // downloads manager. Default to copy operation. Note: It is desirable to
520 // allow the user to either move or copy, but this requires additional 535 // allow the user to either move or copy, but this requires additional
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
591 [[[notification userInfo] objectForKey:kSelectionDirection] 606 [[[notification userInfo] objectForKey:kSelectionDirection]
592 unsignedIntegerValue]; 607 unsignedIntegerValue];
593 if (direction == NSDirectSelection) 608 if (direction == NSDirectSelection)
594 return; 609 return;
595 610
596 [self tabContents]-> 611 [self tabContents]->
597 FocusThroughTabTraversal(direction == NSSelectingPrevious); 612 FocusThroughTabTraversal(direction == NSSelectingPrevious);
598 } 613 }
599 614
600 @end 615 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698