diff options
Diffstat (limited to 'chromium/docs/website/site/developers/design-documents/applescript/index.md')
-rw-r--r-- | chromium/docs/website/site/developers/design-documents/applescript/index.md | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/chromium/docs/website/site/developers/design-documents/applescript/index.md b/chromium/docs/website/site/developers/design-documents/applescript/index.md deleted file mode 100644 index 08c1cb19241..00000000000 --- a/chromium/docs/website/site/developers/design-documents/applescript/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -breadcrumbs: -- - /developers - - For Developers -- - /developers/design-documents - - Design Documents -page_name: applescript -title: AppleScript Support ---- - -## Introduction - -AppleScript is a widely used scripting language on Mac OS X, used for -inter-process communication (IPC). It enables end-users who have no programming -skills to easily create workflows and perform repetitive tasks. Supporting -AppleScript also provides a consistent interface for communication with other -applications. - -If you are unfamiliar with AppleScript, you can read more about it at -[AppleScript Language -Guide](http://developer.apple.com/mac/library/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html#//apple_ref/doc/uid/TP40000983). - -For implementation of AppleScript in your application, you might want to look at -[Cocoa Scripting -Guide](http://developer.apple.com/mac/library/documentation/cocoa/conceptual/ScriptableCocoaApplications/SApps_intro/SAppsIntro.html). - -## Terminology - -* SDEF - scripting definition file, contains all the classes, - properties, commands that scripters can use. -* Automator - an application bundled with Mac OS X allowing the user - to graphically build workflows on top of AppleScript. - -## Details - -AppleScript support involves five classes, each representing the classes defined -in the sdef file: - -ApplicationApplescript - -* Not a separate class but a set of methods added in a category of - BrowserCrApplication -* The name, frontmost, and version properties are all obtained by work - done in NSApplication -* An application has windows as its elements - * The windows are obtained by traversing through BrowserList, - wrapping each Browser in a WindowApplescript class and returning - it as an NSArray - * A new window is created by creating a new Browser with a single - blank tab - * A window is closed by calling browser->window()->Close() -* Bookmarks are represented as two folders elements, corresponding to - the bookmarks bar and the "Other Bookmarks" folder - -### WindowApplescript - -* Encapsulates a Browser object -* ID of a browser is obtained via browser->session_id().id() -* mode indicates whether a browser window is a normal or an incognito - window. The mode is set only during creation and cannot be changed - at a later time. The default is a normal window. -* The NSWindow associated with a browser can be used to get and set - certain properties such as bounds, closeable, miniaturizable, - miniaturized, resizable, visible, zoomable, and zoomed. -* A browser window has tabs as its elements - * The tabs comprising a browser window are obtained by getting - each tab using browser->GetTabContentsAt(), wrapping it - inside a TabApplescript class, and returning them as an NSArray - * New tabs are made by using browser->AddTabWithURL() - * Tabs are deleted using - browser->tabstrip_model()->DetachTabContentsAt() - -### TabApplescript - -* Encapsulates a TabContents object -* ID of a tab is obtained via - tab_contents->controller().session_id().id() -* The url and title associated with a tab can be mutated and accessed - through the TabContents' controller. -* Standard text-manipulation commands such as cut, copy, and paste are - achieved by calling methods on the RenderViewHost associated with a - particular tab -* Standard navigation commands such as go back, go forward, and reload - are achieved by calling methods on the controller associated with a - particular tab -* Printing a tab is done by calling tabContents->PrintNow() -* Saving a tab is done by calling tabContents->SavePage(). The - caller has to provide parameters such as file name and directory - path, otherwise the user is prompted for these values - -### BookmarkFolderApplescript - -* Encapsulates a BookmarkNode object which represents a folder -* ID is obtained via bookmarkNode->id() -* The title can be mutated and accessed by calling methods on the - BookmarkModel, which takes care of obtaining the correct locks and - other housekeeping details. -* A bookmark folder has other bookmark folders and bookmark items as - its elements - * Any child bookmark folders are obtained by getting all the child - nodes of type folder, wrapping each up inside a - BookmarkFolderApplescript class, and returning them as an - NSArray - * Adding and deleting bookmark folders and items is done by - calling appropriate methods on the BookmarkModel which takes - care of all internal details like obtaining locks etc - * The bookmark items are obtained by getting all child nodes with - type as url, wrapping each up in a BookmarkItemApplescript - class, and returning them as an NSArray - -### BookmarkItemApplescript - -* Encapsulates a BookmarkNode object which represents a single url -* ID is obtained via bookmarkNode->id() -* Each bookmark item consists of a title and url and can be - manipulated by calling methods on BookmarkModel
\ No newline at end of file |