Google Chrome - Extension issues - google-chrome

I'm currently developing a chrome Extension and i wanted to know, how it's possible to put more then one button on a Extension. Because when i add for instance 2 reference on the manifest.json, it only display the last one.
I also wanted to now how it's possible to add an input text instead if a button.
Thanks in advance.

No it is not possible, you can only add one browser action per extension. If your extension requires two browser actions, you should deploy two extension, where one of the extensions depends on the origin.
You can use chrome.extension.onRequestExternal.addListener to listen for external requests coming from your extension, and send messages between them with: chrome.extension.sendRequest
Hope that helped!

Related

How can I edit the body class of this website?

I would like to change the body class="" of a website, in this case it's WhatsApp Web, if you go to inspect element and change body class="web" to body class="web dark" the page becomes dark. How can I save this so I don't have to do this every time I load the page? Thanks!
You'll likely need to use a Chrome Extension for this. Here is a helpful link to a similar use-case where the person was attempting to create their own extension, if you're interested in creating your own solution. Here's a reference from the Google Chrome team on creating your own Chrome extension.
If you're looking for something a little more out-of-the-box, check out this Chrome Plugin, Page Manipulator. There are several other plugins such as TaperMonkey.
The idea is to have some extension in Chrome that will automatically apply the changes you attempting to do directly to the DOM of the page.
what you are trying to do is not possible because each time you reload the page the code will get updated(By updated i mean the orignal code).
But there is a way you can do the same by creating your own add-ons in mozilla or extensions for chrome what this extension will do is whenever they will see a "tag" or "class" matching the constraint will get replace by the value you want.
like in your case from "web" to "web dark".

Customize the (about:home) page in google chrome

I want to know if its possible to customize the way your default google chrome look locally on your computer. I am talking from a developer's point of view and not user(ie not to change the home page by going into chrome setting).
I can change the UI by using the chrome f12 option locally. As chrome is installed on my machine then there should be an index.html or something alike file present to render chrome as it does. I want to access that file if possible.
Thanks
you might be able to find some various files, so i would suggest looking through the following folder. C:\Users\MYUSERNAMEHERE\AppData\Local\Google\Chrome\User Data\Default
or C:\Users\MYUSERNAMEHERE\AppData\Local\Google\Chrome\User Data\ as these are the ones that contain your chrome installation, there maybe another folder but this is always the one i have used when developing extensions..
Otherwise i think you will be stuck with the extension part, i myself would have a look at this if you really need.. But that could be a week before i get the chance.
If your looking to deploy a custom google chrome, so they dont need to install extensions. Try the following google term: deploy custom chrome
https://developer.chrome.com/extensions/external_extensions
But editing it directly with just finding a single html file / style i dont think is as easy as it would need to load certain objects into memory and i think they are a little more complex than a plain text file.
EDIT - Looks Like Its Extension Only Now
Had 5 minutes and did a quick google, there was a point where you could use custom style sheets for v32 and below but that was removed https://src.chromium.org/viewvc/chrome?revision=234007&view=revision
So you either need to work with firefox or build an extension.. I could not see any files/folders that would do what you need. So yea i'd start looking at extensions.

Google Chrome - Extension vs App

I want to modify chrome start page, change background and maybe logo.
I want to include jQuery in users local storage and load it while users page loads ( search page )
I never done anything with chrome so I want some way where to start. Do I go reading with apps or extensions?
As a rule of thumb: Choose an app if you want to develop an (independent) application that can stand on its own. If you want to interact with the browser (e.g. modify a web page), build an extension.
In your case, you definitely need an extension.
Change start page - use chrome_url_overrides in the manifest file to override newtab.
Locally store jQuery: Although it's possible to store jQuery in local storage, you're probably fine with packaging jQuery with your extension.
To add it to your user's "search page", you have to use a content script. By default, content scripts run in an execution environment that is different from the page (the document's DOM is shared though). Usually, this behavior is desired. If you really want to expose the jQuery library to the scripts in the page, take a look at this answer.
If you really want to load some script from a remote location and use it as a content script, read Chrome extension adding external javascript to current page's html.
I'm not sure what you mean by "change background and maybe logo". If you're referring to the browser's appearance, the only option to do that is by creating a theme. This must be a separate extension.

Is it possible to hide extension resources in the Chrome web inspector network tab?

When I'm viewing the downloaded resources for a page in the Chrome web inspector, I also see the HTML/JS/CSS requested by certain extensions.
In the example above, indicator.html, indicator.js and indicator.css are actually part of the Readability Chrome extension, not part of my app.
This isn't too big a deal in this particular situation, but on a more complex page and with several extensions installed, it can get quite crowded in there!
I was wondering if there was a way to filter out any extension-related resources from this list (i.e. any requests using the chrome-extension:// protocol).
Does anyone know how I could achieve this?
Not quite the solution I was after (I'd have preferred a global setting), but there is now a way to filter out requests from extensions, as mentioned by a commenter on the issue I originally opened.
In the network tab filter box, enter the string -scheme:chrome-extension (as shown below):
This is case-sensitive, so make sure it's lowercase. Doing this will hide all resources which were requested by extensions.
Just enter "-f" in Network field
Was having the same question when my extension adds a lot of noise in the network tab.
Some extensions also fire a lot of data like data:text/image etc, you can append more filter with - like:
-scheme:chrome-extension -scheme:data
Another way to get the http/https requests is to just use scheme:https without - because the resources that extensions request are usually from their local bundle:
scheme:https
An Incognito Window, can be configured to include or exclude extensions from the extensions page of Chrome settings.
One alternative is to go to "Network Request blocking" tab and add "chrome-extension:" to the list, thus extension requests will be blocked and coloured red so it's easy to visually filter them out.
you can simply enable this option and requests from extension will be group.
Update: It can only group requests that create by the extension that draw iframe, such as cVim

Is there anyway to install an extention without visiting to google app store?

Is there anyway to install an extention without visiting to google app store?
For example I want visitors, can install my extention just one clicking a facebook ad or a banner?
Is it possible?
I read some article that mentioning about to verified site ownership to do this. But I want to make advertisement on facebook so I wouldn't be owner of the web page...
Does anyone have information on this subject?
Thanks.
Right click on the Chrome shortcut
In the Target field, add --enable-easy-off-store-extension-install after what's already there, let a space before
Save and start Chrome
You're probably looking for inline installation, performed via chrome.webstore.install.
In your webpage:
include <link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/itemID">, where the URL is the address of your extension
then. call chrome.webstore.install().
Unfortunately, you can't do either of those things on a basic Facebook page, but you could do it on a web page you can fully control.