summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser.cc
Commit message (Collapse)AuthorAgeFilesLines
* Make the window icon the app icon by default for popups and app windows ↵beng@google.com2008-08-241-2/+5
| | | | | | | | | | unless the page specifies a favicon. This ensures that we don't show the default favicon for the window icon. (This is only appropriate for tab icons). Also make sure popup windows opened from app windows are themselves app windows (and don't show the URL bar) B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1293 0039d316-1c4b-4281-b951-d872f2087c98
* Use a more compact license header in source files.license.bot2008-08-241-28/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1287 0039d316-1c4b-4281-b951-d872f2087c98
* As Brett pointed it out, We normally use 8-bit for encoding names since ↵jnd@google.com2008-08-211-1/+1
| | | | | | they're always ASCII. Plus, wstrings will also be 32-bit characters on Linux and Mac, which is expensive. So I make this CL by using std::string instead of std::wstring every time you have an encoding name. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1144 0039d316-1c4b-4281-b951-d872f2087c98
* Revert a fix where I mistakenly assumed that numbers coming into erg@google.com2008-08-201-4/+3
| | | | | | | | | | | | Browser::MoveContents() were content sizes instead of window sizes; this broke a unit test and is incorrect. Reopening the other bug; it seems like webkit is getting totally wrong numbers when asking for a window's size. BUG=1334628, git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1121 0039d316-1c4b-4281-b951-d872f2087c98
* Allow popups using the new frames to be sized correctly. This involved a ↵beng@google.com2008-08-201-36/+54
| | | | | | | | | slight tweak to how RestoreWindowPosition on Window works - if the window is opened with specified bounds, we still ask the delegate to try and restore the position. The delegate can use the provided bounds as a hint (in the popup case the bounds aren't the true layout bounds of the window, rather the rect contains the window position and content area size) to return the actual bounds of the window. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1117 0039d316-1c4b-4281-b951-d872f2087c98
* The CL is consist of CLs(1624,1580) for bug:1281734 which are reviewed and ↵jnd@google.com2008-08-181-1/+10
| | | | | | | | | LG by brett. I just merge them to single one for passing compilation. The CL is to fix bug http://b/issue?id=1281734. FireFox uses encoding used by the original webpage to decode the source of the webpage, Chrome does not. We need to add a new parameter which carries the override encoding when opening a view-source URL for viewing its source. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@997 0039d316-1c4b-4281-b951-d872f2087c98
* Large patch set (159 files total) to cleanup the includes.maruel@google.com2008-08-151-0/+3
| | | | | | | | | | - Slightly reduce the size of the generated .lib files ~3%. - Reduce the number of implicit and explicit atl and windows includes. hooray! - Help incremental build by reducing the number of unnecessary included files. - Split some template class in two, one base class for the common code and the specialization that inherits from the base class. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@937 0039d316-1c4b-4281-b951-d872f2087c98
* Don't save the window position of popup windows.beng@google.com2008-08-131-0/+4
| | | | | | | B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@825 0039d316-1c4b-4281-b951-d872f2087c98
* First, this removes the dependency of NavigationController on thebrettw@google.com2008-08-131-8/+0
| | | | | | | | | | | | | | | | | | | | | | SessionService. There were already some notifications that could be used to tell what's going on, and I filled out the rest. I moved some notifications from various places to the NavigationController. In ssl_blocking_page, I removed a notification because it also calls DidNavigateToEntry which does the notification (we got duplicate calls before). In browser.cc I removed the tab parented notification since this is already called by NavigationController::SetWindowID. I removed some obsolete notifications and associated structures, especially in history (like HOST_DELETED that was never issued). I renamed the window_map_ in the MetricsService becuase it was actually a map of controllers and Windows. This also reorders the navigation_types header file to try to bring some order to it. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@807 0039d316-1c4b-4281-b951-d872f2087c98
* Add a bit of plumbing to make it so Browser doesn't need to know about ↵ojan@google.com2008-08-121-5/+2
| | | | | | | | RenderViewHost. Don't know how what I had before built. Tested more thoroughly this time. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@732 0039d316-1c4b-4281-b951-d872f2087c98
* Revert this CL. Breaks compile.ojan@google.com2008-08-121-2/+5
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@724 0039d316-1c4b-4281-b951-d872f2087c98
* Add a bit of plumbing just so Browser doesn't need to know about RenderViewHost.ojan@google.com2008-08-121-5/+2
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@720 0039d316-1c4b-4281-b951-d872f2087c98
* Don't terminate the process when a tab becomes unresponsive during ojan@google.com2008-08-111-10/+4
| | | | | | | | | | | | | unload/beforeunload. Instead, just call close on it. If two tabs are in the same process, then terminating the process is totally wrong. This also avoids the bugs where we show sad tab, or don't remove the tab from the tabstrip. Also, remove a couple of bogus DCHECKS. BUG=1314995,1301757 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@685 0039d316-1c4b-4281-b951-d872f2087c98
* Set the hung renderer and plugin timeout to 10 seconds.jabdelmalek@google.com2008-08-111-1/+1
| | | | | | BUG=1314703 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@665 0039d316-1c4b-4281-b951-d872f2087c98
* Another Frame Grab-Bagbeng@google.com2008-08-111-15/+66
| | | | | | | | | | | | | | | - makes more stuff in Browser object only happen if you're using the old frames- rename BrowserWindow::Update to BrowserWindow::UpdateToolbar since that's what it does - add window position save/restore handling to Browser- remove BrowserWindow::BrowserDidPaint - relic from HaloFrame days- remove BrowserWindow::GetRootView - unused and exposes impl details- remove BrowserWindow::DetachFromBrowser - unused - store BrowserView2* on HWND's property list so infobubbles can access it later- both frames (Opaque and AeroGlass) notify the BrowserView2 when they're moved so BrowserView2 can reposition the status bubble and close the autocomplete popup - remove BrowserView2::ShowTabContents - no longer used - remove BrowserView2::ShelfVisibilityChanged - no longer used - remove BrowserView2::SetWindowTitle - never used - remove BrowserView2::ProfileChanged - now called from TabSelectedAt- properly unhook infobars etc when a tab is detached B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@660 0039d316-1c4b-4281-b951-d872f2087c98
* Even more tweaks.beng@google.com2008-08-091-1/+33
| | | | | | | | | | - make window icon and title work on app windows - make window title updating sync with the task bar - make Aero Glass frame respect app mode settings - move title formatting routine from TabRenderer into Browser (a more central location) - appearance adjustments for app windows with info bars git-svn-id: svn://svn.chromium.org/chrome/trunk/src@612 0039d316-1c4b-4281-b951-d872f2087c98
* Tweaks to make the opaque frame look better including adding support for app ↵beng@google.com2008-08-081-14/+20
| | | | | | | | windows. Document the constants in the non-client view. Make the OTR frame work. Add a check to browser process that we use to check if we're using the new frames so we can disable various functionality that isn't appropriate. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@573 0039d316-1c4b-4281-b951-d872f2087c98
* More improvements to the frames. Consolidate some of the optional bar ↵beng@google.com2008-08-071-0/+1
| | | | | | | | | (bookmark, info, download) showing/layout, add a notion of supported window features, hook up some accelerator handling goop etc. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@529 0039d316-1c4b-4281-b951-d872f2087c98
* Restored tabs should be considered "owned" by whatever random tab is ↵erg@google.com2008-08-061-2/+4
| | | | | | | | currently open. BUG=1305200 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@469 0039d316-1c4b-4281-b951-d872f2087c98
* The rectangle passed in to MoveContents is a content rectangle, not a window ↵erg@google.com2008-08-061-3/+4
| | | | | | | | rectangle as I assumed. BUG=1186573 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@411 0039d316-1c4b-4281-b951-d872f2087c98
* Fix crash due to race conditions in the way Browser unhooks itsbeng@google.com2008-08-051-27/+37
| | | | | | | | | | | | | | | NotificationObserver for WebContents disconnection... not all codepaths would result in Browser being removed as an observer. This change simplifies things a bit by adding Browser as an observer for a TabContents whenever it is inserted into the Browser's tabstrip, and removing it whenever it's detached. These notifications are designed to be symmetrical and handle all use cases including create/destroy(close) and also tab dragging/detaching. Thanks to Adam for helping diagnose this and suggesting this fix. B=1307678 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@402 0039d316-1c4b-4281-b951-d872f2087c98
* Grab bag of random cleanups, implementation of some more methods, etc. I'm ↵beng@google.com2008-08-051-0/+1
| | | | | | | | going to become more methodical about this soon, I promise. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@377 0039d316-1c4b-4281-b951-d872f2087c98
* When a new tab is opened (either the new tab page via Ctrl+T or pressing the ↵beng@google.com2008-08-041-8/+24
| | | | | | | | | | new tab button) or an address is opened from the address bar in a new tab (by pressing Alt+Enter), the opener is remembered briefly, allowing quick lookup in a new tab without disrupting the z-order experience. Full explanation in bug: B=1266404 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@330 0039d316-1c4b-4281-b951-d872f2087c98
* Fix several issues with popup window locations:erg@google.com2008-08-041-4/+11
| | | | | | | | | | 1) Remove ConstrainedWindow::GenerateInitialBounds(), which is old and crufty and no longer relevant now that there are no unsuppressed, constrained popup windows. 2) Move the browser side positioning logic into Browser::BuildPopupWindow(). 3) Fix the window.open() handler so that when we aren't given top=/left= coordinates, we don't set the window origin (allowing the browser to do something more intelligent). BUG=1290758 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@325 0039d316-1c4b-4281-b951-d872f2087c98
* A bunch of cleanups to beforeunload/unload handling.ojan@google.com2008-08-021-76/+105
| | | | | | | | 1. Remove all the is_closing_browser plumbing. WebContents/TabContents/RenderViewHost/etc really shouldn't (and don't!) need to know anything about whether we're closing the browser or not. 2. Refactor the handling of beforeunload/unload state in browser.cc. I think this makes it considerably easier to reason about the correctness of it. 3. Added a couple TODOs for future cleanups that would have made this change a bit too large. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273 0039d316-1c4b-4281-b951-d872f2087c98
* Adds the BrowserView to the XPFrame/VistaFrame, and moves the ↵beng@google.com2008-08-011-1/+2
| | | | | | | | | | | | | | | | | | | | BrowserToolbarView and StatusBubble into it. Also restructures the creation of the Frame. This is significant! The Browser now constructs a frame via a new static BrowserWindow::CreateBrowserWindow method (see browser_window_factory.cc). Recall the diagram in the architectural overview doc - the BrowserView object is the one that implements the interface that the Browser object uses to communicate with the UI. The Browser object communicates to the BrowserView directly through this interface, but not directly to the frame. What actually happens right now in CreateBrowserWindow is that an XP/VistaFrame is constructed, but this is _not_ the object returned to the Browser, rather when the XP/VistaFrame is init'ed, it constructs a BrowserView that also implements BrowserWindow. This is the object that's returned to the Browser. Since both BrowserView and XP/VistaFrame implement BrowserWindow, I am now able to gradually migrate functionality from the frames to BrowserView. During this process BrowserWindow functions not handled yet by BrowserView will be forwarded to the appropriate frame. Modifies the Accessibility UI tests to account for this extra level of indirection (should only be temporary while I'm moving things around). This does actually pass the UI tests. See the whiteboard in my office for a diagram. This is a bit confusing right now since there's so much going on. Sadly the only way to get where we need to go incrementally is to make a mess on the way. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245 0039d316-1c4b-4281-b951-d872f2087c98
* Move the BookmarkBarView into the frames.beng@google.com2008-08-011-17/+0
| | | | | | | | Yes this causes duplicate code, but only for a brief while until I can bring up BrowserView at which point this code will move from the frames to that object. "It gets worse before it gets better". B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213 0039d316-1c4b-4281-b951-d872f2087c98
* Move BrowserToolbarView to the frames (XPFrame/VistaFrame).beng@google.com2008-07-311-18/+5
| | | | | | | | | | This causes some temporary duplication of code in xp/vista frames but it will be temporary. My goal is to move all the top level browser level views into the frames. From there, I will move them from the frames into their new home - BrowserView (chrome/browser/views/frames/browser_view.cc), and each frame will host a BrowserView. This will reduce duplication of code. To make this change I had to add a bunch of methods to the BrowserWindow (nee ChromeFrame) interface to provide access to some of the toolbar's contents. Excuse the ugly API, we will be improving this incrementally. B=1031854 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205 0039d316-1c4b-4281-b951-d872f2087c98
* Move more net classes into the net namespace. Also remove the net_util ↵darin@google.com2008-07-311-1/+1
| | | | | | | | namespace in favor of the net namespace. This is a purely mechanical change. There should be no logic changes. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192 0039d316-1c4b-4281-b951-d872f2087c98
* At the first run use Omaha usagestats key to determine whether to collect ↵rahulk@google.com2008-07-301-1/+0
| | | | | | | | | | | user metrics. BUG=1299579 TEST=With clean profile and no "first run" file, start Chrome and make sure that Under the Hood->Help make Chrome better... option is checked or unchecked depending on whether the value of HKEY_CURRENT_USER\Software\Google\Update\ClientState\{8A69D345-D564-463c-AFF1-A69D9E530F96}\usagestats key is 1 or 0. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149 0039d316-1c4b-4281-b951-d872f2087c98
* Make the download arrow show and hide correctly in response to shelf ↵glen@google.com2008-07-301-1/+1
| | | | | | | | visibility. This was caused by both the shelf_visible_ bool not being set by the download shelf correctly, and the tab renderer not being aware of the new state. BUG=1300997 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143 0039d316-1c4b-4281-b951-d872f2087c98
* Simple change to make the "New [incognito] window" commands work like you'd ↵pkasting@google.com2008-07-301-3/+0
| | | | | | | | | | | | expect. The old behavior disabled "New incognito window" when in incognito windows, created a new incognito tab instead of a new window when you already had an incognito window open, and gave you no way to get a non-incognito window from an incognito one. Now, both commands are always enabled, and both do exactly what they say they'll do no matter what type of window you're currently in. BUG=1190035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@142 0039d316-1c4b-4281-b951-d872f2087c98
* Fix 1295677: REGRESSION: Import SETS startup page to imported home page.finnur@google.com2008-07-301-4/+21
| | | | | | | | | We had only kHomePage pref before, which if blank/set to chrome-internal: meant that the New Tab page should be shown when Home is pressed. Now we add a pref called kHomePageIsNewTabPage for this purpose, which allows us to set the kHomePage value during import without actually using it as the HomePage (effectively importing home page becomes importing a default suggestion for when the users want a home page instead of the New Tab page). BUG=1295677 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ChromeFrame->BrowserWindowbeng@google.com2008-07-301-29/+30
| | | | | | | | | Move static utility functions to FrameUtil class. B=1294302 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102 0039d316-1c4b-4281-b951-d872f2087c98
* Window Delegate Improvements:beng@google.com2008-07-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | - Windows now must have a Delegate. Just construct the default WindowDelegate if you don't want to have to write one in testing. - Windows now obtain their contents view by asking the delegate via WindowDelegate::GetContentsView. - Contents views no longer need to manually store a pointer to the Window that contains them, WindowDelegate does this automatically via its window() accessor. Reviewer notes: - review window_delegate.h first, then - window.h/cc - custom frame window.h/cc - constrained_window_impl.h/cc - then everything else (just updating all call sites) B=1280060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96 0039d316-1c4b-4281-b951-d872f2087c98
* Fix not closing the browser with hung, crashed and interstitial tabs. Adds a ↵ojan@google.com2008-07-291-10/+51
| | | | | | | | 1 second hang monitor for the beforeunload/unload events to fire. BUG=1296059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@81 0039d316-1c4b-4281-b951-d872f2087c98
* Add chrome to the repository.initial.commit2008-07-261-0/+1665
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15 0039d316-1c4b-4281-b951-d872f2087c98