Что такое приложение хром. Вирус Chromes – как удалить с Андроида. Рождение нового браузера

«Гугл Хром» - продукт одной из самых мощных поисковых систем «Гугл». Датой основания корпорации считается 1998 год. Браузер «Хром» от «Гугл» начинает работать в 2008 году. Набирая свою аудиторию хорошими темпами, становится одним из самых популярных браузеров для компьютерных и мобильных устройств. Сейчас количество его пользователей насчитывает сотни миллионов человек. Браузер используют практически на каждом втором компьютере в мире. Рассмотрим подробнее, что такое «Хром», как его правильно установить и какими возможностями он обладает.

Корпорация «Гугл». Начало

Всем известно, что «Гугл» - это, прежде всего, поисковая система. На сегодняшний день «Гугл» является огромной транснациональной корпорацией, имеющей офисы во многих странах, и главный — в Соединенных Штатах.

А начиналось все в далеком 1996 году. Двое калифорнийских студентов — Сергей Брин и Ларри Пейдж — занимались научным проектом, призванным разработать новые технологии для цифровой универсальной библиотеки. В ходе исследований студенты изучали математические свойства уже существовавшей тогда Всемирной сети. Так был создан их поисковый робот, который находил нужные сайты, предлагал их список, оценивая, прежде всего, важность информации, а не наибольшее количество определенного слова, встречающего на сайте, как это делали существующие тогда поисковики.

После этого нашлись инвесторы для такого детища студентов. Новая поисковая система, претерпев множество доработок, стала очень быстро завоевывать сердца пользователей.

Рождение нового браузера

Что такое "Хром"? Сначала руководство корпорации «Гугл» и не помышляло о создании нового браузера, ведь ниша была уже достаточно заполнена. И откровенно говоря, творцы мощной корпорации боялись громкого провала браузера-проекта. Но, обладая мощными финансовыми возможностями, они решили все же попробовать набросать проект и вынести его на суд руководства. Как ни странно, он был одобрен — благодаря простоте, понятности и приятному пользованию.

Осенью 2008 года выходит первая версия браузера «Гугл Хром» для операционной системы Windows. Благодаря огромному бюджету, вложенному в новое детище, браузер быстро преодолевает путь от никому не известного до очень популярного.

Браузер «Гугл Хром». Что это такое

Браузер «Хром» от корпорации «Гугл» разработан на основе свободного браузера Chromium, являющего «отцом» многих существующих браузеров. Разработчиками программы было принято решение использовать в основе ее работы движок Webkit, но в 2013 году браузер «Гугл Хром» переходит на движок Blink.

Сейчас браузер «Гугл Хром» позиционирует себя как простой, быстрый и безопасный программный продукт. Безусловно, он доказывает это своей популярностью, удобным, не загроможденным интерфейсом, высоким уровнем безопасности, о котором можно вести речь отдельно, множеством приложений и расширений на любой вкус. Можно также отметить, что такой браузер, как «Хром», не стоит на месте, постоянно совершенствуя свои многочисленные сервисы.

Преимущества браузера «Хром»

Следуя поговорке «Все гениальное - просто», «Гугл Хром» имеет множество преимуществ, давших ему такую популярность. Среди них можно отметить и быстрый просмотр страниц, и минималистичный дизайн, в котором от веб-страницы ничего не отвлекает.

Если вы не хотели бы, чтобы после пользования просматривалась история посещений страниц, конфиденциальность обеспечит режим «инкогнито». Благодаря тому что поисковая строка совмещена с адресной, отпадает необходимость вводить полный адрес сайта. Для синхронизации пользовательских данных «Гугл» связывает эти данные между собой, сохраняя их на облачном сервере. При необходимости можно зайти в свой аккаунт с любого компьютера и получить доступ к закладкам и нужной информации. Эта удобная функция пригодится, если браузер удален.

Контроль сбоя программы не позволит прервать работу в неподходящий момент. Также радует универсальность браузера для всех операционных систем. Наверное, многим известно, что «Хром» — такой браузер, который можно установить на любую операционную систему и электронное устройство. Для обеспечения безопасности своих пользователей «Гугл Хром» ведет черный список вредоносных сайтов, а также уведомляет о возможной угрозе при переходе на ту или иную неизвестную страницу. Достоинств у этого браузера множество, но главным в работе «Хрома» является его высокая скорость.

Установка

Скачивается браузер «Гугл Хром» бесплатно. Лучше всего это делать с официальной страницы. Перед скачиванием убедитесь, что ваше устройство соответствует системным требованиям. Так, Windows для «Хром» должен начинаться с седьмой версии. Процессор Intel Pentium должен быть в четвертом или более позднем поколении. Чтобы установить «Хром» на мобильное устройство на базе Android, следует использовать версию операционной системы, которая не может быть раньше Android 4.1. Система iOS должна начинаться с 9 и более поздних версий.

После того как установочный файл «Хрома» бесплатно скачан, необходимо нажать кнопку «Выполнить» или «Сохранить». Затем двойным кликом мыши запустить в работу сохраненный установленный файл и пользоваться браузером «Гугл Хром».

Импортирование настроек

При необходимости в установленный браузер «Гугл Хром» можно импортировать пользовательские настройки из других браузеров, после чего будет доступна такая информация, как стартовая страница, история просмотров, закладки, пароли от учетных записей.

Перед импортированием нужно закрыть все открытые браузеры, запустить «Хром», в его правом верхнем углу зайти в меню настроек, которое изображено как три вертикально расположенных точки. Последовательно нажмите «Закладки», затем «Импорт закладок и настроек» и выберете браузер, из которого необходимо импортировать данные. Если в представленном списке нет нужного браузера, необходимо экспортировать закладки из него в HTML-формат, а затем при импорте в «Хром» выбрать позицию «HTML-файл с закладками». При нажатии кнопки «Импорт» все настройки из предыдущего браузера будут перемещены в «Хром».

Обновление

Браузер «Хром» обновляется автоматически при перезагрузке или в фоновом режиме. Но при постоянно включенном состоянии можно пропустить его обновление. Чтобы увидеть, доступна ли более новая версия «Хрома», необходимо обратить внимание на цвет индикатора меню «Настройки и управление Гугл Хром» в правом верхнем углу экрана. Зеленый цвет будет означать, что новая версия выпущена около двух дней назад, оранжевый - четыре дня назад, красный - семь дней назад.

Для обновления «Хрома» вручную нужно открыть браузер, зайти в меню «Настройка и управление "Гугл Хром"», выбрать позицию «Обновить Google Chrome» (отсутствие такой позиции означает, что версия у браузера и так новая) и нажать «Перезапустить». Все открытые окна и закладки в браузере сохранятся и загрузятся автоматически при повторном его запуске. Перезапуск можно отложить, нажав кнопку «Не сейчас».

Удаление

При возникшей необходимости удаления браузера «Хром» необходимо выйти из него, зайти в панель управления вашей операционной системы (в левом нижнем углу). Затем открыть «Параметры (Настройки)», выбрать позицию «Приложения», найти «Гугл Хром» и выбрать действие «Удалить» (для Windows 8 и 10). Для Windows 7 или Vista в позиции «Параметры» выберите «Панель управления», затем перейдите к «Удалить программу» или «Программы и компоненты». Двойным кликом мыши нужно нажать на Google Chrome. Браузер будет удален нажатием кнопки «Удалить».

Чтобы очистить данные профиля, необходимо нажать "Также удалить данные о работе в браузере". Но если синхронизировать данные и вновь войти в ваш аккаунт «Гугл», часть вашей информации будет доступна, так как она сохраняется на сервере «Гугла». Чтобы очистить все полностью, необходимо очистить историю. Сделать это можно, зайдя в меню «Настройка и управление Гугл Хром», затем выбрать «Дополнительные инструменты», а затем «Удаление данных о просмотренных страницах». Указав необходимый временной диапазон, установите галочки для типа информации, которую требуется удалить, затем нажмите «Очистить историю».

Приложения и расширения

Браузер «Хром» от «Гугл» предлагает массу различных расширений, плагинов и приложений для пользователей, как платных, так и бесплатных. Фактически благодаря расширениям на любой вкус можно сконструировать браузер «Хром» под себя. Найти необходимое приложение или расширение можно в официальном интернет-магазине.

Если расширения - это добавление и совершенствование функций браузера, то приложения - отдельные программы, которые работают прямо в браузере.

Как добавить, удалить приложение или расширение

Чтобы добавить в браузер «Хром» расширения или дополнения, необходимо в интернет-магазине «Хром» в левом столбце выбрать «Расширения» или «Приложения». Затем выбрать из открывшегося каталога то, что вам нужно, при этом можно воспользоваться поиском. Рядом с позицией нужного приложения или расширения появится кнопка «Установить». Если вы добавляете расширение, то нужно проверить, к каким данным будет у него доступ, затем нажать «Установить расширение». После этого установленные приложения «Хром» появятся на панели запуска, а появившиеся расширения можно увидеть в виде кнопок на панели инструментов «Хрома».

Чтобы удалить ненужное расширение, необходимо зайти в меню «Настройка и управление "Гугл Хром"», затем выбрать позицию «Дополнительные инструменты» и из нее - «Расширения». В открывшемся списке выбрать удаляемое расширение и нажать на кнопку «Удалить из Chrome», после чего еще раз нажать «Удалить». Приложение можно удалить из «Панели инструментов» на рабочем столе.

Полезные расширения и приложения

Те, кто идет в ногу со временем, давно уже используют в своем браузере удобные и полезные расширения и приложения. Функционал у них может быть разнообразным - от помощников в работе до игр и развлечений. Рассмотрим несколько интересных расширений и приложений от «Гугл Хрома»:

    DataSaver - ваш верный помощник в экономии трафика. Имеет функцию сжатия загружаемых страниц, текста и изображений. Очень удобен для мобильных устройств. Уже является встроенным в версии для Android или iOS («Настройки» - «Экономия трафика»).

    Quick Notes - блокнот, всплывающий онлайн в виде окна по вашему требованию. Помогает моментально записать мысль, посетившую вас на какой-либо странице Сети.

    XTranslate - это расширение предоставит мгновенный перевод как отдельных слов, так и целых веб-страниц, достаточно только выделить необходимый текст.

    Gmail Offline - позволяет работать с почтой при отсутствии интернета. Правда, он все же необходим для получения и отправки писем. Зато напечатать ответ можно не спеша.

    Save to Pocket - сохранит веб-страницу для последующего прочтения, при этом очистит от рекламы и ненужных элементов, оставив только текст и изображение. Страница сохранится в кэше и будет доступна даже без интернета.

В заключение

Итак, что такое "Хром"? Это современный и полезный браузер. Обзор востребованных приложений и расширений для него можно продолжать до бесконечности. Однако только вам решать, какое именно приложение или расширение вам необходимо. Большой выбор, их разнообразие и доступность для браузера «Гугл Хром» делает нашу жизнь проще и ярче, помогает в работе, учебе или позволяет скоротать время за приложениями-играми.

Для тестирования приложения, которое вы разрабатываете, необходимо будет добавить его в свой браузер. Для этого на странице chrome://extensions нужно отметить чекбокс «Режим разработчика» («Developer mode»). После этого станет возможным добавить ваше расширение или приложение.

manifest.json

Код любого приложения для Chrome, как и любого расширения, начинается с файла manifest.json . В нём описывается вся мета-информация приложения. Приведу целиком манифест редактора :

{ "name": "Simple Text", "description": "An extremely simple text editor (sample Chrome app)", "version": "0.1", "icons": { "48": "icon/48.png", "128": "icon/128.png" }, "manifest_version": 2, "minimum_chrome_version": "31.0", "offline_enabled": true, "app": { "background": { "scripts": ["js/background.js"] } }, "permissions": [ {"fileSystem": ["write"]} ], "file_handlers": { "text": { "title": "Simple Text", "types": ["application/javascript", "application/json", "application/xml", "text/*"], "extensions": ["c", "cc", "cpp", "css", "h", "hs", "html", "js", "json", "md", "py", "textile", "txt", "xml", "yaml"] } } }

Разберём поля, которые тут встретились. С названием и описанием всё ясно. Версия является обязательным полем - Chrome Web Store будет требовать, чтобы она менялась, когда вы загружаете обновление вашего приложения.

Var entryToLoad = null; function init(launchData) { var fileEntry = null if (launchData && launchData["items"] && launchData["items"].length > 0) { entryToLoad = launchData["items"]["entry"] } var options = { frame: "chrome", minWidth: 400, minHeight: 400, width: 700, height: 700 }; chrome.app.window.create("index.html", options); } chrome.app.runtime.onLaunched.addListener(init);

Background page работает в фоновом режиме независимо от окон приложения. Большую часть времени он не загружен в память. При запуске системы его код исполняется и может установить обработчики тех или иных событий, самое распространённое из которых - onLaunched. Когда обработчики установлены, background page, как правило, выгружается из памяти и запускается обратно только если произошло одно из событий, на которые он подписан.

Когда пользователь кликает на иконку приложения, или открывает в нём какой-то файл, в background page запускается событие onLaunched . В него передаются параметры вызова, в частности, файл(ы), которые приложение должно открыть. Код entryToLoad = launchData["items"]["entry"] сохраняет переданный в приложение файл в локальной переменной, откуда его потом возьмёт код редактора. Событие onLaunched может прийти и тогда, когда приложение уже открыто. В этом случае код в background page может сам решить, открывать ли новое окно, или совершить какие-то действия в уже открытом окне.

Для полноты картины приведу CSS:

Body { margin: 0; } header { background-color: #CCC; border-bottom: 1px solid #777; -webkit-box-align: center; -webkit-box-orient: horizontal; -webkit-box-pack: left; display: -webkit-box; height: 48px; padding: 0px 12px 0px 12px; } button { margin: 8px; } textarea { border: none; -webkit-box-sizing: border-box; font-family: monospace; padding: 4px; position: absolute; top: 48px; bottom: 0px; left: 0px; right: 0px; width: 100%; } textarea:focus { outline: none !important; }

Основной код: работа с файлами

Так как в нашем примере мы для простоты ограничимся минимальным набором возможностей, то основной код редактора будет посвящён почти исключительно работе с файлами. Для этого используется несколько API, часть из которых уже находится на пути к стандартизации W3C. File API и сопутствующие интерфейсы - большая тема, заслуживающая отдельной статьи. В качестве хорошего введения рекомендую .

Итак, разберём код в js/main.js . Я буду приводить его фрагментами, полный код - на Гитхабе .

Function init(entry) { $("#open").click(open); $("#save").click(save); $("#saveas").click(saveAs); chrome.runtime.getBackgroundPage(function(bg) { if (bg.entryToLoad) loadEntry(bg.entryToLoad); }); } $(document).ready(init);

Задача функции инициализации - добавить обработчики к кнопкам и получить из background page файл для открытия. Контекст background page получается из основного окна асинхронно с помощью chrome.runtime.getBackgroundPage .

Обработчики нажатий на кнопки:

Var currentEntry = null; function open() { chrome.fileSystem.chooseEntry({"type": "openWritableFile"}, loadEntry); } function save() { if (currentEntry) { saveToEntry(currentEntry); } else { saveAs(); } } function saveAs() { chrome.fileSystem.chooseEntry({"type": "saveFile"}, saveToEntry); }

Текущий FileEntry мы будем хранить в глобальной переменной currentEntry.

Единственная специфичная особенность в приведённом выше коде - это метод chrome.fileSystem.chooseEntry . С помощью этого метода открывается окно выбора файлов (своё на каждой системе). Как и все прочие функции для работы с файловой системой, этот метод асинхронный и получает callback для продолжения работы (в нашем случае функции loadEntry и saveToEntry, описанные ниже).

Чтение файла:

Function setTitle() { chrome.fileSystem.getDisplayPath(currentEntry, function(path) { document.title = path + " - Simple Text"; }); } function loadEntry(entry) { currentEntry = entry; setTitle(); entry.file(readFile); } function readFile(file) { var reader = new FileReader(); reader.onloadend = function(e) { $("textarea").val(this.result); }; reader.readAsText(file); }

В функции setTitle() мы меняем заголовок окна, чтобы показать путь к текущему файлу. То, как будет отображаться этот заголовок, зависит от системы. На Chrome OS он вообще не показывается. chrome.fileSystem.getDisplayPath - наиболее корректный способ получить путь файлу, подходящий, чтобы показывать его пользователю. Другое представление пути доступно через entry.fullPath .

В File API есть два различных объекта, описывающих файл: FileEntry и File. Грубо говоря, FileEntry олицетворяет путь к файлу, а File - данные, в нём содержащиеся. Следовательно, для того, чтобы прочитать файл, необходимо по Entry получить объект File. Это достигается с помощью асинхронного метода entry.file() .

Код этого примера сделан максимально коротким, чтобы уместить его в формат статьи. Если вы хотите посмотреть на более развёрнутые примеры того, как используются те или иные возможности Chrome API, на Гитхабе опубликован большой набор примеров Chrome apps . Официальная документация по всем программным интерфейсам - на developer.chrome.com . Основное место, где можно получить ответы на конкретные вопросы по программированию Chrome-приложений - .

Эта статья предназначена для администраторов Chrome Enterprise и разработчиков, имеющих опыт создания пакетов приложений Chrome и их публикации.

Если в Интернет-магазине Chrome не оказалось продукта с нужной вам функциональностью, вы можете создать собственное приложение или расширение, а пользователи смогут добавить его на свои устройства с Chrome OS или в браузер Chrome. Например, как администратор, вы можете автоматически установить на устройствах пользователей частное приложение-закладку, ссылающееся на веб-сайт отдела кадров.

Подготовка

  • Если в файле манифеста указан целевой сайт, на который ссылается приложение или расширение, подтвердите право собственности на этот сайт .
  • Если приложение или расширение размещено на частном сервере, можно указать, кто имеет право публиковать его в Интернет-магазине Chrome. Вы можете отключить подтверждение права собственности на сторонние сайты, на которые ссылается приложение.

Шаг 1. Создайте приложение или расширение

Ниже в качестве примера используется приложение-закладка. Инструкции по созданию более сложных приложений и расширений Chrome приведены в руководстве по началу работы .

  1. Создайте на компьютере папку, в которой будут храниться файлы приложения или расширения. Присвойте ей имя приложения.
  2. Создайте файл манифеста.
    1. Создайте в текстовом редакторе файл JavaScript ® Object Notation (JSON). Посмотрите пример файла JSON для приложения-закладки.
    2. Проверьте, правильно ли отформатирован код в файле JSON, с помощью специального инструмента, например JSONLint .
  3. Поместите файл manifest.json в папку приложения или расширения.
  4. Создайте логотип.
    1. Изображение должно иметь размер 128 х 128 пикселей.
    2. Сохраните файл логотипа под названием 128.png в папке приложения.

Шаг 2. Протестируйте приложение или расширение

Разработчики могут тестировать свои приложения и расширения в браузере Chrome или на устройствах Chrome OS.

Чтобы устранить неполадки в приложении или расширении, воспользуйтесь журналами Chrome.

Шаг 3. Создайте коллекцию приложений (необязательно)

Администратор может создать для организации коллекцию приложений, чтобы рекомендовать пользователям приложения и расширения Chrome для установки.

Шаг 4. Опубликуйте приложение или расширение в Интернет-магазине Chrome

Разработчик может сделать приложение или расширение общедоступным либо ограничить доступ к нему. При публикации в Интернет-магазине Chrome можно выбрать один из трех вариантов.

  • Общедоступное : кто угодно может найти и установить приложение.
  • Доступ по ссылке : установить приложение или расширение можно только по ссылке. Оно не включается в результаты поиска в Интернет-магазине Chrome. Ссылку можно отправить пользователям как в домене организации, так и за его пределами.
  • Частное : найти и установить приложение или расширение могут только пользователи в вашем домене. Кроме этого, можно предоставить доступ к продукту только доверенным тестировщикам, чьи имена указаны в панели инструментов разработчика.

Чтобы добавить приложение или расширение в Интернет-магазин Chrome, создайте ZIP-архив соответствующей папки, а затем опубликуйте продукт .

Шаг 5. Настройте правила работы с приложением или расширением

В панели администратора Google можно управлять использованием приложений и расширений на устройствах Chrome и в браузере Chrome на компьютерах Windows, Mac и Linux в вашей организации. Правила Chrome можно настраивать

Мобильные устройства уже давно являются основной целью вирусных атак. Зараженные телефоны дают практически все – доступ к личной информации, выход в интернет, доступ к банкингу и т.д. Буквально недавно начал атаковать новый – Chromes. Сегодня мы расскажем что это за и как можно эффективно его из системы.

Что за приложение?

Chromes – это вредоносная мобильная , работающая в фоне. У приложения две основные цели: перехват личных данных (контакты, журналы вызовов, история серфинга), отправка “дорогих” СМС и подписки на платный контент, который сейчас активно предлагается мобильными операторами. проникает на смартфоны вместе с зараженными приложениями, которые вы скачиваете с Play Marketa, либо другого магазина.

Весит троян немного и тихо работает в фоне. Многие пользователи отмечают, что вирусный процесс осуществляет автоматическую подписку на мобильный контент, в основном это платные услуги. Но следует помнить – о таких подписках должны приходить официальные уведомления от вашего оператора.

Удаляем Chromes с телефона

На сегодняшний день, вирусный процесс Chromes обнаруживается практически всеми популярными антивирусами – Dr.Web, ESET, Kaspersky, AVG, включая даже встроенную защиту от Сбербанк онлайн. Простое удаление через стандартный Диспетчер не помогает – будет устанавливаться автоматически. Дело в том, что файл удаляется легко, но вот отыскать загрузчик сложнее. Плюс ко всему, загрузчик может прикрываться администрированием.

Итак, для того, что бы убрать Chromes из Android попробуйте сделать следующее:


Эти шаги должны помочь в удалении вирусной программки. Но если вдруг не поможет и программа будет опять устанавливаться, тогда самым простым вариантом будет “Сброс до заводских” . Если вы не желаете стирать все с телефона, тогда можно попробовать отыскать загрузчик. Найти его бывает порой сложно, но опытные пользователи могут использовать утилиту Titanium BackUp, которая отслеживает активные процессы и вы можете поочередно замораживать их.

На форумах активно обсуждается момент – что вирусный файл врезан разработчиками в саму прошивку. Особенно этим грешат китайские производители. Этот момент я не разбираю, потому как по вопросу удаления вшитых приложений нужно обращаться на тематические форумы и сайты.

Если удаление не помогает

Если программка все равно появляется через некоторое время, а загрузчик вы найти не можете, тогда можно просто:


Это временное решение, пока про этот зловред не будет собрано больше информации.

Заключение

Начал активничать недавно, но уже наделал много шума. После всех очисток обязательно зайдите в личный кабинет вашего мобильного оператора – проверьте там список подключенных услуг. Также проверьте перечень ваших подписок на мобильный контент. Если не знаете как это сделать – звоните оператору. Дело в том, что в среднем такая подписка стоит 20 руб. в день, а если троян успел сделать несколько таких, то в конце месяца вы можете получить хороший минус на счете. Если возникли вопросы – все в комментарии.

Для тестирования приложения, которое вы разрабатываете, необходимо будет добавить его в свой браузер. Для этого на странице chrome://extensions нужно отметить чекбокс «Режим разработчика» («Developer mode»). После этого станет возможным добавить ваше расширение или приложение.

manifest.json

Код любого приложения для Chrome, как и любого расширения, начинается с файла manifest.json . В нём описывается вся мета-информация приложения. Приведу целиком манифест редактора :

{ "name": "Simple Text", "description": "An extremely simple text editor (sample Chrome app)", "version": "0.1", "icons": { "48": "icon/48.png", "128": "icon/128.png" }, "manifest_version": 2, "minimum_chrome_version": "31.0", "offline_enabled": true, "app": { "background": { "scripts": ["js/background.js"] } }, "permissions": [ {"fileSystem": ["write"]} ], "file_handlers": { "text": { "title": "Simple Text", "types": ["application/javascript", "application/json", "application/xml", "text/*"], "extensions": ["c", "cc", "cpp", "css", "h", "hs", "html", "js", "json", "md", "py", "textile", "txt", "xml", "yaml"] } } }

Разберём поля, которые тут встретились. С названием и описанием всё ясно. Версия является обязательным полем - Chrome Web Store будет требовать, чтобы она менялась, когда вы загружаете обновление вашего приложения.

Var entryToLoad = null; function init(launchData) { var fileEntry = null if (launchData && launchData["items"] && launchData["items"].length > 0) { entryToLoad = launchData["items"]["entry"] } var options = { frame: "chrome", minWidth: 400, minHeight: 400, width: 700, height: 700 }; chrome.app.window.create("index.html", options); } chrome.app.runtime.onLaunched.addListener(init);

Background page работает в фоновом режиме независимо от окон приложения. Большую часть времени он не загружен в память. При запуске системы его код исполняется и может установить обработчики тех или иных событий, самое распространённое из которых - onLaunched. Когда обработчики установлены, background page, как правило, выгружается из памяти и запускается обратно только если произошло одно из событий, на которые он подписан.

Когда пользователь кликает на иконку приложения, или открывает в нём какой-то файл, в background page запускается событие onLaunched . В него передаются параметры вызова, в частности, файл(ы), которые приложение должно открыть. Код entryToLoad = launchData["items"]["entry"] сохраняет переданный в приложение файл в локальной переменной, откуда его потом возьмёт код редактора. Событие onLaunched может прийти и тогда, когда приложение уже открыто. В этом случае код в background page может сам решить, открывать ли новое окно, или совершить какие-то действия в уже открытом окне.

Для полноты картины приведу CSS:

Body { margin: 0; } header { background-color: #CCC; border-bottom: 1px solid #777; -webkit-box-align: center; -webkit-box-orient: horizontal; -webkit-box-pack: left; display: -webkit-box; height: 48px; padding: 0px 12px 0px 12px; } button { margin: 8px; } textarea { border: none; -webkit-box-sizing: border-box; font-family: monospace; padding: 4px; position: absolute; top: 48px; bottom: 0px; left: 0px; right: 0px; width: 100%; } textarea:focus { outline: none !important; }

Основной код: работа с файлами

Так как в нашем примере мы для простоты ограничимся минимальным набором возможностей, то основной код редактора будет посвящён почти исключительно работе с файлами. Для этого используется несколько API, часть из которых уже находится на пути к стандартизации W3C. File API и сопутствующие интерфейсы - большая тема, заслуживающая отдельной статьи. В качестве хорошего введения рекомендую .

Итак, разберём код в js/main.js . Я буду приводить его фрагментами, полный код - на Гитхабе .

Function init(entry) { $("#open").click(open); $("#save").click(save); $("#saveas").click(saveAs); chrome.runtime.getBackgroundPage(function(bg) { if (bg.entryToLoad) loadEntry(bg.entryToLoad); }); } $(document).ready(init);

Задача функции инициализации - добавить обработчики к кнопкам и получить из background page файл для открытия. Контекст background page получается из основного окна асинхронно с помощью chrome.runtime.getBackgroundPage .

Обработчики нажатий на кнопки:

Var currentEntry = null; function open() { chrome.fileSystem.chooseEntry({"type": "openWritableFile"}, loadEntry); } function save() { if (currentEntry) { saveToEntry(currentEntry); } else { saveAs(); } } function saveAs() { chrome.fileSystem.chooseEntry({"type": "saveFile"}, saveToEntry); }

Текущий FileEntry мы будем хранить в глобальной переменной currentEntry.

Единственная специфичная особенность в приведённом выше коде - это метод chrome.fileSystem.chooseEntry . С помощью этого метода открывается окно выбора файлов (своё на каждой системе). Как и все прочие функции для работы с файловой системой, этот метод асинхронный и получает callback для продолжения работы (в нашем случае функции loadEntry и saveToEntry, описанные ниже).

Чтение файла:

Function setTitle() { chrome.fileSystem.getDisplayPath(currentEntry, function(path) { document.title = path + " - Simple Text"; }); } function loadEntry(entry) { currentEntry = entry; setTitle(); entry.file(readFile); } function readFile(file) { var reader = new FileReader(); reader.onloadend = function(e) { $("textarea").val(this.result); }; reader.readAsText(file); }

В функции setTitle() мы меняем заголовок окна, чтобы показать путь к текущему файлу. То, как будет отображаться этот заголовок, зависит от системы. На Chrome OS он вообще не показывается. chrome.fileSystem.getDisplayPath - наиболее корректный способ получить путь файлу, подходящий, чтобы показывать его пользователю. Другое представление пути доступно через entry.fullPath .

В File API есть два различных объекта, описывающих файл: FileEntry и File. Грубо говоря, FileEntry олицетворяет путь к файлу, а File - данные, в нём содержащиеся. Следовательно, для того, чтобы прочитать файл, необходимо по Entry получить объект File. Это достигается с помощью асинхронного метода entry.file() .

Код этого примера сделан максимально коротким, чтобы уместить его в формат статьи. Если вы хотите посмотреть на более развёрнутые примеры того, как используются те или иные возможности Chrome API, на Гитхабе опубликован большой набор примеров Chrome apps . Официальная документация по всем программным интерфейсам - на developer.chrome.com . Основное место, где можно получить ответы на конкретные вопросы по программированию Chrome-приложений - .