How to debug Google Chrome (not Chromium) on OS X with source? - macos

The "Warn Before Quitting" feature stopped working for me. When I click Cmd-Q Chrome closes immediately instead of showing me the "Hold ⌘Q to close" message.
I want to debug the code responsible for that, but I can't seem to find a way. On Windows I can attach to Chrome, get the PDBs from Google's symbol server, and get the appropriate sources using SrcSrv.
Is there anything similar on OS X?
(Firefox apparently has a script to download symbols for Linux/OS X, though I never tried using it.)
It doesn't happen on another user on my machine or on Chromium. I tried copying my profile to ~/Library/Application Support/Google/Chrome of another user and to ~/Library/Application Support/Chromium (for a Chromium build I made). In both cases the bug did not present itself (though other bad things have happened), so using Chromium doesn't seem like a solution.
(Although I did build Chromium's HEAD rather than the tag corresponding to the version of Google Chrome I'm running. Maybe if I do that I would be able to reproduce the problem in Chromium. Nonetheless the question remains.)
Is it possible to perform source debugging of Google Chrome on OS X? If so, how?
Note: I'm not interested in attempts to solve the "Warn Before Quitting" bug, suggestions to report it to Google, etc. That's not the point. I want to be able to debug Chrome myself.

Related

Automator takes screenshot of background instead of window

System specs: mac OS Monterrey V12.5, Apple M1 chip 2020
I am making an application which will take a screenshot of a video, and take the timestamp of the current point in this video, after which both the timestamp and screenshot will be send to a numbers file (mac OS excel like program).
I could not find an application to do this and I tried to get it working using python as shown here but was unable to. Now because I am on Mac I have decided to use Automator instead. I am currently on the screenshot part and Automator has a build in screenshot functionality.
Unfortunately, this screenshot does not detect browser or application windows, it will only take a screenshot of my background.
I have no idea why this is but I suspect it might have to do with permissions related to the M1 chip.
I tried different monitors and simplyfying the automation to just taking a screenshot, but so far nothing has helped, I could not find others online who had a similar problem.
If there is any information missing from this post I will be happy to provide it.
Edit: It seems to be some kind of permission issue, automator CAN take screenshots within Safari, now I just need to find a way to do so in firefox.
I have solved the issue, it turns out that the M1 chip has a special permission for screen recording, adding my Automator application to this permission list will allow it to take screenshots of all windows.

Which tab is "Google Chrome Helper" running on?

In MacOS in the Activity Monitor Google Chrome extensions show as "Google Chrome Helper". These often take up much of the CPU time. Is it possible to determine which tab a given Google Chrome Helper process is running on?
Other people have suggested setting the plug-ins run mode to "Click to play". It seems that this doesn't cover all instances of the helper, since I already have it set to click to play. As you can see from the image below, there are MANY instances of this helper running. Anyway this doesn't get to the heart of the question- which tab is the process running on.
Chrome's built-in Task Manager (accessible from Menu > More tools > Task manager) will show you a per-tab resource utilization.
If case the culprit is extension code or a plug-in running in a normal tab, you won't be able to identify it with only that; extension entries in the Task Manager are only for background pages of extensions.
You may be able to investigate further with Dev Tools profiler.
I have quite a good experience with this "Google Chrome Helper" and how to debug the notorious problems on Mac.
1. CHROME EXTENSION
In this case go to the 3 dots you find on the right upper side of your browser and then More Tools > Extensions, here you can have an overview of all your extensions.
Deactivate all of them and relaunch Chrome.
If the issue is resolved we can now point out that the issue was related to one of your Extension. But what extension? You can now reactivate one by one while you have your Activity Monitor open and see when the "Google Chrome Helper" is trigged.
2. CHROME EXTENSION OR CHROME SYNC
Sometimes you can find the Chrome extension that is draining your CPU but you have to work and keep that Chrome Extension available. Or maybe that Extension is managed by your Company and you cannot disable it.
In this case you have to click on your Chrome account on your browser and sigh out from all of your Accounts.
Now close your browser, reopen it and "Google Chrome Helper" shouldn't bother you at all. Well, this is normal, because you are not signed in. Now Sign in into Gmail but don't never ever click on the "Turn on sync..." button
Now you can also install the Chrome Extension that was giving you pain and you shouldn't experience any problem. Just don't touch that "Turn on sync..." button.
3. I STILL HAVE PROBLEMS
Well, in this case you are facing something I haven't faced myself. The only suggest you I can give you is to debug the issue by yourself. When the CPU is spiking high open the Activity Monitor and target the "Google Chrome Helper", look at that line and take the PID number (in the picture that you can see in the question is 29048).
Now open a terminal and run:
killall -9 29048
This way you have now killed the process itself. Try to spot what has changed in your Chrome: maybe an Extension has been deactivated, maybe a tab was closed, maybe a webpage has become unresponsive. Dig and you will find the solution.

How do you use pentadactyl with firebug?

I recently installed the latest Pentadactyl nightly (as of 2-Nov-12) on FF 16.0.2, on OS X Mountain Lion. I am slowly coming to grips with the extensive options, however I cannot figure out how to use FireBug 1.10.6, which I had installed previously and was using.
I searched around a bit and found some bug reports which mentioned that installing AceBug would magically "fix" any issues, but I tried AceBug 1.10.0 and still no dice - how do I see and interact with the FireBug console, etc?
I found a Pentadactyl plugin called firebug-pentadactyl on Github that claims to add FireBug support to Pentadactyl but when I type:
:firebug console
...nothing happens. Who here is successfully using Pentadactyl with FireBug and can tell me what I'm doing wrong?
Thanks
Whoops, answered in the comments, but will repeat here:
This problem was due to the fact that the F12 "Open Firebug panel" hotkey is by default mapped to "Volume Up". If you hold Fn and press F12, the Dashboard is shown. I fixed this by going to System Preferences > Mission Control, and remapping the Dashboard shortcut to a different function key. Probably wouldn't be encountered by a Linux or Windows user.

Open Chrome from terminal with developer console open

I can run Google Chrome from the command line using $ google-chrome, but what flag can I pass to open it with developer console already open, preferably open to the console tab?
I checked the man page for google-chrome but it states that
Google Chrome has hundreds of undocumented command-line flags that are added and removed at the whim of the developers.
I'm hoping one of those undocumented flags does what I want.
The flag you're looking for is --auto-open-devtools-for-tabs. Please note, that you should quit Chrome before this setting will take effect.
This has worked at least since Chrome 55.0.2883.87 m (the latest version as of initial post)
A Google employee maintains this list of automatically updated Chromium flags. There doesn't seem to be a flag for opening Chrome with developer console open.
Seems there is no such option. I added a feature request in Chrome product forum
https://productforums.google.com/forum/#!category-topic/chrome/give-feature-feedback-and-suggestions/mac/Stable/3HYIAl8_ndc
What exactly are you trying to achieve by that? If you are trying to run some kind of automated tests, you should try out PhantomJS.

Firefox 3.6 plugins fail on Mac?

I just upgraded my mac to Firefox 3.6, and now neither of my TIFF Viewing plugins work.
in 3.5, If I had Quicktime on, then I'd get the tiff, viewed through quicktime. If I had Quicktime disabled, but my own plugin, AcellViewTIFF enabled, then I would get ViewTIFF viewing the TIFF. Since I'm the author of ViewTIFF, That's how I had it most of the time.
After I upgraded to 3.6, if ViewTIFF is enabled, I just get a blank space. if ViewTIFF is disabled, no matter whether or not Quicktime is enabled, it goes straight to preview.
Has anyone seen this?
(This is programming related because I'm writing AccelViewTIFF, and if the framework for plugins changed, I need to fix it...)
Edit to add:
This is an NPAPI plugin, I've removed or commented out the main, so I don't think that this is a CFM plugin problem.
I looked at Mozilla's "basicplugin" (located in mozilla-1-9-1-f15a2686e9a6/modules/plugin/sdk/samples/basic/mac under the standard mozilla source) and it works. I compared all of my functions to the functions in BasicPlugin, and the only function that it has that I don't is the drawPlugin function, which appears to do the actual work. All equivalent functions have the same interface.
When I remove or disable AccelViewTIFF, Firefox downloads the image and gives it to preview. When I enabled it it does nothing. This tells me that Firefox IS seeing that I have a plugin, but it's not running it for some reason.
There are no errors either in Firefox's error console or in any of the console logs I can see...
any ideas?
For the record, the problem was that this is an OLD plugin that still uses Quickdraw routines. evidently, they didn't make it into 64b, and so they don't work in FF 3.6.
Lets hear it for progress.
Are you using Leopard or Snow Leopard?
TIFF files open fine with the QuickTime 7.6.3.0 plugin with Firefox 3.6.
Go to Firefox -> Preferences -> Applications. Search for "tif" and then you can choose how Firefox handles files with the image/tiff MIME type. Set it to the plugin of your choosing. QuickTime should work (is for me on Snow Leopard).

Resources