summaryrefslogtreecommitdiffstats
path: root/chrome/browser/navigation_controller_unittest.cc
Commit message (Collapse)AuthorAgeFilesLines
* Makes form resubmission dialog work again. This was a regressionsky@google.com2008-10-301-2/+2
| | | | | | | | | | | introduced during NavigationController refactoring. BUG=2616 TEST=see bug Review URL: http://codereview.chromium.org/8865 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4212 0039d316-1c4b-4281-b951-d872f2087c98
* Add referrer to session restore.ericroman@google.com2008-10-281-4/+4
| | | | | | | | http://code.google.com/p/chromium/issues/detail?id=3774 Review URL: http://codereview.chromium.org/8649 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4086 0039d316-1c4b-4281-b951-d872f2087c98
* Plumb the referrer throughout the OpenURL APIs.ericroman@google.com2008-10-271-37/+43
| | | | | | | | | | | | | http://code.google.com/p/chromium/issues/detail?id=3224 Caveats: * Did not update TabNavigation yet. Hence session restore will continue to load the tabs with empty referrer. * Did not plumb referrer into incognito url open. (Not sure what the right thing to do is here with respect to privacy vs compatibility.) * Did not plumb referrer throughout the automation controller. No functional impact here, but it makes the code inconsistent with the non-automation version. Review URL: http://codereview.chromium.org/8186 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4036 0039d316-1c4b-4281-b951-d872f2087c98
* Move Time, TimeDelta and TimeTicks into namespace base.dsh@google.com2008-10-271-0/+2
| | | | | | Review URL: http://codereview.chromium.org/7995 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@4022 0039d316-1c4b-4281-b951-d872f2087c98
* Adds the anti-carpet bombing dialog. More specifically a newsky@google.com2008-10-171-171/+102
| | | | | | | | | | | | | | | | | EventHandler now exists between the buffered event handler and download event handler. This new event handler asks the DownloadRequestManager whether the download is allowed. This may prompt the user and then the download continues or is canceled. The DownloadRequestManager receives the request on the IO thread, forwards to the UI thread, makes the decision, then notifies back on the IO thread. BUG=3422 TEST=make sure you don't see any problems downloading content. Review URL: http://codereview.chromium.org/7479 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3543 0039d316-1c4b-4281-b951-d872f2087c98
* This is the first pass at refactoring the interstitial page.jcampan@chromium.org2008-10-131-2/+182
| | | | | | | | | | | | | | | | | The SSL and malware blocking pages were doing similar things in 2 different classes. There is now a base class called InterstitialPage that contains the common logic. As part of that refactoring, the safe browsing was changed so that the SafeBrowsingBlockingPage is only used from the UI thread. This CL also adds transient entries to the navigation controller: that type of entry gets deleted as soon as a navigation occurs. It is used by interstitial that need to create such a temporary entry while they show. BUG=3013 TEST=Run the unit tests and ui tests. Review URL: http://codereview.chromium.org/6311 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3324 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash when a frame was inserted into a popup and navigated. I added abrettw@google.com2008-09-241-0/+23
| | | | | | | | | | | | test for this case. I also checked the other navigation cases to see if we were relying on state from the renderer (which might be malicious) and the controller being in sync, and I didn't see any others in this area. I clarified some comments so it should be more clearly correct. BUG=1279570 Review URL: http://codereview.chromium.org/4250 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2549 0039d316-1c4b-4281-b951-d872f2087c98
* Wires up session restore so that it correctly deals with thesky@google.com2008-09-171-1/+48
| | | | | | | | | | | | navigation controller removing entries from the front of its list. BUG=1324021 TEST=covered by unit tests, but make sure you don't see problems with session restore. Review URL: http://codereview.chromium.org/2906 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2310 0039d316-1c4b-4281-b951-d872f2087c98
* Try again to fix the memory problems in NavigationController. The previous onebrettw@google.com2008-09-151-5/+9
| | | | | | | | | issued a DCHECK when I manlually deleted the NavigationController because the tabs were still there. Calling destroy fixes this, although I have to manually NULL out some test pointers to prevent double-frees. Review URL: http://codereview.chromium.org/3070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2247 0039d316-1c4b-4281-b951-d872f2087c98
* Revert my last fix for a memory leak in the navigation controller tests. Thisbrettw@google.com2008-09-151-2/+2
| | | | | | | causes an assertion in debug mode. I think this needs to be done another way. Review URL: http://codereview.chromium.org/2873 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2239 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a leak in the unit tests.brettw@google.com2008-09-151-2/+2
| | | | | | Review URL: http://codereview.chromium.org/3067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2237 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the unneeded pending entry from the unit tests.brettw@google.com2008-09-151-17/+0
| | | | | | Review URL: http://codereview.chromium.org/2859 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2220 0039d316-1c4b-4281-b951-d872f2087c98
* This is almost a complete rewrite of DidNavigate and the associated ↵brettw@google.com2008-09-141-226/+438
| | | | | | | | | | NavigationController logic. The approach is that the NavigationController should be responsible for the logic and memory management of navigation. Previously, half the logic and memory management lived in WebContents which made it very hard to figure out what was going on. I split out the various navigation types into separate functions, which then copy and update any existing NavigationEntry as necessary. Previously, WebContents would make a new one which would be manually populated with random fields (I think some were forgotten, too), and then the NavigationController may or may not commit it. Review URL: http://codereview.chromium.org/479 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2201 0039d316-1c4b-4281-b951-d872f2087c98
* Revert the change that fixed the encoding when viewing source in subframes.brettw@google.com2008-09-121-2/+1
| | | | | | | | | This makes view source for some pages (for example Google Reader) not work properly. I speculate that telling WebKit to change the encoding (which causes a reload) right after starting the real load makes it confused. Review URL: http://codereview.chromium.org/3022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2143 0039d316-1c4b-4281-b951-d872f2087c98
* Changes session service to not persist NavigationEntries that havesky@google.com2008-09-111-3/+0
| | | | | | | | | | | POST data. This is a security problem as POST data can contain passwords in plain text. BUG=1361980 TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@2063 0039d316-1c4b-4281-b951-d872f2087c98
* Fix SSL state in the URL bar being incorrect. Going to an EV site like ↵brettw@google.com2008-09-071-1/+3
| | | | | | | | | | | | | https://www.verisign.com/ would not should the EV name in the URL bar unless you did something like switch tabs away and back because in my cleanup I removed the notification that this was depending on. This patch adds a new NOTIFY_SSL_STATE_CHANGED notification which is broadcast by the various SSL components when they update the flags. The browser now listens for this notification and will update the URL bar. BUG=1359547 TEST=see repro steps in bug Review URL: http://codereview.chromium.org/436 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1831 0039d316-1c4b-4281-b951-d872f2087c98
* Forgotten unit test chanes.brettw@google.com2008-08-281-6/+11
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1507 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup navigation_entry.h. I made the accessors consistent and in Google ↵brettw@google.com2008-08-271-31/+31
| | | | | | style, and organized and commented all the entries. Hopefully it will be much easier to find things and deal with this class. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1449 0039d316-1c4b-4281-b951-d872f2087c98
* Chrome changes corresponding to my message_loop_type CL.darin@google.com2008-08-261-0/+3
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1363 0039d316-1c4b-4281-b951-d872f2087c98
* Add some new tests for NavigationController for navigations that come in ↵brettw@google.com2008-08-251-13/+223
| | | | | | when various navigations are pending. This doesn't actually change any behavior. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1314 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
* Cleans up notifications for the NavigationController. There were severalbrettw@google.com2008-08-191-5/+131
| | | | | | | | | | | | notifications before and some of them were very unclear and misused (STATE_CHANGED). This one, and PRUNED were called unnecessarily in some cases as well. I replaced STATE_CHANGED and INDEX_CHANGED with ENTRY_COMMITTED which is more clear and covers (I think!) all the cases that the callers care about. I added a simple notification testing helper class, and used in the navigation controller unit tests to make sure we get the proper notifications. I had to change NotificationSource/Details to have a = and copy constructor so I can track them easily in my helper. I don't see why this would be bad. BUG=1325636,1321376,1325779 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1039 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/+2
| | | | | | | | | 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
* git-svn-id: svn://svn.chromium.org/chrome/trunk/src@963 ↵brettw@google.com2008-08-151-131/+5
| | | | 0039d316-1c4b-4281-b951-d872f2087c98
* Cleans up notifications for the NavigationController. There were severalbrettw@google.com2008-08-151-5/+131
| | | | | | | | | | | | | | | | | | | | | | | | notifications before and some of them were very unclear and misused (STATE_CHANGED). This one, and PRUNED were called unnecessarily in some cases as well. I replaced STATE_CHANGED and INDEX_CHANGED with ENTRY_COMMITTED which is more clear and covers (I think!) all the cases that the callers care about. I added a simple notification testing helper class, and used in the navigation controller unit tests to make sure we get the proper notifications. I had to change NotificationSource/Details to have a = and copy constructor so I can track them easily in my helper. I don't see why this would be bad. As part of this, I got very frustrated recompiling the world whenever navigation_types.h changed. So I removed this dependency from the notification service which everybody includes. Most of the changed files are adding notification_types.h in the .cc file where it's needed. BUG=1325636,1321376,1325779 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@956 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce MessagePump to represent the native message pump used to drive adarin@google.com2008-08-151-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MessageLoop. A MessageLoop now has a MessagePump. This will make it possible to port the MessagePump interface to other platforms as well as to use an IO completion port for our worker threads on Windows. Currently, there is only MessagePumpWin, which attempts to preserve the pre-existing behavior of the MessageLoop. API changes to MessageLoop: 1. MessageLoop::Quit means return from Run when the MessageLoop would otherwise wait for more work. 2. MessageLoop::Quit can no longer be called outside the context of an active Run call. So, things like this: MessageLoop::current()->Quit(); MessageLoop::current()->Run(); are now: MessageLoop::current()->RunAllPending(); 3. MessageLoop::Quit can no longer be called from other threads. This means that PostTask(..., new MessageLoop::QuitTask()) must be used explicitly to Quit across thread boundaries. 4. No protection is made to deal with nested MessageLoops involving watched objects or APCs. In fact, an assertion is added to flag such cases. This is a temporary measure until object watching and APC facilities are removed in favor of a MessagePump designed around an IO completion port. As part of this CL, I also changed the automation system to use an IPC::ChannelProxy instead of an IPC::Channel. This moves the automation IPC onto Chrome's IO thread where it belongs. I also fixed some abuses of RefCounted in the AutomationProvider class. It was deleting itself in some cases! This led to having to fix the ownership model for AutomationProvider, which explains the changes to AutomationProviderList and so on. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@928 0039d316-1c4b-4281-b951-d872f2087c98
* First, this removes the dependency of NavigationController on thebrettw@google.com2008-08-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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
* Ensures that we clean up TabContents with other types after a navigation ↵creis@google.com2008-08-041-2/+45
| | | | | | | | | | | commits, even if their NavigationEntries aren't adjacent to the current entry. Also makes NavigationController::Destroy compatible with NavigationControllerTest, which adds more tab types than TAB_CONTENTS_NUM_TYPES. Also re-enables the SwitchTypes tests and adds another to prevent regression of this bug. BUG=1296773 TEST=NavigationControllerTest.SwitchTypesCleanup git-svn-id: svn://svn.chromium.org/chrome/trunk/src@332 0039d316-1c4b-4281-b951-d872f2087c98
* Add chrome to the repository.initial.commit2008-07-261-0/+818
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15 0039d316-1c4b-4281-b951-d872f2087c98