summaryrefslogtreecommitdiffstats
path: root/chrome_frame
Commit message (Collapse)AuthorAgeFilesLines
* Fix a failing unit tests in Debug build.amit@chromium.org2010-08-041-1/+1
| | | | | | | | BUG=51131 Review URL: http://codereview.chromium.org/2856086 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54855 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the Windows build.brettw@chromium.org2010-08-031-5/+6
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54750 0039d316-1c4b-4281-b951-d872f2087c98
* Remove number conversion functions from string_util. These moved to ↵brettw@chromium.org2010-08-035-7/+15
| | | | | | | | | | string_number_conversions. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3054036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54747 0039d316-1c4b-4281-b951-d872f2087c98
* Add #include utf_string_conversions.h to all files that use ASCIIToWide andbrettw@chromium.org2010-08-036-0/+6
| | | | | | | | | | | | | | | ASCIIToUTF16. I removed string_util includes from a few places where it obviously wasn't needed. In a separate pass, I'm going to remove ASCIITo* from string_util, then I'm going to do an even later pass to find the unnecessary string_util.h includes and remove them. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3058027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54746 0039d316-1c4b-4281-b951-d872f2087c98
* [chrome_frame] Add methods for finding and performing default action on ↵kkania@chromium.org2010-08-0212-146/+549
| | | | | | | | | | Accessibility objects. Use this approach in one test. BUG=none TEST=none Review URL: http://codereview.chromium.org/2895016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54603 0039d316-1c4b-4281-b951-d872f2087c98
* Fix ChromeFrame context menu tests which rely on the IE active document ↵ananta@chromium.org2010-08-021-1/+2
| | | | | | | | | | | window having focus. This regressed recently with the change to fix focus recycling issues in ChromeFrame while switching tabs. Review URL: http://codereview.chromium.org/3067023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54596 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a crash in ChromeFrame full tab mode while processing the attach ↵ananta@chromium.org2010-08-023-7/+39
| | | | | | | | | | | | | | | | | | | | | | | external tab request, which comes in during window open. We create a ProtData object instance which is mapped to the protocol with a NULL read function pointer which was used to indicate if this is a dummy request. It appears that there are cases where we may receive a StartEx call with a reused protocol pointer. which basically causes a crash in the context of IInternetProtocolSink::ReportData which internally calls IInternetProtocol::LockRequest, which crashes as the transaction never started. Fix is to invalidate the protdata mapping if the protdata has not been destroyed yet, but the underlying Transaction has been destroyed. This can happen if the original bind context has not yet been destroyed Fixes bug http://code.google.com/p/chromium/issues/detail?id=50814 Bug=50814,50956 Test=Subsequent CL. Review URL: http://codereview.chromium.org/3078010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54553 0039d316-1c4b-4281-b951-d872f2087c98
* Allow non-IE hosts to handle accelerators without having tojoi@chromium.org2010-08-024-49/+69
| | | | | | | | | | | | implement the huge IBrowserService2 interface. BUG=none TEST=none Review URL: http://codereview.chromium.org/2847071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54550 0039d316-1c4b-4281-b951-d872f2087c98
* Convert more callers of the integer/string functions to usingbrettw@chromium.org2010-07-311-0/+1
| | | | | | | | | | string_number_conversions.h TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3013046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54454 0039d316-1c4b-4281-b951-d872f2087c98
* Handle a case if BindContextInfo::FromBindContext fails and not leak a ↵tommi@chromium.org2010-07-301-0/+4
| | | | | | | | | | | ProtData instance. BUG=none TEST=fixes a potential memory leak. Review URL: http://codereview.chromium.org/2832097 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54366 0039d316-1c4b-4281-b951-d872f2087c98
* Move the number conversions from string_util to a new file.brettw@chromium.org2010-07-304-10/+11
| | | | | | | | | | | | | Use the base namespace in the new file. Update callers. I removed all wstring variants and also the string->number ones that ignore the return value. That encourages people to write code and forget about error handling. TEST=included unit tests BUG=none Review URL: http://codereview.chromium.org/3056029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54355 0039d316-1c4b-4281-b951-d872f2087c98
* Reinstating the call to InitiateNavigation when we launch the url from our ↵ananta@chromium.org2010-07-301-0/+7
| | | | | | | | | | | | active document. This is needed to pass the referrer correctly to chrome. TBR=amit Review URL: http://codereview.chromium.org/3080012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54292 0039d316-1c4b-4281-b951-d872f2087c98
* Convert a bunch of easy AppendSwitchWithValue to *ASCII.evan@chromium.org2010-07-304-6/+6
| | | | | | | | | For this patch, I skipped over any instance where it wasn't a nearly trivial change. Review URL: http://codereview.chromium.org/3069014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54285 0039d316-1c4b-4281-b951-d872f2087c98
* Miscellaneous ChromeFrame code cleanup. The automation client class ↵ananta@chromium.org2010-07-305-35/+32
| | | | | | | | | | | | | | maintained GURL members holding the url and referrer. We can stuff this information into the ChromeFrameLaunchParams member maintained by the client. This reduces the complexity in the code related to detecting whether we can navigate up front or after chrome initialization. The ChromeFrame ActiveX now launches the automation server in its implementation of IPersistPropertyBag::Load. This avoids race conditions between launching the automation server and navigating to it via put_src. Review URL: http://codereview.chromium.org/3038038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54284 0039d316-1c4b-4281-b951-d872f2087c98
* The NPAPI ChromeFrame plugin is unable to set cookies in Firefox as it does ↵ananta@chromium.org2010-07-292-5/+10
| | | | | | | | | | | | | | | | not provide access to the nsIServiceManager interface via NPN_GetValue for NPNVserviceManager. Fix is to use the NS_GetServiceManager first and if that fails then fallback to using the old method. Fixes bug http://code.google.com/p/chromium/issues/detail?id=50681 Bug=50681 Review URL: http://codereview.chromium.org/2884050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54221 0039d316-1c4b-4281-b951-d872f2087c98
* CommandLine: add a CopySwitchesFrom() and AppendSwitchPath()evan@chromium.org2010-07-293-5/+4
| | | | | | | | | | | These are two common patterns in Chrome code: copying a subset of switches from one CommandLine to another, and appending a FilePath to a CommandLine. This sets me up to do a lot more deprecation in a follow-up change. Review URL: http://codereview.chromium.org/3012021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54218 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: Move more test server code from net/url_request/url_request_unittest.hphajdan.jr@chromium.org2010-07-294-5/+13
| | | | | | | | | | | | | to net/test/test_server.h No code changes, just a move. TEST=none BUG=49680 Review URL: http://codereview.chromium.org/3034038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54201 0039d316-1c4b-4281-b951-d872f2087c98
* Ensure that window.open requests issued by ChromeFrame carry the correct ↵ananta@chromium.org2010-07-288-213/+431
| | | | | | | | | | | | | | | | | | | | | cookies in the outgoing HTTP requests. To achieve this we no longer issue navigations with the gcf:attach* prefix. We now issue a navigation to the current page URL with the attach external tab suffix, which indicates that the page is forced into ChromeFrame without making an actual HTTP request. This ensures that the new IE8 process has access to all HTTP cookies. We need to patch IInternetProtocol::LockRequest and UnlockRequest to not call the underlying implementations for our dummy request as this crashes in IE8 in the prebinding code path. Fixes bug http://b/issue?id=2277519 Added tests for the CanNavigateFullTabMode helper function. Bug=2277519 Review URL: http://codereview.chromium.org/3051018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54019 0039d316-1c4b-4281-b951-d872f2087c98
* Chrome Frame GYP file cleanup.stoyan@chromium.org2010-07-281-44/+27
| | | | | | Review URL: http://codereview.chromium.org/2873061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54009 0039d316-1c4b-4281-b951-d872f2087c98
* base/ header cleanup. Forward declaration instead of including.erg@google.com2010-07-284-6/+11
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3068004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53969 0039d316-1c4b-4281-b951-d872f2087c98
* The ChromeFrame persistent cookie test creates persistent cookies and ↵ananta@chromium.org2010-07-283-17/+32
| | | | | | | | | | | | | reloads the current page via the gcf: protocol to load it in chrome. The page when loaded in Chrome validates whether the cookies were set. This does not work correctly on IE8 in Vista and windows 7 as the cookie stores are partitioned. Fix is redirect the page to a target page which validates the cookies. Review URL: http://codereview.chromium.org/3053018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53891 0039d316-1c4b-4281-b951-d872f2087c98
* Add undeclared virtual destructors part 2ziadh@chromium.org2010-07-272-5/+11
| | | | | | | | | | | | | Preventative maintainance for abstract classes that do not declare virtual destructors. Base classes that do not declare their destructors as virtual could potentially lead to memory leaks. r=jar BUG=47469 Review URL: http://codereview.chromium.org/3032024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53831 0039d316-1c4b-4281-b951-d872f2087c98
* Our InPlaceMenu implementation is only partially being used.tommi@chromium.org2010-07-271-1/+5
| | | | | | | | | | | | | | | | | We had a leftover call to InPlaceMenuDestroy without creating a menu in the first place. This caused us to delete IE's menu and fail the first check inside ieframe!CDocObjectHost::OnInitMenuPopup. It took a while to figure this out and even longer to figure out why our menu was NULL in this case and not mshtml's. I don't think that there are any bad side effects with this change but I ask the reviewer to check. The visible change is that the Print menu item will become enabled and visible whereas Page Setup will be disabled and Print Preview will (correctly atm) not be visible for GCF documents. BUG=24034, 47074 TEST=See description above and bug report. Review URL: http://codereview.chromium.org/3034033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53786 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: Use FRIEND_TEST_ALL_PREFIXES some more.phajdan.jr@chromium.org2010-07-261-2/+2
| | | | | | | | | TEST=compile BUG=44549 Review URL: http://codereview.chromium.org/3032025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53706 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeFrame host browser commands need to account for the command group guid ↵ananta@chromium.org2010-07-262-22/+41
| | | | | | | | | | | | | | and the command id in all cases. We were detecting MSHTML command ids based on the command id only while ignoring the group which was wrong. Part of the fix for http://code.google.com/p/chromium/issues/detail?id=24034 Bug=24034 Review URL: http://codereview.chromium.org/2873070 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53699 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: test server cleanup:phajdan.jr@chromium.org2010-07-231-1/+1
| | | | | | | | | | | | | - simplify the public interface - remove unneeded methods - make it easier to understand TEST=none BUG=49680 Review URL: http://codereview.chromium.org/2881028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53509 0039d316-1c4b-4281-b951-d872f2087c98
* Continual header pruningerg@google.com2010-07-221-0/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3029019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53391 0039d316-1c4b-4281-b951-d872f2087c98
* Add wtl to the list of include directories for ChromeFrame. This is to fix a ↵ananta@chromium.org2010-07-221-0/+1
| | | | | | | | | | build error I was seeing on my machine. TBR=amit Review URL: http://codereview.chromium.org/3048010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53290 0039d316-1c4b-4281-b951-d872f2087c98
* Second attempt at trying to land buggy bho avoidance: ↵tommi@chromium.org2010-07-218-69/+308
| | | | | | | | | | | | | | | | | | http://codereview.chromium.org/3031009 A different approach to avoid crashes in buggy 3rd party BHOs.This time we're more preceise and only target the buggy components.Behaviour for components that handle browser events correctly, is unchanged even in the presence of buggy DLLs.The core class here is the BuggyBhoTls class and here's the comment for that class: // Construct an instance of this class on the stack when firing web browser // events that can be sent to buggy BHOs. This class will intercept those // BHOs (see list in cc file) and ignore notifications to those components // for as long as the BuggyBhoTls instance on the stack lives. TEST=A better fix for bug 44463 but also fixes bug 49373 and a number of crashes that haven't been associated with bug reports yet. BUG=44463, 49373 Review URL: http://codereview.chromium.org/3053008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53236 0039d316-1c4b-4281-b951-d872f2087c98
* Fix incorrect focus cycling issues in ChromeFrame full tab mode. This ↵ananta@chromium.org2010-07-212-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | happens whenever a tab rendering a chrome frame page receives focus by switching to it. Whenever we receive focus in ChromeFrame we send over an IPC to set the initial focus to Chrome. In this IPc we invoke the FocusThroughTabTraversal function on the TabContents which basically cycles through the focus on the page which is not correct for full tab mode. Fix is to handle the WM_SETFOCUS message in the active document and invoke the GiveFocusToChrome with false indicating that we don't want to invoke the FocusThroughTabTraversal function which cycles through the view. It is sufficient to set focus to the tab. We also handle the WM_SHOWWINDOW message in the active document and set focus to the document if it is visible. This ensures that the page gets focused correctly. Fixes bug http://code.google.com/p/chromium/issues/detail?id=48459 Fixes bug http://code.google.com/p/chromium/issues/detail?id=25890 Bug=48459, 25890 Review URL: http://codereview.chromium.org/2825061 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53206 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 53194 - A different approach to avoid crashes in buggy 3rd party ↵sanjeevr@chromium.org2010-07-218-306/+68
| | | | | | | | | | | | | | | | | | BHOs.This time we're more preceise and only target the buggy components.Behaviour for components that handle browser events correctly, is unchanged even in the presence of buggy DLLs.The core class here is the BuggyBhoTls class and here's the comment for that class: // Construct an instance of this class on the stack when firing web browser // events that can be sent to buggy BHOs. This class will intercept those // BHOs (see list in cc file) and ignore notifications to those components // for as long as the BuggyBhoTls instance on the stack lives. TEST=A better fix for bug 44463 but also fixes bug 49373 and a number of crashes that haven't been associated with bug reports yet. BUG=44463, 49373 Review URL: http://codereview.chromium.org/3031009 TBR=tommi@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53197 0039d316-1c4b-4281-b951-d872f2087c98
* A different approach to avoid crashes in buggy 3rd party BHOs.This time ↵tommi@chromium.org2010-07-218-68/+306
| | | | | | | | | | | | | | | | we're more preceise and only target the buggy components.Behaviour for components that handle browser events correctly, is unchanged even in the presence of buggy DLLs.The core class here is the BuggyBhoTls class and here's the comment for that class: // Construct an instance of this class on the stack when firing web browser // events that can be sent to buggy BHOs. This class will intercept those // BHOs (see list in cc file) and ignore notifications to those components // for as long as the BuggyBhoTls instance on the stack lives. TEST=A better fix for bug 44463 but also fixes bug 49373 and a number of crashes that haven't been associated with bug reports yet. BUG=44463, 49373 Review URL: http://codereview.chromium.org/3031009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53194 0039d316-1c4b-4281-b951-d872f2087c98
* Fine grained registration for various Chrome Frame objects.stoyan@chromium.org2010-07-211-28/+78
| | | | | | | BUG=48987 Review URL: http://codereview.chromium.org/3010018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53191 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup: Break another common->app dependency.thestig@chromium.org2010-07-201-3/+2
| | | | | | | | BUG=46666 TEST=none Review URL: http://codereview.chromium.org/3007008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53113 0039d316-1c4b-4281-b951-d872f2087c98
* Change the expectations of the BeginningTransaction unit test to expect the ↵ananta@chromium.org2010-07-202-13/+13
| | | | | | | | | | | | headers to be terminated by a single \r\n combination as wininet adds the terminating \r\n at the end while sending the headers out. TBR=stoyan Review URL: http://codereview.chromium.org/2888019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53101 0039d316-1c4b-4281-b951-d872f2087c98
* First step for cleaning registration code for ChromeFrame.stoyan@chromium.org2010-07-204-61/+24
| | | | | | | | Create separate RGS file for registering CLSID as a BHO. Remove the code that manually did the BHO registration. BUG=48987 Review URL: http://codereview.chromium.org/3029007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53040 0039d316-1c4b-4281-b951-d872f2087c98
* Add one more DLL to the DocumentComplete blacklist.tommi@chromium.org2010-07-191-0/+1
| | | | | | | | | TEST=see bug BUG=44463 Review URL: http://codereview.chromium.org/2824056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52908 0039d316-1c4b-4281-b951-d872f2087c98
* Simple initial test for AppendCFUserAgentString.stoyan@chromium.org2010-07-191-0/+31
| | | | | | Review URL: http://codereview.chromium.org/2825053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52907 0039d316-1c4b-4281-b951-d872f2087c98
* Compress and checksum pending logs that are going to be persisted. Persisted ↵ziadh@chromium.org2010-07-191-6/+5
| | | | | | | | | | | | | | | | logs now have the following format: [list_size, log1, log2, ..., log_n, checksum]. where each log is bzipped before being written. Upon reading the logs from disk, we verify the data and register whether we faced corruptions or not. r=jar Review URL: http://codereview.chromium.org/2936005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52885 0039d316-1c4b-4281-b951-d872f2087c98
* Fix the failing ChromeFrame BeginningTransaction unit test. The user agent ↵ananta@chromium.org2010-07-181-1/+1
| | | | | | | | | | | | value in the http headers needs to be terminated with a trailing \r\n\r\n combination instead of a single \r\n value. TBR=stoyan Review URL: http://codereview.chromium.org/3019010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52871 0039d316-1c4b-4281-b951-d872f2087c98
* BUG=47879stoyan@chromium.org2010-07-177-80/+247
| | | | | | Review URL: http://codereview.chromium.org/2824057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52806 0039d316-1c4b-4281-b951-d872f2087c98
* Add a command line flag to change the default number of parallel DNS ↵eroman@chromium.org2010-07-171-1/+2
| | | | | | | | | | | | | requests issued by chrome. --host-resolver-parallelism=XXX This is a useful debugging tool, since for some users too many parallel DNS requests results in spurious DNS failures from their resolver. BUG=44489 Review URL: http://codereview.chromium.org/3019007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52802 0039d316-1c4b-4281-b951-d872f2087c98
* Remove lock.h from resource_bundle.h and histogram.h.erg@chromium.org2010-07-162-0/+2
| | | | | | | | | | | Use a scoped_ptr<Lock> instead of Lock in resource bundle. BUG=none TEST=none Review URL: http://codereview.chromium.org/3038005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52730 0039d316-1c4b-4281-b951-d872f2087c98
* Not firing DocumentComplete in the presence of buggy BHOs.tommi@chromium.org2010-07-165-21/+128
| | | | | | | | | TEST=should be no functional change except if there are buggy BHOs that we know of loaded in IE. BUG=44463 Review URL: http://codereview.chromium.org/2906011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52668 0039d316-1c4b-4281-b951-d872f2087c98
* Small refactoring in preparation of the assassination of HttpNegotiate patch ↵stoyan@chromium.org2010-07-152-9/+7
| | | | | | | | (and possible murder of NavigationManager). Review URL: http://codereview.chromium.org/2813053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52547 0039d316-1c4b-4281-b951-d872f2087c98
* Fix IE crash while attempting to send the AutomationMsg_RunUnloadHandlers ↵ananta@chromium.org2010-07-151-3/+9
| | | | | | | | | | | IPC on a NULL automation server. Bug=49132 TBR=amit Review URL: http://codereview.chromium.org/2868052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52546 0039d316-1c4b-4281-b951-d872f2087c98
* ChromeFrame tabs would hang at times while closing. This would randomly ↵ananta@chromium.org2010-07-156-2/+76
| | | | | | | | | | | | | | | | | | | | | | | | occur if the page had an unload handler. We execute unload handlers in the WM_DESTROY message in the external tab and spin a nested loop waiting for the unload handlers to finish. This causes a deadlock at times if a windows message is dispatched to IE which is blocked in DestroyWindow. The fix is to remove the nested loop mess from the external tab and instead send over a special automation message to Chrome in which context we execute the unload handlers. The message contains the notification window and the actual window message to be posted back when the unload handlers finish executing. The active document/activex spin a GetMessage loop waiting for this message to arrive. To ensure that we don't wait indefinitely we have a 1 second timer and exit the loop if this timer is received. Fixes bug http://code.google.com/p/chromium/issues/detail?id=49132 Bug=49132 Test=Covered by existing unload event test. Review URL: http://codereview.chromium.org/3014001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52523 0039d316-1c4b-4281-b951-d872f2087c98
* Attempt four at landing the "histogram.h removed from message_loop.h" patch.erg@chromium.org2010-07-151-0/+1
| | | | | | | | | | | | | | Previously committed as r52349 and r52336. Related commits: r52367, r52364 and r52343. Rerunning trybots due to previous trybot breakage. TEST=none BUG=none Review URL: http://codereview.chromium.org/2965015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52496 0039d316-1c4b-4281-b951-d872f2087c98
* Do not wrap non-HTTP(s) requests.stoyan@chromium.org2010-07-151-1/+7
| | | | | | Review URL: http://codereview.chromium.org/2893015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52494 0039d316-1c4b-4281-b951-d872f2087c98
* Boot prefetch optimization for Chrome Frame (experimental)amit@chromium.org2010-07-151-45/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If chrome is warmed up during a single reboot, it gets paged in for subsequent reboots and the cold startup times essentially look like warm times thereafter! The 'warm up' is done by setting up a 'RunOnce' key during DLLRegisterServer of npchrome_frame.dll. This works because chrome prefetch becomes part of boot prefetch file ntosboot-b00dfaad.pf and paged in on subsequent reboots. As long as the sytem does not undergo significant memory pressure those pages remain in memory and we get pretty amazing startup times, down to about 300 ms from 1200 ms The downside is: - Whether chrome frame is used or not, there's a read penalty (1200-300 =) 900 ms for every boot. - Heavy system memory usage after reboot will nullify the benefits but the user will still pay the cost. - Overall the time saved will always be less than total time spent paging in chrome - We are not sure when the chrome 'warm up' will age out from the boot prefetch file. The idea here is to try this out on chrome frame dev channel and see if it produces a significant drift in startup numbers. Review URL: http://codereview.chromium.org/2936010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52489 0039d316-1c4b-4281-b951-d872f2087c98