# Proyekto ng Browser Extension Bahagi 1: Lahat Tungkol sa Mga Browser  > Sketchnote ni [Wassim Chegham](https://dev.to/wassimchegham/ever-wondered-what-happens-when-you-type-in-a-url-in-an-address-bar-in-a-browser-3dob) ## Pre-Lecture Quiz [Pre-lecture quiz](https://ff-quizzes.netlify.app/web/quiz/23) ### Panimula Ang mga browser extension ay nagdadagdag ng karagdagang functionality sa isang browser. Ngunit bago ka magtayo ng isa, dapat kang matuto ng kaunti tungkol sa kung paano gumagana ang mga browser. ### Tungkol sa Browser Sa serye ng mga araling ito, matututo kang gumawa ng browser extension na gagana sa mga browser tulad ng Chrome, Firefox, at Edge. Sa bahaging ito, matutuklasan mo kung paano gumagana ang mga browser at bubuuin ang mga elemento ng browser extension. Pero ano nga ba ang browser? Ito ay isang software application na nagbibigay-daan sa isang end user na ma-access ang nilalaman mula sa isang server at maipakita ito sa mga web page. ✅ Kaunting kasaysayan: ang unang browser ay tinawag na 'WorldWideWeb' at nilikha ni Sir Timothy Berners-Lee noong 1990.  > Ilang maagang browser, mula kay [Karen McGrane](https://www.slideshare.net/KMcGrane/week-4-ixd-history-personal-computing) Kapag ang isang user ay kumonekta sa internet gamit ang isang URL (Uniform Resource Locator) address, karaniwang gamit ang Hypertext Transfer Protocol sa pamamagitan ng `http` o `https` address, ang browser ay nakikipag-ugnayan sa isang web server at kinukuha ang isang web page. Sa puntong ito, ang rendering engine ng browser ay ipinapakita ito sa device ng user, na maaaring isang mobile phone, desktop, o laptop. Ang mga browser ay may kakayahan ding mag-cache ng nilalaman upang hindi na ito kailangang kunin mula sa server sa bawat pagkakataon. Maaari rin nilang irekord ang kasaysayan ng aktibidad ng pag-browse ng user, mag-imbak ng 'cookies', na maliliit na piraso ng data na naglalaman ng impormasyon na ginagamit upang irekord ang aktibidad ng user, at marami pa. Isang mahalagang bagay na dapat tandaan tungkol sa mga browser ay hindi lahat ng mga ito ay pareho! Ang bawat browser ay may kani-kaniyang lakas at kahinaan, at ang isang propesyonal na web developer ay kailangang maunawaan kung paano gawing mahusay ang pagganap ng mga web page sa iba't ibang browser. Kasama na rito ang paghawak sa maliliit na screen tulad ng sa mobile phone, pati na rin ang user na offline. Isang kapaki-pakinabang na website na dapat mong i-bookmark sa kahit anong browser na gusto mong gamitin ay [caniuse.com](https://www.caniuse.com). Kapag gumagawa ka ng mga web page, napaka-kapaki-pakinabang na gamitin ang mga listahan ng mga suportadong teknolohiya ng caniuse upang mas maayos mong masuportahan ang iyong mga user. ✅ Paano mo malalaman kung aling mga browser ang pinakapopular sa base ng user ng iyong website? Tingnan ang iyong analytics - maaari kang mag-install ng iba't ibang analytics packages bilang bahagi ng iyong proseso ng web development, at sasabihin nila sa iyo kung aling mga browser ang pinakaginagamit ng iba't ibang popular na browser. ## Mga Browser Extension Bakit mo gugustuhing gumawa ng browser extension? Ito ay isang kapaki-pakinabang na bagay na maikakabit sa iyong browser kapag kailangan mo ng mabilisang access sa mga gawain na madalas mong inuulit. Halimbawa, kung madalas kang kailangang suriin ang mga kulay sa iba't ibang web page na iyong ginagamit, maaari kang mag-install ng color-picker browser extension. Kung nahihirapan kang tandaan ang mga password, maaari kang gumamit ng password-management browser extension. Masaya rin ang paggawa ng browser extensions. Karaniwan, pinamamahalaan nila ang limitadong bilang ng mga gawain na mahusay nilang ginagawa. ✅ Ano ang iyong mga paboritong browser extension? Anong mga gawain ang kanilang ginagawa? ### Pag-install ng Extensions Bago ka magsimulang magtayo, tingnan ang proseso ng paggawa at pag-deploy ng isang browser extension. Bagama't bahagyang magkakaiba ang bawat browser sa kung paano nila pinamamahalaan ang gawaing ito, ang proseso ay katulad sa Chrome at Firefox sa halimbawang ito sa Edge:  > Tandaan: Siguraduhing i-toggle ang developer mode at payagan ang extension mula sa ibang mga tindahan. Sa esensya, ang proseso ay: - buuin ang iyong extension gamit ang `npm run build` - mag-navigate sa browser sa extensions pane gamit ang "Settings and more" button (ang `...` icon) sa kanang itaas - kung ito ay bagong pag-install, piliin ang `load unpacked` upang mag-upload ng bagong extension mula sa build folder nito (sa ating kaso ito ay `/dist`) - o, i-click ang `reload` kung nire-reload mo ang extension na na-install na ✅ Ang mga tagubilin na ito ay para sa mga extension na ikaw mismo ang gumawa; upang mag-install ng mga extension na inilabas na sa browser extension store na nauugnay sa bawat browser, dapat kang mag-navigate sa mga [tindahan](https://microsoftedge.microsoft.com/addons/Microsoft-Edge-Extensions-Home) at i-install ang extension na iyong pinili. ### Magsimula Gagawa ka ng browser extension na nagpapakita ng carbon footprint ng iyong rehiyon, na ipinapakita ang paggamit ng enerhiya ng iyong rehiyon at ang pinagmulan ng enerhiya. Ang extension ay magkakaroon ng isang form na nangongolekta ng API key upang ma-access mo ang API ng CO2 Signal. **Kailangan mo:** - [isang API key](https://www.co2signal.com/); ilagay ang iyong email sa kahon sa pahinang ito at ipapadala ito sa iyo - ang [code para sa iyong rehiyon](http://api.electricitymap.org/v3/zones) na tumutugma sa [Electricity Map](https://www.electricitymap.org/map) (sa Boston, halimbawa, ginagamit ko ang 'US-NEISO'). - ang [starter code](../../../../5-browser-extension/start). I-download ang folder na `start`; kukumpletuhin mo ang code sa folder na ito. - [NPM](https://www.npmjs.com) - Ang NPM ay isang tool sa pamamahala ng package; i-install ito sa lokal at ang mga package na nakalista sa iyong `package.json` file ay mai-install para magamit sa iyong web asset. ✅ Matuto pa tungkol sa pamamahala ng package sa [napakahusay na Learn module na ito](https://docs.microsoft.com/learn/modules/create-nodejs-project-dependencies/?WT.mc_id=academic-77807-sagibbon) Maglaan ng sandali upang tingnan ang codebase: dist -|manifest.json (dito nakatakda ang mga default) -|index.html (dito ang front-end HTML markup) -|background.js (dito ang background JS) -|main.js (built JS) src -|index.js (dito ilalagay ang iyong JS code) ✅ Kapag mayroon ka nang API key at Region code, itago ang mga ito sa isang tala para sa hinaharap na paggamit. ### Gumawa ng HTML para sa Extension Ang extension na ito ay may dalawang view. Isa para mangolekta ng API key at region code:  At ang pangalawa para ipakita ang carbon usage ng rehiyon:  Magsimula tayo sa paggawa ng HTML para sa form at pag-style nito gamit ang CSS. Sa folder na `/dist`, gagawa ka ng form at isang result area. Sa file na `index.html`, punan ang delineated form area: ```HTML
``` Ito ang form kung saan ang iyong na-save na impormasyon ay ilalagay at mai-save sa local storage. Susunod, gumawa ng results area; sa ilalim ng huling form tag, magdagdag ng ilang divs: ```HTMLRegion:
Carbon Usage:
Fossil Fuel Percentage: