Add new certificateProvider extension API.
[chromium-blink-merge.git] / chrome / browser / ui / cocoa / applescript / bookmark_item_applescript.mm
blob86a0aa6f6f847a431e36491c4a36ab3c08ac6fe5
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #import "chrome/browser/ui/cocoa/applescript/bookmark_item_applescript.h"
7 #include "base/strings/sys_string_conversions.h"
8 #include "chrome/browser/profiles/profile_manager.h"
9 #import "chrome/browser/ui/cocoa/applescript/error_applescript.h"
10 #include "components/bookmarks/browser/bookmark_model.h"
12 using bookmarks::BookmarkModel;
13 using bookmarks::BookmarkNode;
15 @interface BookmarkItemAppleScript()
16 @property (nonatomic, copy) NSString* tempURL;
17 @end
19 @implementation BookmarkItemAppleScript
21 @synthesize tempURL = tempURL_;
23 - (id)init {
24   if ((self = [super init])) {
25     [self setTempURL:@""];
26   }
27   return self;
30 - (void)dealloc {
31   [tempURL_ release];
32   [super dealloc];
35 - (void)setBookmarkNode:(const BookmarkNode*)aBookmarkNode {
36   [super setBookmarkNode:aBookmarkNode];
37   [self setURL:[self tempURL]];
40 - (NSString*)URL {
41   if (!bookmarkNode_)
42     return tempURL_;
44   return base::SysUTF8ToNSString(bookmarkNode_->url().spec());
47 - (void)setURL:(NSString*)aURL {
48   // If a scripter sets a URL before the node is added, URL is saved at a
49   // temporary location.
50   if (!bookmarkNode_) {
51     [self setTempURL:aURL];
52     return;
53   }
55   BookmarkModel* model = [self bookmarkModel];
56   if (!model)
57     return;
59   GURL url(base::SysNSStringToUTF8(aURL));
60   if (!url.is_valid()) {
61     AppleScript::SetError(AppleScript::errInvalidURL);
62     return;
63   }
65   model->SetURL(bookmarkNode_, url);
68 @end