Sık sorulan sorular

Burada sorunuzun yanıtını bulamazsanız Chrome Web Mağazası Hakkında SSS sayfasını, Stack Overflow'daki [google-chrome-extension] etiketini, chromium-extensions grubunu veya store yardımını deneyin.

Genel

Google Chrome uzantıları nedir?

Google Chrome Uzantıları, Chrome tarayıcı içinde çalışan ve ek işlevler, üçüncü taraf web siteleri veya hizmetleriyle entegrasyon ve özelleştirilmiş göz atma deneyimleri sağlayan uygulamalardır.

Uzantı geliştirme için Chrome'u nasıl kurabilirim?

Chrome'un uzantıları destekleyen bir sürümünü kullandığınız sürece, kendi uzantınızı yazmaya başlamak için ihtiyacınız olan her şeye zaten sahipsinizdir. Geliştirici modunu açarak başlayabilirsiniz.

Chrome menüsü simgesini tıklayın ve Araçlar menüsünden Uzantılar'ı seçin. Sağ üst köşedeki "Geliştirici modu" onay kutusunun işaretli olduğundan emin olun. Artık uzantıları yeniden yükleyebilir, paketlenmiş bir uzantıymış gibi paketlenmemiş bir dosya dizini yükleyebilir ve daha fazlasını yapabilirsiniz. Eksiksiz eğitim için Başlarken bölümüne bakın.

Chrome için uzantı yazmak üzere hangi teknolojiler kullanılır?

Uzantılar, geliştiricilerin web sitesi oluşturmak için kullandığı standart web teknolojileri kullanılarak yazılır. İçerik biçimlendirme dili olarak HTML, stil oluşturmak için CSS, komut dosyası oluşturmak için de JavaScript kullanılır. Chrome, HTML5 ve CSS3'ü desteklediğinden geliştiriciler, uzantılarında tuval ve CSS animasyonları gibi en yeni açık web teknolojilerini kullanabilirler. Uzantıların, JSON kodlaması ve tarayıcıyla etkileşimde bulunma gibi işlevleri gerçekleştirmeye yardımcı olan çeşitli JavaScript API'lerine de erişimi vardır.

Tarayıcı her yüklendiğinde uzantılar web'den getirilir mi?

Uzantılar, yükleme sırasında Chrome tarayıcı tarafından indirilir ve daha sonra, performansı hızlandırmak için yerel diskten çıkarılır. Ancak, uzantının yeni bir sürümü çevrimiçi olarak aktarılırsa, uzantıyı yüklemiş olan tüm kullanıcılara arka planda otomatik olarak indirilir. Ayrıca uzantılar, bir web hizmetiyle etkileşim kurmak veya web'den yeni içerik çekmek için herhangi bir zamanda uzaktaki içerik için istekte bulunabilir.

Chrome'un hangi sürümünün hangi kanala dağıtıldığını nasıl belirlerim?

Farklı platformlarda şu anda hangi Chrome sürümünün kullanılabildiğini öğrenmek için omahaproxy.appspot.com adresini ziyaret edin. İlgili sitede aşağıdakine benzer bir biçimde veriler görürsünüz:

cf,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cf,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
linux,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
mac,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,canary,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
win,stable,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,dev,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####
cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####

Her satır, farklı bir platform ve kanal kombinasyonuyla ilgili bilgileri temsil eder. Listelenen platformlar cf (Google Chrome Frame), linux, mac, win ve cros (Google ChromeOS) şeklindedir. Listelenen kanallar: canary, dev, beta ve stable. Kanaldan sonraki dört bölümden oluşan iki sayı, Chrome'un söz konusu platform-kanal kombinasyonuna dağıtılan mevcut ve önceki sürümlerini temsil eder. Geri kalan bilgiler, sürümlerin ilk aktarıldığı tarihle ilgili meta veriler ve her derlemeyle ilişkili düzeltme numaralarıdır.

Özellikler

Uzantılar, alanlar arası Ajax isteğinde bulunabilir mi?

Evet. Uzantılar, alan adları arası istekte bulunabilir. Daha fazla bilgi için bu sayfaya bakın.

Uzantılar, üçüncü taraf web hizmetlerini kullanabilir mi?

Evet. Uzantılar, alanlar arası Ajax istekleri yapabilir. Böylece uzak API'leri doğrudan çağırabilirler. Verileri JSON biçiminde sağlayan API'lerin kullanımı özellikle kolaydır.

Uzantılar JSON verilerini kodlayabilir/kod çözebilir mi?

Evet, V8 (Chrome'un JavaScript motoru) JSON.stringify ve JSON.parse'yi yerel olarak desteklediğinden, bu işlevleri kodunuza ek JSON kitaplıkları eklemeden burada açıklandığı gibi uzantılarda kullanabilirsiniz.

Uzantılar, verileri yerel olarak depolayabilir mi?

Evet, uzantılar dize verilerini kalıcı olarak depolamak için localStorage'ı kullanabilir. Chrome'un yerleşik JSON işlevlerini kullanarak karmaşık veri yapılarını localStorage'da depolayabilirsiniz. Chrome, depolanan verilerinde SQL sorgularını yürütmesi gereken uzantılar için istemci tarafı SQL veritabanlarını uygular. Bu veritabanları da kullanılabilir.

Uzantılar OAuth'u kullanabilir mi?

Evet, uzak veri API'lerine erişmek için OAuth kullanan uzantılar var. Çoğu geliştirici, OAuth isteklerini imzalama sürecini basitleştirmek için bir JavaScript OAuth kitaplığı kullanmayı pratik bulmaktadır.

Uzantılar, oluşturulan web sayfasının dışında kullanıcı arayüzü oluşturabilir mi?

Evet, uzantınız Chrome tarayıcının kullanıcı arayüzüne düğme ekleyebilir. Daha fazla bilgi için tarayıcı işlemleri ve sayfa işlemleri bölümlerine bakın.

Bir uzantı, tarayıcı penceresinin dışında bulunan pop-up bildirimleri de oluşturabilir. Daha fazla ayrıntı için masaüstü bildirimleri belgelerine bakın.

Uzantılar, Chrome sekmelerine ve gezinme düğmelerine yapılan tıklamaları dinleyebilir mi?

Hayır. Uzantılar, API dokümanlarında açıklanan etkinlikleri dinlemekle sınırlıdır.

İki uzantı birbiriyle iletişim kurabilir mi?

Evet, uzantılar mesajları diğer uzantılara iletebilir. Daha fazla bilgi için mesaj geçirme belgelerine bakın.

Uzantılar, Google Analytics'i kullanabilir mi?

Evet, uzantılar tıpkı web siteleri gibi oluşturuldukları için kullanımı izlemek için Google Analytics'i kullanabilirler. Ancak, Google Analytics kitaplığının HTTPS sürümünü almak için izleme kodunu değiştirmeniz gerekir. Bunun nasıl yapılacağı hakkında daha fazla bilgi için bu eğitime bakın.

Uzantılar chrome:// URL'lerini değiştirebilir mi?

Hayır. Uzantılar API'leri, tarayıcının yeni sürümleri aktarıldığında ortaya çıkabilecek geriye dönük uyumluluk sorunlarını en aza indirecek şekilde tasarlanmıştır. chrome:// URL'lerinde içerik komut dosyalarına izin verilmesi, geliştiricilerin aynı kalmak için bu sayfaların DOM, CSS ve JavaScript'ini kullanmaya başlayacağı anlamına gelir. En iyi durumda, bu sayfalar şu anda güncellendikleri kadar hızlı güncellenemiyordur. En kötü senaryoda bu, bu sayfalardan birinde yapılan bir güncellemenin bir uzantının bozulmasına yol açarak tarayıcının önemli parçalarının o uzantıyı kullananlar için çalışmayı durdurmasına yol açabilir.

Bu URL'lerde barındırılan içeriğin değiştirilmesine tamamen izin verilmesinin nedeni, tarayıcının dahili uygulamasına bağlı olarak uzantı geliştiricisinin istediği tüm işlevleri aynı kalmaya zorlamasıdır.

Uzantılar, kullanıcı etkileşimi olmadan tarayıcı/sayfa işlemi pop-up'larını açabilir mi?

Hayır, pop-up'lar yalnızca kullanıcı ilgili sayfayı veya tarayıcı işlemini tıklarsa açılabilir. Bir uzantı, pop-up'ını programlı olarak açamaz.

Kullanıcı tıklandıktan sonra pop-up'lar açık kalabilir mi?

Hayır, kullanıcı tarayıcının pop-up dışındaki bir bölümüne odaklandığında pop-up'lar otomatik olarak kapanır. Kullanıcı tıkladıktan sonra pop-up'ı açık tutmak mümkün değildir.

Uzantılar yüklendiğinde/kaldırıldıklarında bilgilendirilebilir mi?

Uzantınız yüklendiğinde veya güncellendiğinde ya da Chrome'un kendisi güncellendiğinde bildirim almak için runtime.onInstalled etkinliğini dinleyebilirsiniz. Uzantınızın yüklemesinin kaldırıldığı bir etkinliğe karşılık gelen bir etkinlik yoktur.

Geliştirme

Uzantım için nasıl kullanıcı arayüzü oluşturabilirim?

Uzantılar, kullanıcı arayüzlerini tanımlamak için HTML ve CSS'yi kullanır. Böylece, kullanıcı arayüzünüzü oluşturmak için standart form kontrollerini kullanabilir veya bir web sayfasında olduğu gibi arayüzü CSS ile biçimlendirebilirsiniz. Ayrıca uzantılar, Chrome'a bazı sınırlı kullanıcı arayüzü öğeleri ekleyebilir.

localStorage'da ne kadar veri depolayabilirim?

Uzantılar, localStorage'da 5 MB'a kadar veri depolayabilir.

Uygulamam için nasıl seçenekler menüsü oluşturabilirim?

seçenekler sayfası oluşturarak kullanıcıların, uzantınız için seçenekler belirlemesini sağlayabilirsiniz. Bu sayfa, kullanıcı, uzantınız için "seçenekler" düğmesini tıkladığında yüklenecek basit bir HTML sayfasıdır. Bu sayfa, localStorage'a ayarları okuyup yazabilir, hatta tarayıcılarda kalıcı olarak kalabilmesi için seçenekleri bir web sunucusuna gönderebilir.

Uzantı geliştiricilerine hangi hata ayıklama araçları sunulur?

Chrome'un yerleşik geliştirici araçları, web sayfalarının yanı sıra uzantılarda hata ayıklamak için de kullanılabilir. Daha fazla bilgi için Uzantılarda hata ayıklama ile ilgili eğitime göz atın.

Joker karakter eşleşmeleri üst düzey alanlarda (TLD'ler) neden çalışmaz?

TLD'leri (http://google.es ve http://google.fr gibi) eşleştirmek için http://google.*/* gibi joker karakter eşleme kalıplarını kullanamazsınız. Çünkü, bu tür bir eşleşmeyi yalnızca istenen alanlarla sınırlandırmak karmaşık bir işlemdir.

http://google.*/* örneğinde, Google alanları eşleştirilir ancak http://google.someotherdomain.com eşleştirilir. Ayrıca, birçok site kendi alanındaki tüm TLD'lere sahip değildir. Örneğin, http://example.com ve http://example.es ile eşlemek için http://example.*/* kullanmak istediğinizi ancak http://example.net sitesinin saldırgan bir site olduğunu varsayalım. Uzantınızda bir hata varsa saldırgan site, uzantınızın artan ayrıcalıklarına erişmek için potansiyel olarak uzantınıza saldırabilir.

Uzantınızı çalıştırmak istediğiniz TLD'leri açıkça belirtmeniz gerekir.

Uzantım yüklendiğinde/yüklemesi kaldırıldığında neden Management API'si etkinlikleri tetiklemiyor?

management API, yeni sekme sayfası değişim uzantılarının oluşturulmasına yardımcı olmak amacıyla tasarlanmıştır. Mevcut uzantı için yükleme/kaldırma etkinliklerini tetiklemek istenmemiştir.

Bir uzantı, ilk kez çalışıp çalışmadığını nasıl belirleyebilir?

runtime.onInstalled etkinliğini dinleyebilirsiniz. Bu SSS girişini inceleyin.

Özellikler ve hatalar

Sanırım bir hata buldum! Sorunun düzeltildiğinden nasıl emin olabilirim?

Bir uzantı geliştirirken uzantı dokümanlarıyla eşleşmeyen ve Chrome'daki bir hatadan kaynaklanan davranışlara rastlayabilirsiniz. Yapılacak en iyi şey, uygun bir sorun raporu gönderildiğinden ve Chromium ekibinin söz konusu davranışı yeniden oluşturmak için yeterli bilgiye sahip olduğundan emin olmaktır.

Bunun için uygulamanız gereken adımlar şunlardır:

  1. Bildirmek istediğiniz sorunu gösteren en küçük test uzantısını bulun. Bu uzantı, hatayı göstermek için mümkün olduğunca az koda sahip olmalıdır. Genellikle bu, 100 veya daha az satırlık kod olmalıdır. Çoğu zaman geliştiriciler sorunlarını bu şekilde yeniden oluşturamadıklarını fark ederler. Bu da hatanın kendi kodlarında olduğuna dair iyi bir göstergedir.
  2. Başka birisinin benzer bir sorun bildirip bildirmediğini görmek için http://crbug.com adresindeki sorun izleyicide arama yapın. Uzantılarla ilgili çoğu sorun component=Platform>Extensions altında dosyalanır. Dolayısıyla chrome.tabs.executeScript işleviyle ilgili bir uzantı hatasını bulmak için (örneğin) "component=Platform>Extensions Type=Bug chrome.tabs.executeScript" araması yaparak bu sonuç listesini elde edebilirsiniz.
  3. Sorununuzu açıklayan bir hata bulursanız hatada güncelleme yapıldığında bilgi almak için yıldız simgesini tıklayın. Hataya yanıt olarak "ben de" veya "bu ne zaman düzeltilecek?" gibi sorular sormayın. Bu tür güncellemeler yüzlerce e-postanın gönderilmesine neden olabilir. Yalnızca faydalı olabilecek bilgilere (daha iyi bir test durumu veya önerilen bir düzeltme gibi) sahipseniz yorum ekleyin.
  4. Yıldız eklemek için uygun bir hata bulamadıysanız http://crbug.com/new adresinden yeni bir sorun raporu gönderin. Bu formu doldururken mümkün olduğunca açık olun: Açıklayıcı bir başlık seçin, hatanın yeniden üretilmesi için gereken adımları açıklayın ve beklenen ve gerçekleşen davranışı açıklayın. Test örneğinizi ve varsa ekran görüntülerini rapora ekleyin. Raporunuz, başkalarının sorununuzu yeniden oluşturmasını ne kadar kolaylaştırırsa hatanızın hemen düzeltilme olasılığı da o kadar büyük olur.
  5. Hatanın güncellenmesini bekleyin. Çoğu yeni hatanın önceliği bir hafta içinde belirlenir, ancak bazen güncelleme yapılması daha uzun sürebilir. Sorunun ne zaman düzeltileceğini sormak için hatayı yanıtlamayın. İki hafta geçmesine rağmen hatanızda değişiklik yapılmamış olursa lütfen tartışma grubuna bir ileti gönderin ve hatanıza bağlantı verin.
  6. Hatanızı ilk olarak tartışma grubunda bildirdiyseniz ve bu SSS girişine yönlendirildiyseniz orijinal ileti dizinize, yıldız eklediğiniz veya bildirdiğiniz hatanın bağlantısını içeren bir yanıt verin. Bu, aynı sorunu yaşayan diğer kullanıcıların doğru hatayı bulmalarını kolaylaştırır.

Bir özellik isteğim var. Bunu nasıl bildirebilirim?

Uzantı geliştirme deneyimini iyileştirmek için eklenebilecek bir özellik belirlerseniz (özellikle deneysel bir API ile ilgiliyse) sorun izleyiciye uygun bir istek gönderildiğinden emin olun.

Bunun için uygulamanız gereken adımlar şunlardır:

  1. Bir kullanıcının benzer bir özellik isteyip istemediğini görmek için http://crbug.com adresindeki sorun izleyicide arama yapın. Uzantılarla ilgili çoğu istek component=Platform>Uzantılar altında tutulur. Bu nedenle, klavye kısayollarıyla ilgili bir uzantı özelliği isteği aramak için (örneğin), "component=Platform>Extensions Type=Feature shortcuts" araması yaparak sonuç listesini elde edebilirsiniz.
  2. İsteğinizle eşleşen bir kayıt bulursanız hatada güncelleme yapıldığında bilgi almak için yıldız simgesini tıklayın. Hataya "Ben de" diyerek yanıt vermeyin veya "Bu ne zaman uygulanacak?" diye sormayın. Bu tür güncellemeler yüzlerce e-postanın gönderilmesine neden olabilir.
  3. Yıldız eklemek için uygun bir kayıt bulamazsanız http://crbug.com/new adresinden yeni bir istekte bulunun. Bu formu doldururken mümkün olduğunca ayrıntılı bilgi verin: Açıklayıcı bir başlık seçin, tam olarak hangi özelliği istediğinizi ve bu özelliği nasıl kullanmayı planladığınızı açıklayın.
  4. Destek kaydının güncellenmesini bekleyin. Yeni isteklerin çoğu, bir hafta içinde önceliklendirilir, ancak bazen güncelleme yapılması daha uzun sürebilir. Özelliğin ne zaman ekleneceğini sormak için destek kaydını yanıtlamayın. İki hafta geçmesine rağmen destek kaydınızda değişiklik yapılmazsa lütfen tartışma grubuna bir mesaj gönderin ve isteğinize bağlantı verin.
  5. İsteğinizi ilk olarak tartışma grubunda bildirdiyseniz ve bu SSS girişine yönlendirildiyseniz orijinal ileti dizinizi yanıtlayın ve yıldız eklediğiniz veya açtığınız biletin bağlantısını ekleyin. Bu sayede, aynı istekte bulunan diğer kullanıcılar doğru bileti bulabilir.