summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/app_controller_mac.mm16
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view.h2
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc2
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.h124
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit_view_mac.mm309
-rw-r--r--chrome/browser/autocomplete/autocomplete_popup_view_mac.h97
-rw-r--r--chrome/browser/autocomplete/autocomplete_popup_view_mac.mm248
-rw-r--r--chrome/browser/cocoa/location_bar_view_mac.h71
-rw-r--r--chrome/browser/cocoa/location_bar_view_mac.mm120
-rw-r--r--chrome/browser/cocoa/tab_contents_controller.h5
-rw-r--r--chrome/browser/cocoa/tab_contents_controller.mm96
-rw-r--r--chrome/browser/cocoa/tab_strip_controller.mm15
-rw-r--r--chrome/chrome.gyp9
13 files changed, 86 insertions, 1028 deletions
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm
index c042dd8..98ed64b 100644
--- a/chrome/browser/app_controller_mac.mm
+++ b/chrome/browser/app_controller_mac.mm
@@ -2,17 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#import "chrome/browser/app_controller_mac.h"
+#import "app_controller_mac.h"
-#include "base/message_loop.h"
-#include "chrome/app/chrome_dll_resource.h"
-#include "chrome/browser/browser.h"
-#include "chrome/browser/browser_list.h"
+#import "base/message_loop.h"
+#import "chrome/app/chrome_dll_resource.h"
+#import "chrome/browser/browser.h"
+#import "chrome/browser/browser_list.h"
#include "chrome/browser/browser_shutdown.h"
#import "chrome/browser/cocoa/bookmark_menu_bridge.h"
-#include "chrome/browser/command_updater.h"
-#include "chrome/browser/profile_manager.h"
-#include "chrome/common/temp_scaffolding_stubs.h"
+#import "chrome/browser/command_updater.h"
+#import "chrome/browser/profile_manager.h"
+#import "chrome/common/temp_scaffolding_stubs.h"
@interface AppController(PRIVATE)
- (void)initMenuState;
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view.h b/chrome/browser/autocomplete/autocomplete_edit_view.h
index 27c28e7..93982fe 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view.h
+++ b/chrome/browser/autocomplete/autocomplete_edit_view.h
@@ -3,7 +3,7 @@
// found in the LICENSE file.
// This file defines the interface class AutocompleteEditView. Each toolkit
-// will implement the edit view differently, so that code is inherently
+// will implement the edit view differently, so that code is inheriently
// platform specific. However, the AutocompleteEditModel needs to do some
// communication with the view. Since the model is shared between platforms,
// we need to define an interface that all view implementations will share.
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
index 69e8a9b..277a965 100644
--- a/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit_view_gtk.cc
@@ -177,7 +177,7 @@ void AutocompleteEditViewGtk::OpenURL(const GURL& url,
model_->SendOpenNotification(selected_line, keyword);
if (disposition != NEW_BACKGROUND_TAB)
- RevertAll(); // Revert the box to its unedited state.
+ RevertAll(); // Revert the box to its unedited state
controller_->OnAutocompleteAccept(url, disposition, transition,
alternate_nav_url);
}
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h b/chrome/browser/autocomplete/autocomplete_edit_view_mac.h
deleted file mode 100644
index 1d96a10..0000000
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.h
+++ /dev/null
@@ -1,124 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_VIEW_MAC_H_
-#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_VIEW_MAC_H_
-
-#import <Cocoa/Cocoa.h>
-
-#include "base/basictypes.h"
-#include "base/scoped_nsobject.h"
-#include "base/scoped_ptr.h"
-#include "chrome/browser/autocomplete/autocomplete.h"
-#include "chrome/browser/autocomplete/autocomplete_edit_view.h"
-#include "chrome/browser/toolbar_model.h"
-#include "chrome/common/page_transition_types.h"
-#include "webkit/glue/window_open_disposition.h"
-
-class AutocompleteEditController;
-@class AutocompleteEditHelper;
-class AutocompleteEditModel;
-class AutocompletePopupViewMac;
-class CommandUpdater;
-class Profile;
-class TabContents;
-class ToolbarModel;
-
-// Implements AutocompleteEditView on an NSTextField.
-
-class AutocompleteEditViewMac : public AutocompleteEditView {
- public:
- AutocompleteEditViewMac(AutocompleteEditController* controller,
- ToolbarModel* toolbar_model,
- Profile* profile,
- CommandUpdater* command_updater);
- virtual ~AutocompleteEditViewMac();
-
- // Implement the AutocompleteEditView interface.
- // TODO(shess): See if this couldn't be simplified to:
- // virtual AEM* model() const { ... }
- virtual AutocompleteEditModel* model() { return model_.get(); }
- virtual const AutocompleteEditModel* model() const { return model_.get(); }
-
- virtual void SaveStateToTab(TabContents* tab);
- virtual void Update(const TabContents* tab_for_state_restoring) {
- NOTIMPLEMENTED();
- }
-
- virtual void OpenURL(const GURL& url,
- WindowOpenDisposition disposition,
- PageTransition::Type transition,
- const GURL& alternate_nav_url,
- size_t selected_line,
- const std::wstring& keyword);
-
- virtual std::wstring GetText() const;
- virtual void SetUserText(const std::wstring& text) { NOTIMPLEMENTED(); }
- virtual void SetUserText(const std::wstring& text,
- const std::wstring& display_text,
- bool update_popup) { NOTIMPLEMENTED(); }
-
- virtual void SetWindowTextAndCaretPos(const std::wstring& text,
- size_t caret_pos);
-
- virtual bool IsSelectAll() {
- NOTIMPLEMENTED();
- return false;
- }
-
- virtual void SelectAll(bool reversed);
- virtual void RevertAll();
- virtual void UpdatePopup();
- virtual void ClosePopup();
- void UpdateAndStyleText(const std::wstring& display_text,
- size_t user_text_length);
- virtual void OnTemporaryTextMaybeChanged(const std::wstring& display_text,
- bool save_original_selection);
- virtual bool OnInlineAutocompleteTextMaybeChanged(
- const std::wstring& display_text, size_t user_text_length);
- virtual void OnRevertTemporaryText();
- virtual void OnBeforePossibleChange() { NOTIMPLEMENTED(); }
- virtual bool OnAfterPossibleChange() { NOTIMPLEMENTED(); return false; }
-
- // Helper functions which forward to our private: model_.
- void OnUpOrDownKeyPressed(int dir);
- void OnEscapeKeyPressed();
- void OnSetFocus(bool f);
- void OnKillFocus();
- void AcceptInput(WindowOpenDisposition disposition, bool for_drop);
- void OnAfterPossibleChange(const std::wstring& new_text,
- bool selection_differs,
- bool text_differs,
- bool just_deleted_text,
- bool at_end_of_edit);
-
- // TODO(shess): Get rid of this. Right now it's needed because of
- // the ordering of initialization in tab_contents_controller.mm.
- void SetField(NSTextField* field);
-
- // Helper for LocationBarBridge.
- void FocusLocation();
-
- private:
- scoped_ptr<AutocompleteEditModel> model_;
- scoped_ptr<AutocompletePopupViewMac> popup_view_;
-
- AutocompleteEditController* controller_;
- ToolbarModel* toolbar_model_;
-
- // The object that handles additional command functionality exposed on the
- // edit, such as invoking the keyword editor.
- CommandUpdater* command_updater_;
-
- NSTextField* field_; // owned by tab controller
-
- // Objective-C object to bridge field_ delegate calls to C++.
- scoped_nsobject<AutocompleteEditHelper> edit_helper_;
-
- std::wstring saved_temporary_text_;
-
- DISALLOW_COPY_AND_ASSIGN(AutocompleteEditViewMac);
-};
-
-#endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_VIEW_MAC_H_
diff --git a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm b/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
deleted file mode 100644
index cc0bffa..0000000
--- a/chrome/browser/autocomplete/autocomplete_edit_view_mac.mm
+++ /dev/null
@@ -1,309 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/autocomplete/autocomplete_edit_view_mac.h"
-
-#include "base/sys_string_conversions.h"
-#include "chrome/browser/autocomplete/autocomplete_edit.h"
-#include "chrome/browser/autocomplete/autocomplete_popup_view_mac.h"
-
-// Thin Obj-C bridge class that is the delegate of the omnibox field.
-// It intercepts various control delegate methods and vectors them to
-// the edit view.
-
-@interface AutocompleteFieldDelegate : NSObject {
- @private
- AutocompleteEditViewMac* edit_view_; // weak, owns us.
-}
-- initWithEditView:(AutocompleteEditViewMac*)view;
-@end
-
-AutocompleteEditViewMac::AutocompleteEditViewMac(
- AutocompleteEditController* controller,
- ToolbarModel* toolbar_model,
- Profile* profile,
- CommandUpdater* command_updater)
- : model_(new AutocompleteEditModel(this, controller, profile)),
- popup_view_(new AutocompletePopupViewMac(this, model_.get(), profile)),
- controller_(controller),
- toolbar_model_(toolbar_model),
- command_updater_(command_updater),
- field_(nil),
- edit_helper_([[AutocompleteFieldDelegate alloc] initWithEditView:this]) {
- DCHECK(controller);
- DCHECK(toolbar_model);
- DCHECK(profile);
- DCHECK(command_updater);
-}
-
-AutocompleteEditViewMac::~AutocompleteEditViewMac() {
- // TODO(shess): Having to be aware of destructor ordering in this
- // way seems brittle. There must be a better way.
-
- // Destroy popup view before this object in case it tries to call us
- // back in the destructor. Likewise for destroying the model before
- // this object.
- popup_view_.reset();
- model_.reset();
-
- // Disconnect field_ from edit_helper_ so that we don't get calls
- // after destruction.
- [field_ setDelegate:nil];
-}
-
-// TODO(shess): This is the minimal change which seems to unblock
-// getting the minimal Omnibox code checked in without making the
-// world worse. Browser::TabSelectedAt() calls this when the tab
-// changes, but that is only wired up for Windows. I do not yet
-// understand that code well enough to go for it. Once wired up, then
-// code can be removed at:
-// [TabContentsController defocusLocationBar]
-// [TabStripController selectTabWithContents:...]
-void AutocompleteEditViewMac::SaveStateToTab(TabContents* tab) {
- // TODO(shess): Actually save the state to the tab area.
-
- // Drop the popup before we change to another tab.
- ClosePopup();
-}
-
-void AutocompleteEditViewMac::OpenURL(const GURL& url,
- WindowOpenDisposition disposition,
- PageTransition::Type transition,
- const GURL& alternate_nav_url,
- size_t selected_line,
- const std::wstring& keyword) {
- // TODO(shess): Why is the caller passing an invalid url in the
- // first place? Make sure that case isn't being dropped on the
- // floor.
- if (!url.is_valid()) {
- return;
- }
-
- model_->SendOpenNotification(selected_line, keyword);
-
- if (disposition != NEW_BACKGROUND_TAB)
- RevertAll(); // Revert the box to its unedited state.
- controller_->OnAutocompleteAccept(url, disposition, transition,
- alternate_nav_url);
-}
-
-std::wstring AutocompleteEditViewMac::GetText() const {
- return base::SysNSStringToWide([field_ stringValue]);
-}
-
-void AutocompleteEditViewMac::SetWindowTextAndCaretPos(const std::wstring& text,
- size_t caret_pos) {
- UpdateAndStyleText(text, text.size());
-}
-
-void AutocompleteEditViewMac::SelectAll(bool reversed) {
- // TODO(shess): Figure out what reversed implies. The gtk version
- // has it imply inverting the selection front to back, but I don't
- // even know if that makes sense for Mac.
- UpdateAndStyleText(GetText(), 0);
-}
-
-void AutocompleteEditViewMac::RevertAll() {
- ClosePopup();
- model_->Revert();
-
- std::wstring tt = GetText();
- UpdateAndStyleText(tt, tt.size());
- controller_->OnChanged();
-}
-
-void AutocompleteEditViewMac::UpdatePopup() {
- model_->SetInputInProgress(true);
- if (!model_->has_focus())
- return;
-
- // TODO(shess):
- // Shouldn't inline autocomplete when the caret/selection isn't at
- // the end of the text.
- //
- // One option would seem to be to check for a non-nil field
- // editor, and check it's selected range against its length.
- model_->StartAutocomplete(false);
-}
-
-void AutocompleteEditViewMac::ClosePopup() {
- popup_view_->StopAutocomplete();
-}
-
-void AutocompleteEditViewMac::UpdateAndStyleText(
- const std::wstring& display_text, size_t user_text_length) {
- NSString* ss = base::SysWideToNSString(display_text);
- NSMutableAttributedString* as =
- [[[NSMutableAttributedString alloc] initWithString:ss] autorelease];
-
- url_parse::Parsed parts;
- AutocompleteInput::Parse(display_text, model_->GetDesiredTLD(),
- &parts, NULL);
- bool emphasize = model_->CurrentTextIsURL() && (parts.host.len > 0);
- if (emphasize) {
- // TODO(shess): Pull color out as a constant.
- [as addAttribute:NSForegroundColorAttributeName
- value:[NSColor greenColor]
- range:NSMakeRange((NSInteger)parts.host.begin,
- (NSInteger)parts.host.end())];
- }
-
- // TODO(shess): GTK has this as a member var, figure out why.
- ToolbarModel::SecurityLevel scheme_security_level =
- toolbar_model_->GetSchemeSecurityLevel();
-
- // Emphasize the scheme for security UI display purposes (if necessary).
- if (!model_->user_input_in_progress() && parts.scheme.is_nonempty() &&
- (scheme_security_level != ToolbarModel::NORMAL)) {
- // TODO(shess): Pull colors out as constants.
- NSColor* color;
- if (scheme_security_level == ToolbarModel::SECURE) {
- color = [NSColor blueColor];
- } else {
- color = [NSColor blackColor];
- }
- [as addAttribute:NSForegroundColorAttributeName value:color
- range:NSMakeRange((NSInteger)parts.scheme.begin,
- (NSInteger)parts.scheme.end())];
- }
-
- // TODO(shess): Check that this updates the model's sense of focus
- // correctly.
- [field_ setObjectValue:as];
- if (![field_ currentEditor]) {
- [field_ becomeFirstResponder];
- DCHECK_EQ(field_, [[field_ window] firstResponder]);
- }
-
- NSRange selected_range = NSMakeRange(user_text_length, [as length]);
- // TODO(shess): What if it didn't get first responder, and there is
- // no field editor? This will do nothing. Well, at least it won't
- // crash. Think of something more productive to do, or prove that
- // it cannot occur and DCHECK appropriately.
- [[field_ currentEditor] setSelectedRange:selected_range];
-}
-
-void AutocompleteEditViewMac::OnTemporaryTextMaybeChanged(
- const std::wstring& display_text, bool save_original_selection) {
- // TODO(shess): I believe this is for when the user arrows around
- // the popup, will be restored if they hit escape. Figure out if
- // that is for certain it.
- if (save_original_selection) {
- saved_temporary_text_ = GetText();
- }
-
- UpdateAndStyleText(display_text, display_text.size());
-}
-
-bool AutocompleteEditViewMac::OnInlineAutocompleteTextMaybeChanged(
- const std::wstring& display_text, size_t user_text_length) {
- // TODO(shess): Make sure that this actually works. The round trip
- // to native form and back may mean that it's the same but not the
- // same.
- if (display_text == GetText()) {
- return false;
- }
-
- UpdateAndStyleText(display_text, user_text_length);
- return true;
-}
-
-void AutocompleteEditViewMac::OnRevertTemporaryText() {
- UpdateAndStyleText(saved_temporary_text_, saved_temporary_text_.size());
- saved_temporary_text_.clear();
-}
-
-void AutocompleteEditViewMac::OnUpOrDownKeyPressed(int dir) {
- model_->OnUpOrDownKeyPressed(dir);
-}
-void AutocompleteEditViewMac::OnEscapeKeyPressed() {
- model_->OnEscapeKeyPressed();
-}
-void AutocompleteEditViewMac::OnSetFocus(bool f) {
- model_->OnSetFocus(f);
-}
-void AutocompleteEditViewMac::OnKillFocus() {
- model_->OnKillFocus();
-}
-void AutocompleteEditViewMac::AcceptInput(
- WindowOpenDisposition disposition, bool for_drop) {
- model_->AcceptInput(disposition, for_drop);
-}
-void AutocompleteEditViewMac::OnAfterPossibleChange(
- const std::wstring& new_text,
- bool selection_differs,
- bool text_differs,
- bool just_deleted_text,
- bool at_end_of_edit) {
- model_->OnAfterPossibleChange(new_text, selection_differs, text_differs,
- just_deleted_text, at_end_of_edit);
-}
-void AutocompleteEditViewMac::SetField(NSTextField* field) {
- field_ = field;
- [field_ setDelegate:edit_helper_];
-
- // The popup code needs the field for sizing and placement.
- popup_view_->SetField(field_);
-}
-
-void AutocompleteEditViewMac::FocusLocation() {
- [[field_ window] makeFirstResponder:field_];
-}
-
-@implementation AutocompleteFieldDelegate
-
-- initWithEditView:(AutocompleteEditViewMac*)view {
- self = [super init];
- if (self) {
- edit_view_ = view;
- }
- return self;
-}
-
-- (BOOL)control:(NSControl*)control
- textView:(NSTextView*)textView doCommandBySelector:(SEL)cmd {
- if (cmd == @selector(moveDown:)) {
- edit_view_->OnUpOrDownKeyPressed(1);
- return YES;
- }
-
- if (cmd == @selector(moveUp:)) {
- edit_view_->OnUpOrDownKeyPressed(-1);
- return YES;
- }
-
- if (cmd == @selector(cancelOperation:)) {
- edit_view_->OnEscapeKeyPressed();
- return YES;
- }
-
- if (cmd == @selector(insertNewline:)) {
- edit_view_->AcceptInput(CURRENT_TAB, false);
- return YES;
- }
-
- return NO;
-}
-
-- (void)controlTextDidBeginEditing:(NSNotification*)aNotification {
- edit_view_->OnSetFocus(false);
-}
-
-- (void)controlTextDidChange:(NSNotification*)aNotification {
- // TODO(shess): Make this more efficient? Or not. For now, just
- // pass in the current text, indicating that the text and
- // selection differ, ignoring deletions, and assuming that we're
- // at the end of the text.
- edit_view_->OnAfterPossibleChange(edit_view_->GetText(),
- true, true, false, true);
-}
-
-- (void)controlTextDidEndEditing:(NSNotification*)aNotification {
- edit_view_->OnKillFocus();
-
- // TODO(shess): Figure out where the selection belongs. On GTK,
- // it's set to the start of the text.
-}
-
-@end
diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_mac.h b/chrome/browser/autocomplete/autocomplete_popup_view_mac.h
deleted file mode 100644
index defa04f..0000000
--- a/chrome/browser/autocomplete/autocomplete_popup_view_mac.h
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_MAC_H_
-#define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_MAC_H_
-
-#import <Cocoa/Cocoa.h>
-
-#include <string>
-
-#include "base/basictypes.h"
-#include "base/scoped_ptr.h"
-#include "base/scoped_nsobject.h"
-#include "chrome/browser/autocomplete/autocomplete.h"
-#include "chrome/browser/autocomplete/autocomplete_popup_view.h"
-#include "webkit/glue/window_open_disposition.h"
-
-class AutocompletePopupModel;
-class AutocompleteEditModel;
-class AutocompleteEditViewMac;
-@class AutocompleteTableTarget;
-class Profile;
-
-// Implements AutocompletePopupView using a raw NSWindow containing an
-// NSTableView.
-
-class AutocompletePopupViewMac : public AutocompletePopupView {
- public:
- AutocompletePopupViewMac(AutocompleteEditViewMac* edit_view,
- AutocompleteEditModel* edit_model,
- Profile* profile);
- virtual ~AutocompletePopupViewMac();
-
- // Implement the AutocompletePopupView interface.
- virtual bool IsOpen() const;
- virtual void InvalidateLine(size_t line) {
- // TODO(shess): Verify that there is no need to implement this.
- // This is currently used in two places in the model:
- //
- // When setting the selected line, the selected line is
- // invalidated, then the selected line is changed, then the new
- // selected line is invalidated, then PaintUpdatesNow() is called.
- // For us PaintUpdatesNow() should be sufficient.
- //
- // Same thing happens when changing the hovered line, except with
- // no call to PaintUpdatesNow(). Since this code does not
- // currently support special display of the hovered line, there's
- // nothing to do here.
- //
- // deanm indicates that this is an anti-flicker optimization,
- // which we probably cannot utilize (and may not need) so long as
- // we're using NSTableView to implement the popup contents. We
- // may need to move away from NSTableView to implement hover,
- // though.
- }
- virtual void UpdatePopupAppearance();
- virtual void OnHoverEnabledOrDisabled(bool disabled) { NOTIMPLEMENTED(); }
-
- // This is only called by model in SetSelectedLine() after updating
- // everything. Popup should already be visible.
- virtual void PaintUpdatesNow();
-
- // Helpers which forward to model_, otherwise our Objective-C helper
- // object would need model_ to be public:.
- void StopAutocomplete();
- size_t ResultRowCount();
- const std::wstring& ResultContentsAt(size_t i);
- bool ResultStarredAt(size_t i);
- const std::wstring& ResultDescriptionAt(size_t i);
- void AcceptInput(WindowOpenDisposition disposition, bool for_drop);
-
- // TODO(shess): Get rid of this. Right now it's needed because of
- // the ordering of initialization in tab_contents_controller.mm.
- void SetField(NSTextField* field) {
- field_ = field;
- }
-
- private:
- // Create the popup_ instance if needed.
- void CreatePopupIfNeeded();
-
- scoped_ptr<AutocompletePopupModel> model_;
- AutocompleteEditViewMac* edit_view_;
-
- NSTextField* field_; // owned by tab controller
-
- scoped_nsobject<AutocompleteTableTarget> table_target_;
- // TODO(shess): Before checkin review implementation to make sure
- // that popup_'s object hierarchy doesn't keep references to
- // destructed objects.
- scoped_nsobject<NSWindow> popup_;
-
- DISALLOW_COPY_AND_ASSIGN(AutocompletePopupViewMac);
-};
-
-#endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_POPUP_VIEW_MAC_H_
diff --git a/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm b/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm
deleted file mode 100644
index d82e0a3..0000000
--- a/chrome/browser/autocomplete/autocomplete_popup_view_mac.mm
+++ /dev/null
@@ -1,248 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/autocomplete/autocomplete_popup_view_mac.h"
-
-#include "base/sys_string_conversions.h"
-#include "chrome/browser/autocomplete/autocomplete_edit.h"
-#include "chrome/browser/autocomplete/autocomplete_edit_view_mac.h"
-#include "chrome/browser/autocomplete/autocomplete_popup_model.h"
-
-// Thin Obj-C bridge class between the target and data source of the
-// popup window's NSTableView and the AutocompletePopupView
-// implementation.
-
-@interface AutocompleteTableTarget : NSObject {
- @private
- AutocompletePopupViewMac* popup_view_; // weak, owns us.
-}
-- initWithPopupView:(AutocompletePopupViewMac*)view;
-
-// Tell popup model via popup_view_ about the selected row.
-- (void)select:sender;
-
-// NSTableDataSource methods, filled from data returned by
-// the popup model via popup_view_.
-- (NSInteger)numberOfRowsInTableView:(NSTableView*)aTableView;
-- (id)tableView:(NSTableView*)aTableView
-objectValueForTableColumn:(NSTableColumn*)aTableColumn
- row:(int)ri;
-
-// Placeholder for finding the star image.
-- (NSImage*)starImage;
-@end
-
-AutocompletePopupViewMac::AutocompletePopupViewMac(
- AutocompleteEditViewMac* edit_view,
- AutocompleteEditModel* edit_model,
- Profile* profile)
- : model_(new AutocompletePopupModel(this, edit_model, profile)),
- edit_view_(edit_view),
- field_(nil),
- table_target_([[AutocompleteTableTarget alloc] initWithPopupView:this]),
- popup_(nil) {
- DCHECK(edit_view);
- DCHECK(edit_model);
- DCHECK(profile);
- edit_model->set_popup_model(model_.get());
-}
-
-AutocompletePopupViewMac::~AutocompletePopupViewMac() {
- // TODO(shess): Having to be aware of destructor ordering in this
- // way seems brittle. There must be a better way.
-
- // Destroy the popup model before this object is destroyed, because
- // it can call back to us in the destructor.
- model_.reset();
-
- // Break references to table_target_ before it is released.
- NSTableView* table = [popup_ contentView];
- [table setTarget:nil];
- [table setDataSource:nil];
-}
-
-bool AutocompletePopupViewMac::IsOpen() const {
- return [popup_ isVisible] ? true : false;
-}
-
-static NSTableColumn* MakeTableColumn(int tag, Class field_class) {
- NSNumber* id = [NSNumber numberWithInt:tag];
- NSTableColumn* col =
- [[[NSTableColumn alloc] initWithIdentifier:id] autorelease];
-
- [col setEditable:NO];
- [col setResizingMask:NSTableColumnNoResizing];
- [col setDataCell:[[[field_class alloc] init] autorelease]];
-
- return col;
-}
-
-void AutocompletePopupViewMac::CreatePopupIfNeeded() {
- if (!popup_) {
- popup_.reset([[NSWindow alloc] initWithContentRect:NSZeroRect
- styleMask:NSBorderlessWindowMask
- backing:NSBackingStoreBuffered
- defer:YES]);
- [popup_ setMovableByWindowBackground:NO];
- [popup_ setOpaque:YES];
- [popup_ setHasShadow:YES];
- [popup_ setLevel:NSNormalWindowLevel];
-
- NSTableView* table =
- [[[NSTableView alloc] initWithFrame:NSZeroRect] autorelease];
- [popup_ setContentView:table];
-
- [table setTarget:table_target_];
- [table setAction:@selector(select:)];
- [table setHeaderView:nil];
- [table setDataSource:table_target_];
- [table setIntercellSpacing:NSMakeSize(1.0, 0.0)];
-
- [table addTableColumn:MakeTableColumn(0, [NSTextFieldCell class])];
- [table addTableColumn:MakeTableColumn(1, [NSImageCell class])];
- [table addTableColumn:MakeTableColumn(2, [NSTextFieldCell class])];
- }
-}
-
-void AutocompletePopupViewMac::UpdatePopupAppearance() {
- const AutocompleteResult& result = model_->result();
- if (result.empty()) {
- [[popup_ parentWindow] removeChildWindow:popup_];
- [popup_ orderOut:nil];
- return;
- }
-
- CreatePopupIfNeeded();
-
- // Layout the popup and size it to land underneath the field.
- // TODO(shess) Consider refactoring to remove this depenency,
- // because the popup doesn't need any of the field-like aspects of
- // field_. The edit view could expose helper methods for attaching
- // the window to the field.
- NSRect r = [field_ bounds];
- r = [field_ convertRectToBase:r];
- r.origin = [[field_ window] convertBaseToScreen:r.origin];
-
- // TODO(shess): Derive this from the actual image size, once the
- // image is in the project.
- static const int kStarWidth = 25;
-
- NSArray* cols = [[popup_ contentView] tableColumns];
- [[cols objectAtIndex:0] setWidth:floor((r.size.width - kStarWidth) / 2)];
- [[cols objectAtIndex:1] setWidth:kStarWidth];
- [[cols objectAtIndex:2] setWidth:ceil((r.size.width - kStarWidth) / 2)];
-
- [[popup_ contentView] reloadData];
- [[popup_ contentView] tile];
- r.size.height = [[popup_ contentView] frame].size.height;
- r.origin.y -= r.size.height + 2;
-
- // Update the selection.
- PaintUpdatesNow();
-
- [popup_ setFrame:r display:YES];
-
- if (!IsOpen()) {
- [[field_ window] addChildWindow:popup_ ordered:NSWindowAbove];
- }
-}
-
-// This is only called by model in SetSelectedLine() after updating
-// everything. Popup should already be visible.
-void AutocompletePopupViewMac::PaintUpdatesNow() {
- NSIndexSet* set = [NSIndexSet indexSetWithIndex:model_->selected_line()];
- NSTableView* table = [popup_ contentView];
- [table selectRowIndexes:set byExtendingSelection:NO];
-}
-
-void AutocompletePopupViewMac::StopAutocomplete() {
- model_->StopAutocomplete();
-}
-
-size_t AutocompletePopupViewMac::ResultRowCount() {
- return model_->result().size();
-}
-
-const std::wstring& AutocompletePopupViewMac::ResultContentsAt(size_t i) {
- return model_->result().match_at(i).contents;
-}
-
-bool AutocompletePopupViewMac::ResultStarredAt(size_t i) {
- return model_->result().match_at(i).starred;
-}
-
-const std::wstring& AutocompletePopupViewMac::ResultDescriptionAt(size_t i) {
- return model_->result().match_at(i).description;
-}
-
-void AutocompletePopupViewMac::AcceptInput(
- WindowOpenDisposition disposition, bool for_drop) {
- edit_view_->AcceptInput(disposition, for_drop);
-}
-
-@implementation AutocompleteTableTarget
-
-- initWithPopupView:(AutocompletePopupViewMac*)view {
- self = [super init];
- if (self) {
- popup_view_ = view;
- }
- return self;
-}
-
-- (NSImage*)starImage {
- return [NSImage imageNamed:@"starred.pdf"];
-}
-
-- (NSInteger)numberOfRowsInTableView:(NSTableView*)aTableView {
- DCHECK(popup_view_);
- return static_cast<NSInteger>(popup_view_->ResultRowCount());
-}
-
-- (id)tableView:(NSTableView*)aTableView
-objectValueForTableColumn:(NSTableColumn*)aTableColumn
- row:(int)ri {
- int columnIndex = [[aTableColumn identifier] integerValue];
- size_t rowIndex = static_cast<size_t>(ri);
- DCHECK(popup_view_);
- DCHECK_LT(rowIndex, popup_view_->ResultRowCount());
- DCHECK_LT(columnIndex, 3);
-
- if (columnIndex == 1) {
- if (popup_view_->ResultStarredAt(rowIndex)) {
- return [self starImage];
- }
- return nil;
- }
-
- NSString* s;
- if (columnIndex == 0) {
- s = base::SysWideToNSString(popup_view_->ResultContentsAt(rowIndex));
- } else {
- s = base::SysWideToNSString(popup_view_->ResultDescriptionAt(rowIndex));
- }
-
- NSMutableParagraphStyle* style =
- [[[NSMutableParagraphStyle alloc] init] autorelease];
- [style setLineBreakMode:NSLineBreakByTruncatingTail];
-
- NSMutableAttributedString* as =
- [[[NSMutableAttributedString alloc] initWithString:s] autorelease];
- [as addAttribute:NSParagraphStyleAttributeName value:style
- range:NSMakeRange(0, [s length])];
-
- // TODO(shess): There is a ton more styling to be done, here, for
- // instance URLs different from search suggestions different from secure
- // URLs, etc. [See AutocompletePopupViewMac::UpdateAndStyleText().]
- // Deferring in the interests of getting a minimal implementation in.
-
- return as;
-}
-
-- (void)select:sender {
- DCHECK(popup_view_);
- popup_view_->AcceptInput(CURRENT_TAB, false);
-}
-
-@end
diff --git a/chrome/browser/cocoa/location_bar_view_mac.h b/chrome/browser/cocoa/location_bar_view_mac.h
deleted file mode 100644
index f39ff25..0000000
--- a/chrome/browser/cocoa/location_bar_view_mac.h
+++ /dev/null
@@ -1,71 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import <Cocoa/Cocoa.h>
-
-#include "base/scoped_ptr.h"
-#include "chrome/browser/autocomplete/autocomplete_edit.h"
-#include "chrome/browser/location_bar.h"
-
-class AutocompleteEditViewMac;
-class CommandUpdater;
-class ToolbarModel;
-
-// A C++ bridge class that represents the location bar UI element to
-// the portable code. Wires up an AutocompleteEditViewMac instance to
-// the location bar text field, which handles most of the work.
-
-class LocationBarViewMac : public AutocompleteEditController,
- public LocationBar {
- public:
- LocationBarViewMac(CommandUpdater* command_updater,
- ToolbarModel* toolbar_model);
- virtual ~LocationBarViewMac();
-
- void Init();
-
- void SetField(NSTextField* field);
-
- virtual void ShowFirstRunBubble() { NOTIMPLEMENTED(); }
- virtual std::wstring GetInputString() const;
- virtual WindowOpenDisposition GetWindowOpenDisposition() const;
- virtual PageTransition::Type GetPageTransition() const;
- virtual void AcceptInput() { NOTIMPLEMENTED(); }
- virtual void AcceptInputWithDisposition(WindowOpenDisposition disposition)
- { NOTIMPLEMENTED(); }
- virtual void FocusLocation();
- virtual void FocusSearch() { NOTIMPLEMENTED(); }
- virtual void UpdateFeedIcon() { /* http://crbug.com/8832 */ }
- virtual void SaveStateToContents(TabContents* contents);
-
- virtual void OnAutocompleteAccept(const GURL& url,
- WindowOpenDisposition disposition,
- PageTransition::Type transition,
- const GURL& alternate_nav_url);
- virtual void OnChanged();
- virtual void OnInputInProgress(bool in_progress);
- virtual SkBitmap GetFavIcon() const;
- virtual std::wstring GetTitle() const;
-
- private:
- scoped_ptr<AutocompleteEditViewMac> edit_view_;
-
- // TODO(shess): Determine ownership of these. We definitely
- // shouldn't.
- CommandUpdater* command_updater_; // weak
- ToolbarModel* toolbar_model_; // weak
-
- // When we get an OnAutocompleteAccept notification from the autocomplete
- // edit, we save the input string so we can give it back to the browser on
- // the LocationBar interface via GetInputString().
- std::wstring location_input_;
-
- // The user's desired disposition for how their input should be opened
- WindowOpenDisposition disposition_;
-
- // The transition type to use for the navigation
- PageTransition::Type transition_;
-
- DISALLOW_COPY_AND_ASSIGN(LocationBarViewMac);
-};
diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm
deleted file mode 100644
index a70fd9c..0000000
--- a/chrome/browser/cocoa/location_bar_view_mac.mm
+++ /dev/null
@@ -1,120 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#import "chrome/browser/cocoa/location_bar_view_mac.h"
-
-#include "base/string_util.h"
-#include "chrome/app/chrome_dll_resource.h"
-#include "chrome/browser/alternate_nav_url_fetcher.h"
-#import "chrome/browser/app_controller_mac.h"
-#import "chrome/browser/autocomplete/autocomplete_edit_view_mac.h"
-#include "chrome/browser/command_updater.h"
-#include "skia/include/SkBitmap.h"
-
-// TODO(shess): This code is mostly copied from the gtk
-// implementation. Make sure it's all appropriate and flesh it out.
-
-LocationBarViewMac::LocationBarViewMac(CommandUpdater* command_updater,
- ToolbarModel* toolbar_model)
- : command_updater_(command_updater),
- toolbar_model_(toolbar_model),
- disposition_(CURRENT_TAB),
- transition_(PageTransition::TYPED) {
-}
-LocationBarViewMac::~LocationBarViewMac() { }
-
-void LocationBarViewMac::Init() {
- // TODO(shess): deanm indicates that it's likely we will eventually
- // get the profile somewhere between point of construction and
- // Init(), so mirroring how the gtk code sets this up.
- Profile* profile = [[NSApp delegate] defaultProfile];
- edit_view_.reset(new AutocompleteEditViewMac(this,
- toolbar_model_,
- profile,
- command_updater_));
-}
-
-// TODO(shess): Find a way to get this passed to the constructor.
-void LocationBarViewMac::SetField(NSTextField* field) {
- edit_view_->SetField(field);
-}
-
-std::wstring LocationBarViewMac::GetInputString() const {
- return location_input_;
-}
-
-WindowOpenDisposition LocationBarViewMac::GetWindowOpenDisposition() const {
- return disposition_;
-}
-
-// TODO(shess): Verify that this TODO is TODONE.
-// TODO(rohitrao): Fix this to return different types once autocomplete and
-// the onmibar are implemented. For now, any URL that comes from the
-// LocationBar has to have been entered by the user, and thus is of type
-// PageTransition::TYPED.
-PageTransition::Type LocationBarViewMac::GetPageTransition() const {
- return transition_;
-}
-
-void LocationBarViewMac::FocusLocation() {
- edit_view_->FocusLocation();
-}
-
-void LocationBarViewMac::SaveStateToContents(TabContents* contents) {
- // TODO(shess): Why SaveStateToContents vs SaveStateToTab?
- edit_view_->SaveStateToTab(contents);
-}
-
-void LocationBarViewMac::OnAutocompleteAccept(const GURL& url,
- WindowOpenDisposition disposition,
- PageTransition::Type transition,
- const GURL& alternate_nav_url) {
- if (!url.is_valid())
- return;
-
- location_input_ = UTF8ToWide(url.spec());
- disposition_ = disposition;
- transition_ = transition;
-
- if (!command_updater_)
- return;
-
- if (!alternate_nav_url.is_valid()) {
- command_updater_->ExecuteCommand(IDC_OPEN_CURRENT_URL);
- return;
- }
-
- scoped_ptr<AlternateNavURLFetcher> fetcher(
- new AlternateNavURLFetcher(alternate_nav_url));
- // The AlternateNavURLFetcher will listen for the pending navigation
- // notification that will be issued as a result of the "open URL." It
- // will automatically install itself into that navigation controller.
- command_updater_->ExecuteCommand(IDC_OPEN_CURRENT_URL);
- if (fetcher->state() == AlternateNavURLFetcher::NOT_STARTED) {
- // I'm not sure this should be reachable, but I'm not also sure enough
- // that it shouldn't to stick in a NOTREACHED(). In any case, this is
- // harmless; we can simply let the fetcher get deleted here and it will
- // clean itself up properly.
- } else {
- fetcher.release(); // The navigation controller will delete the fetcher.
- }
-}
-
-void LocationBarViewMac::OnChanged() {
- NOTIMPLEMENTED();
-}
-
-void LocationBarViewMac::OnInputInProgress(bool in_progress) {
- NOTIMPLEMENTED();
-}
-
-SkBitmap LocationBarViewMac::GetFavIcon() const {
- NOTIMPLEMENTED();
- return SkBitmap();
-}
-
-std::wstring LocationBarViewMac::GetTitle() const {
- NOTIMPLEMENTED();
- return std::wstring();
-}
diff --git a/chrome/browser/cocoa/tab_contents_controller.h b/chrome/browser/cocoa/tab_contents_controller.h
index 2960588..3a39b5d 100644
--- a/chrome/browser/cocoa/tab_contents_controller.h
+++ b/chrome/browser/cocoa/tab_contents_controller.h
@@ -14,7 +14,6 @@
class BookmarkModel;
class CommandUpdater;
class LocationBar;
-class LocationBarViewMac;
class TabContents;
class TabContentsCommandObserver;
class TabStripModel;
@@ -38,7 +37,7 @@ class ToolbarModel;
@private
CommandUpdater* commands_; // weak, may be nil
TabContentsCommandObserver* observer_; // nil if |commands_| is nil
- LocationBarViewMac* locationBarView_;
+ LocationBar* locationBarBridge_;
TabContents* contents_; // weak
ToolbarModel* toolbarModel_; // weak, one per window
@@ -104,8 +103,6 @@ class ToolbarModel;
// state.
- (void)setIsLoading:(BOOL)isLoading;
-- (void)defocusLocationBar;
-
// Make the location bar the first responder, if possible.
- (void)focusLocationBar;
diff --git a/chrome/browser/cocoa/tab_contents_controller.mm b/chrome/browser/cocoa/tab_contents_controller.mm
index a621b0f..a6c1732 100644
--- a/chrome/browser/cocoa/tab_contents_controller.mm
+++ b/chrome/browser/cocoa/tab_contents_controller.mm
@@ -2,15 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#import "chrome/browser/cocoa/tab_contents_controller.h"
+#include "chrome/browser/cocoa/tab_contents_controller.h"
-#include "base/sys_string_conversions.h"
-#include "chrome/app/chrome_dll_resource.h"
-#include "chrome/browser/bookmarks/bookmark_model.h"
-#import "chrome/browser/cocoa/location_bar_view_mac.h"
-#include "chrome/browser/command_updater.h"
-#include "chrome/browser/tab_contents/tab_contents.h"
-#include "chrome/browser/toolbar_model.h"
+#import "base/sys_string_conversions.h"
+#import "chrome/app/chrome_dll_resource.h"
+#import "chrome/browser/bookmarks/bookmark_model.h"
+#import "chrome/browser/command_updater.h"
+#import "chrome/browser/location_bar.h"
+#import "chrome/browser/tab_contents/tab_contents.h"
+#import "chrome/browser/toolbar_model.h"
+#import "chrome/browser/net/url_fixer_upper.h"
+
+// For now, tab_contents lives here. TODO(port):fix
+#include "chrome/common/temp_scaffolding_stubs.h"
// Names of images in the bundle for the star icon (normal and 'starred').
static NSString* const kStarImageName = @"star";
@@ -20,6 +24,11 @@ static NSString* const kStarredImageName = @"starred";
- (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled;
@end
+@interface TabContentsController(LocationBar)
+- (NSString*)locationBarString;
+- (void)focusLocationBar;
+@end
+
@interface TabContentsController(Private)
- (void)updateToolbarCommandStatus;
- (void)applyContentsBoxOffset:(BOOL)apply;
@@ -41,6 +50,36 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver {
CommandUpdater* commands_; // weak
};
+// A C++ bridge class that handles responding to requests from the
+// cross-platform code for information about the location bar. Just passes
+// everything back to the controller.
+class LocationBarBridge : public LocationBar {
+ public:
+ LocationBarBridge(TabContentsController* controller);
+
+ // Overridden from LocationBar
+ virtual void ShowFirstRunBubble() { NOTIMPLEMENTED(); }
+ virtual std::wstring GetInputString() const;
+ virtual WindowOpenDisposition GetWindowOpenDisposition() const
+ { NOTIMPLEMENTED(); return CURRENT_TAB; }
+ // TODO(rohitrao): Fix this to return different types once autocomplete and
+ // the onmibar are implemented. For now, any URL that comes from the
+ // LocationBar has to have been entered by the user, and thus is of type
+ // PageTransition::TYPED.
+ virtual PageTransition::Type GetPageTransition() const
+ { NOTIMPLEMENTED(); return PageTransition::TYPED; }
+ virtual void AcceptInput() { NOTIMPLEMENTED(); }
+ virtual void AcceptInputWithDisposition(WindowOpenDisposition disposition)
+ { NOTIMPLEMENTED(); }
+ virtual void FocusLocation();
+ virtual void FocusSearch() { NOTIMPLEMENTED(); }
+ virtual void UpdateFeedIcon() { /* http://crbug.com/8832 */ }
+ virtual void SaveStateToContents(TabContents* contents) { NOTIMPLEMENTED(); }
+
+ private:
+ TabContentsController* controller_; // weak, owns me
+};
+
@implementation TabContentsController
- (id)initWithNibName:(NSString*)name
@@ -53,7 +92,7 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver {
commands_ = commands;
if (commands_)
observer_ = new TabContentsCommandObserver(self, commands);
- locationBarView_ = new LocationBarViewMac(commands, toolbarModel);
+ locationBarBridge_ = new LocationBarBridge(self);
contents_ = contents;
toolbarModel_ = toolbarModel;
bookmarkModel_ = bookmarkModel;
@@ -65,7 +104,7 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver {
// make sure our contents have been removed from the window
[[self view] removeFromSuperview];
delete observer_;
- delete locationBarView_;
+ delete locationBarBridge_;
[super dealloc];
}
@@ -77,18 +116,11 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver {
// doesn't change between tabs.
[self updateToolbarCommandStatus];
- // TODO(shess): This code doesn't have locationBar_ when
- // locationBarView_ is constructed, so we need the SetField() helper to
- // pass in the object here. Consider refactoring to obsolete that
- // helper, perhaps by not constructing locationBarView_ until we have
- // locationBar_.
- locationBarView_->Init();
- locationBarView_->SetField(locationBar_);
[locationBar_ setStringValue:@"http://dev.chromium.org"];
}
- (LocationBar*)locationBar {
- return locationBarView_;
+ return locationBarBridge_;
}
// Returns YES if the tab represented by this controller is the front-most.
@@ -156,12 +188,12 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver {
[contentsBox_ setContentView:contents_->GetNativeView()];
}
-- (void)defocusLocationBar {
- locationBarView_->SaveStateToContents(NULL);
+- (NSString*)locationBarString {
+ return [locationBar_ stringValue];
}
- (void)focusLocationBar {
- locationBarView_->FocusLocation();
+ [[locationBar_ window] makeFirstResponder:locationBar_];
}
- (void)updateToolbarWithContents:(TabContents*)tab {
@@ -170,9 +202,6 @@ class TabContentsCommandObserver : public CommandUpdater::CommandObserver {
// TODO(pinkerton): update the security lock icon and background color
- // TODO(shess): Determine whether this should happen via
- // locationBarView_, instead, in which case this class can
- // potentially lose the locationBar_ reference.
NSString* urlString = base::SysWideToNSString(toolbarModel_->GetText());
[locationBar_ setStringValue:urlString];
}
@@ -283,3 +312,22 @@ void TabContentsCommandObserver::EnabledStateChangedForCommand(int command,
[controller_ enabledStateChangedForCommand:command
enabled:enabled ? YES : NO];
}
+
+//--------------------------------------------------------------------------
+
+LocationBarBridge::LocationBarBridge(TabContentsController* controller)
+ : controller_(controller) {
+}
+
+std::wstring LocationBarBridge::GetInputString() const {
+ // TODO(shess): This code is temporary until the omnibox code takes
+ // over.
+ std::wstring url = base::SysNSStringToWide([controller_ locationBarString]);
+
+ // Try to flesh out the input to make a real URL.
+ return URLFixerUpper::FixupURL(url, std::wstring());
+}
+
+void LocationBarBridge::FocusLocation() {
+ [controller_ focusLocationBar];
+}
diff --git a/chrome/browser/cocoa/tab_strip_controller.mm b/chrome/browser/cocoa/tab_strip_controller.mm
index 28678d7..46a98df 100644
--- a/chrome/browser/cocoa/tab_strip_controller.mm
+++ b/chrome/browser/cocoa/tab_strip_controller.mm
@@ -295,14 +295,6 @@ class TabStripBridge : public TabStripModelObserver {
previousContents:(TabContents*)oldContents
atIndex:(NSInteger)index
userGesture:(bool)wasUserGesture {
- int selectedIndex = 0;
- for (TabController* current in tabArray_) {
- if ([current selected]) {
- break;
- }
- ++selectedIndex;
- }
-
// De-select all other tabs and select the new tab.
int i = 0;
for (TabController* current in tabArray_) {
@@ -314,13 +306,6 @@ class TabStripBridge : public TabStripModelObserver {
NSView* selectedTab = [self viewAtIndex:index];
[tabView_ addSubview:selectedTab positioned:NSWindowAbove relativeTo:nil];
- // Tell the current tab to lose focus.
- if (selectedIndex < (int)[tabArray_ count]) {
- TabContentsController* selectedController =
- [tabContentsArray_ objectAtIndex:selectedIndex];
- [selectedController defocusLocationBar];
- }
-
// Tell the new tab contents it is about to become the selected tab. Here it
// can do things like make sure the toolbar is up to date.
TabContentsController* newController =
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index ba9ea8b..8a1dfb4 100644
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -387,8 +387,6 @@
'browser/autocomplete/autocomplete_edit_view.h',
'browser/autocomplete/autocomplete_edit_view_gtk.cc',
'browser/autocomplete/autocomplete_edit_view_gtk.h',
- 'browser/autocomplete/autocomplete_edit_view_mac.h',
- 'browser/autocomplete/autocomplete_edit_view_mac.mm',
'browser/autocomplete/autocomplete_edit_view_win.cc',
'browser/autocomplete/autocomplete_edit_view_win.h',
'browser/autocomplete/autocomplete_popup_model.cc',
@@ -396,8 +394,6 @@
'browser/autocomplete/autocomplete_popup_view.h',
'browser/autocomplete/autocomplete_popup_view_gtk.cc',
'browser/autocomplete/autocomplete_popup_view_gtk.h',
- 'browser/autocomplete/autocomplete_popup_view_mac.h',
- 'browser/autocomplete/autocomplete_popup_view_mac.mm',
'browser/autocomplete/autocomplete_popup_view_win.cc',
'browser/autocomplete/autocomplete_popup_view_win.h',
'browser/autocomplete/history_contents_provider.cc',
@@ -520,8 +516,6 @@
'browser/cocoa/browser_window_controller.mm',
'browser/cocoa/grow_box_view.h',
'browser/cocoa/grow_box_view.m',
- 'browser/cocoa/location_bar_view_mac.h',
- 'browser/cocoa/location_bar_view_mac.mm',
'browser/cocoa/sad_tab_view.h',
'browser/cocoa/sad_tab_view.mm',
'browser/cocoa/shell_dialogs_mac.mm',
@@ -1275,6 +1269,9 @@
['include', '^browser/download/save_(file(_manager)?|item|package)\\.cc$'],
],
'sources!': [
+ 'browser/autocomplete/autocomplete_edit.cc',
+ 'browser/autocomplete/autocomplete_popup_model.cc',
+ 'browser/automation/automation_provider_list_generic.cc',
'browser/bookmarks/bookmark_context_menu.cc',
'browser/bookmarks/bookmark_drop_info.cc',
'browser/debugger/debugger_shell_stubs.cc',