Chrome is so good, it shouldn’t be annoying!
Chrome is great and I love it. But there’s a few things that I, and lots of other people, don’t like. I’ll cover some of them here. Is it legal? Yes, Chrome is built from the open source Chromium, and you can mod it if you want to. You can even get the sources and compile it from scratch if you want to, and you can distribute your modded version. But we won’t be compiling a custom Chrome replacement here, just tweaking things a bit.
Problem 1: Can't view Word documentsDownload and install Ultimate Google Docs Viewer.
Problem 2: New Tab Doesn’t Display Your Homepage
I have a local custom homepage where I put links to all the stuff I use. I set Chrome to use it as my homepage upon start-up. But alas, when opening a New Tab, Chrome displays its built-in New Tab page, with all those stupid “most visited” thumbnails and other stuff I never use. I want it to open my homepage every time I open a new tab, not just upon start-up. People have been complaining about this since 2008 and apparently the Chrome crew simply refuses to make it an option.
This is really pretty easy to fix. Chrome’s new page code is loaded from a resource in chrome.dll. To hack it, do this:
- Download and install Resource Hacker (free!).
chrome.dllin the program files folder where Chrome is usally installed:
c:\Documents and Settings\"username"\Local Settings\Application Data\Google\Chrome\Application\latest.version.number
c:\Program Files (x86)\Google\Chrome\Application\latest.version.number
- Copy it to
chrome.orig.dllas a backup.
- Run Resource Hacker and open
- Find (Ctrl-F) the text
It's important that this be the first script loaded(or very similar; they might change it in later versions).
- Put this line right below the “It's important that…” line (make sure it’s above the first <script> tag):
<script>window.location = 'http://localhost/';</script>(replace localhost with your desired homepage URL). It forces an immediate redirect and ignores the remainder of the new tab resource.
- Click Compile then menu File, Save
chrome.dll. Start Chrome and test it by opening a new tab.
- You will have to do this again each time Google updates chrome and replaces chrome.dll, so save these instructions in a handy text file.
- Also in Chrome, set your homepage to New Tab (Wrench, Settings, On Startup, Open the New Tab page). Otherwise, after your mod, it will simply load it twice upon start-up.
- The only useful thing (IMO) on the New Tab page is Recently Closed Tabs. To restore that handy functionality, install an extension called Recently Closed Tabs.
Problem 3: You Can’t Make Chrome Put Its Data or Cache Elsewhere (Oh yes you can!)
Change UserDataDir by using the Registry. This only works if only one person and/or profile is using Chrome or multiple profiles are using the same UserDataDir.
- Download, modify and install my regfile of Chrome tweaks. Modify it to fit your needs before installing it.
- Google Update will delete your changes at the next update! To stop this behavior:
- Right-click HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google and choose Permissions. Notice that SYSTEM and Administrators have Full Control, and they are all grayed out, because they are Inherited.
- Click Advanced. Uncheck “Include Inheritable Permissions…” and click Remove on the warning box that pops up. Now all permissions are removed, so you’ll have to explicitly re-create them.
- Click Add, Advanced, Find Now, and scroll down and click SYSTEM. Ok, Ok.
- Then, in the Permissions box that pops up, check to allow only “Query Value” and “Read Control”. Ok. Apply.
- Now repeat above but add Administrators, and Check “Full Control” and then uncheck “Delete”. Ok, Apply, Ok, Ok. Now even you can’t delete the \Google\Chrome keys, unless you give Administrators permission in the Google key! Note that only the user listed in the Owner tab can change permissions on folders, files, and registry keys.
wmic useraccount get name,sidat a command prompt. The real human users’ SIDs will likely end in 1001, 1002, etc., and the other SIDs are for SYSTEM and such.
After changing your UserDataDir Chrome will come up like a new install. To get all your settings (bookmarks, history, etc.) into it, close Chrome and move all the stuff in "c:\Documents and Settings\???USERNAME???\Local Settings\Application Data\Google\Chrome\User Data\Default\Cache" IN XP or "c:\Users\???USERNAME???\AppData\Local\Google\Chrome\User Data\Default\Cache" (in Vista, WIN7 or WIN8) to the new location, overwriting what Chrome put therein. Then fire up Chrome and verify all your settings, bookmarks, extensions, etc., are working.
- This has the disadvantages of (a) if you pull your data drive, poof! Chrome won’t work, and possibly (b) it’ll likely not work for multiple users with different profiles, since you specified in the registry that all instances of Chrome, by Windows Policy, will have Chrome User Data hard-wired to a specific drive and folder.
- As above, if you have multiple users, you’ll need to put the keys and value you added in HKEY_CURRENT_USER also in the HKEY_USERS trees for the other users’ SIDs.
2. Use Command Line Switches
You can use Chrome command line switches for anything listed that’s not in Policies\Google\Chrome in the registry (which override command line switches).
- Right-click the icon you use to start Chrome and select Properties.
- This method has the disadvantage of only working when you start it with that icon. Instances started by a “default browser” operation (like, clicking a link in an email) will not get the switch, unless several instances are edited in the registry to include the switch. So you’re better off just using #1 above, and making the change global.
- Re: http://www.chromium.org/user-experience/user-data-directory
Add the --user-data-dir flag to your Chrome shortcut: "C:\Documents and Settings\???USERNAME???\Local Settings\Application Data\Google\Chrome\Application\chrome.exe --user-data-dir="G:\!!_SAVE\_CHROME User Data" IN XP OR "C:\Users\???USERNAME???\AppData\Local\Google\Chrome\Application\chrome.exe" --user-data-dir="G:\!!_SAVE\_CHROME User Data" (in Vista, WIN7 or WIN8)
3. Relocate ALL of Chrome to Another Drive
This method is somewhat complex, but has the advantage of being portable and completely self-contained, id est, you can pull your external drive and take it with you, settings and all, and use it on another computer without leaving any traces on the host system.
- Note: in each case below, replace
H:with your actual hard drive letter.
- Download and install GoogleChromePortable to the hard drive, from PortableApps.com. Don’t run it yet.
- Look in the
help.htmland read it. Migrate your existing profile, as it says.
- Open it in an editor and look for lines
CacheInTemp=trueand change them both to
false. Save and exit.
- Now run GoogleChromePortable.exe (double-click it) and look in your
C:\Users\your-username\AppData\Local\Temp\and verify that no GoogleChromePortable folder exists therein. Also, make sure your profile and settings stuff in GoogleChromePortable are all as expected (homepage, bookmarks, extensions, etc).
- Now you can completely uninstall Chrome from the SSD, using Control Panel. Your default browser will revert to Internet Explorer, but we’ll fix that later.
- To make a handy icon, go to \PortableApps\GoogleChromePortable\, right-click GoogleChromePortable.exe, Send to… Desktop (create shortcut), then you can use it there or drag it into the menu system or pin it to the taskbar, as desired.
- To set it as your default browser is a little more complicated. If you make GoogleChromePortable your default browser, Chrome will use the wrong path in several places in the registry, and it simply won’t work. In that case, you need to edit the registry. Be careful, and make a restore point first, if you are new to registry editing.
- Run GoogleChromePortable and if it asks to make it your default browser, do so, else click the wrench, Settings, and make it default there.
- It will write registry entries, but they will be wrong. The entries need to point to GoogleChromePortable.exe, not \App\Chrome-bin\chrome.exe.
- Run regedit and Find (in Data)
H:\PortableApps\GoogleChromePortable\App\Chrome-bin\chrome.exeand change it to
H:\PortableApps\GoogleChromePortable\GoogleChromePortable.exein about 11 places.
- Most of those keys will have
-- "%1"after the exe, don’t remove it.
- The ones to change will look like:
"H:\PortableApps\GoogleChromePortable\App\Chrome-bin\chrome.exe" -- "%1"
- Change them to look like:
"H:\PortableApps\GoogleChromePortable\GoogleChromePortable.exe" -- "%1"
- You can change the first one found, select and copy the changed text, then just paste it into the remaining ones.
- Keep hitting F3 to find the next, ’til all are found and changed.
- Do NOT replace the ones that say
\PortableApps\GoogleChromePortable\App\Chrome-bin\chrome.exe,0— this is a path to an icon, which is in chrome.exe, not the launcher GoogleChromePortable.exe, and you don’t need to change the icon location that Windows uses for Chrome.
- Lastly, open an email or something with a link in it, click it, and see if it runs GoogleChromePortable.exe, not chrome.exe.
- Most of those keys will have
Note that the automatic Google Updater does not work with GoogleChromePortable, so check with PortableApps.com every few months to see if there is a later version there.
Fix Google Update
Google Updater is another example of Google’s heavy-handedness. It wants to check for updates ever hour! Fixing this is easy:
- Go to Start, All Programs, Accessories, System Tools and run Task Scheduler.
- In the left pane, click Task Scheduler Library.
- In the right pane you’ll see two GoogleUpdateTask entries.
- Double-click one and click the Triggers tab.
- Double-click the trigger’s Description to open the Edit Trigger dialog box.
- Set it to Weekly and pick a day.
- If Repeat Task Every is checked, uncheck it.
- To completely disable all Google Updates, uncheck Enabled at the bottom of the Edit Trigger dialog box.
- Now Ok all that and then do the other one.
- Now Google will check for updates once per week, not once per hour!
- When it does do an update, you’ll have to fix this again.
- If you turn updating completely off, you can make it check for updates manually by clicking the Wrench, then About Google Chrome.
For a list of command line switches, see Chrome Switches.
Interesting switches to try:
- --disk-cache-dir Use a specific disk cache location, rather than one derived from the UserDatadir.
- --disk-cache-size Forces the maximum disk space to be used by the disk cache, in bytes.
- --media-cache-size Forces the maximum disk space to be used by the media cache, in bytes.
- --disable-application-cache Disable the Application Cache.
- --parent-profile Specifies the path to the user data folder for the parent profile (whatever that is).